figure of imshow() is too small

后端 未结 4 467
别跟我提以往
别跟我提以往 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

    0 讨论(0)
  • 2020-11-30 01:58

    That's strange, it definitely works for me:

    from matplotlib import pyplot as plt
    
    plt.figure(figsize = (20,2))
    plt.imshow(random.rand(8, 90), interpolation='nearest')
    

    I am using the "MacOSX" backend, btw.

    0 讨论(0)
  • 2020-11-30 02:17

    I'm new to python too. Here is something that looks like will do what you want to

    axes([0.08, 0.08, 0.94-0.08, 0.94-0.08]) #[left, bottom, width, height]
    axis('scaled')`
    

    I believe this decides the size of the canvas.

    0 讨论(0)
  • 2020-11-30 02:19

    Update 2020

    as requested by @baxxx, here is an update because random.rand is deprecated meanwhile.

    This works with matplotlip 3.2.1:

    from matplotlib import pyplot as plt
    import random
    import numpy as np
    
    random = np.random.random ([8,90])
    
    plt.figure(figsize = (20,2))
    plt.imshow(random, interpolation='nearest')
    

    This plots:

    To change the random number, you can experiment with np.random.normal(0,1,(8,90)) (here mean = 0, standard deviation = 1).

    0 讨论(0)
提交回复
热议问题