Turn off axes in subplots

前端 未结 2 1965
孤独总比滥情好
孤独总比滥情好 2020-12-23 09:07

I have the following code:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib.cm as cm

img = mpimg.imread(\"lena.jpg\")

f,          


        
相关标签:
2条回答
  • import matplotlib.pyplot as plt
    
    fig, ax = plt.subplots(2, 2)
    


    To turn off axes for all subplots, do either:

    [axi.set_axis_off() for axi in ax.ravel()]
    

    or

    map(lambda axi: axi.set_axis_off(), ax.ravel())
    
    0 讨论(0)
  • 2020-12-23 09:34

    You can turn the axes off by following the advice in Veedrac's comment (linking to here) with one small modification.

    Rather than using plt.axis('off') you should use ax.axis('off') where ax is a matplotlib.axes object. To do this for your code you simple need to add axarr[0,0].axis('off') and so on for each of your subplots.

    The code below shows the result (I've removed the prune_matrix part because I don't have access to that function, in the future please submit fully working code.)

    import matplotlib.pyplot as plt
    import matplotlib.image as mpimg
    import matplotlib.cm as cm
    
    img = mpimg.imread("stewie.jpg")
    
    f, axarr = plt.subplots(2, 2)
    axarr[0,0].imshow(img, cmap = cm.Greys_r)
    axarr[0,0].set_title("Rank = 512")
    axarr[0,0].axis('off')
    
    axarr[0,1].imshow(img, cmap = cm.Greys_r)
    axarr[0,1].set_title("Rank = %s" % 128)
    axarr[0,1].axis('off')
    
    axarr[1,0].imshow(img, cmap = cm.Greys_r)
    axarr[1,0].set_title("Rank = %s" % 32)
    axarr[1,0].axis('off')
    
    axarr[1,1].imshow(img, cmap = cm.Greys_r)
    axarr[1,1].set_title("Rank = %s" % 16)
    axarr[1,1].axis('off')
    
    plt.show()
    

    Stewie example

    Note: To turn off only the x or y axis you can use set_visible() e.g.:

    axarr[0,0].xaxis.set_visible(False) # Hide only x axis
    
    0 讨论(0)
提交回复
热议问题