figure of imshow() is too small

后端 未结 4 479
别跟我提以往
别跟我提以往 2020-11-30 01:15

I\'m trying to visualize a numpy array using imshow() since it\'s similar to imagesc() in Matlab.

imshow(random.rand(8, 90), interpolation=\'nearest\')
         


        
4条回答
  •  难免孤独
    2020-11-30 01:57

    If you don't give an aspect argument to imshow, it will use the value for image.aspect in your matplotlibrc. The default for this value in a new matplotlibrc is equal. So imshow will plot your array with equal aspect ratio.

    If you don't need an equal aspect you can set aspect to auto

    imshow(random.rand(8, 90), interpolation='nearest', aspect='auto')
    

    which gives the following figure

    imshow-auto

    If you want an equal aspect ratio you have to adapt your figsize according to the aspect

    fig, ax = subplots(figsize=(18, 2))
    ax.imshow(random.rand(8, 90), interpolation='nearest')
    tight_layout()
    

    which gives you:

    imshow-equal

提交回复
热议问题