首页 文章

清除Matplotlib中的子图

提问于
浏览
3

我在图 fig1 中创建了一些子图,通过创建

ax = fig1.add_subplot(221)

然后,我通过每个子图绘制内容

im=ax.plot(x,y)

并通过添加一些轴标签

ax.set_xlabel('xlabel')

然后我想完全清除一个特定的子图,如When to use cla(), clf() or close() for clearing a plot in matplotlib?中所述 . 然而问题是 ax.cla()ax.clear() 似乎只清除了图中的数据,没有删除轴,轴刻度标签等 . 另一方面 plt.clf() 清除整个图形 . 介于两者之间吗?类似clf的命令可以清除子图中的所有内容,包括轴标签?或者我只是以错误的方式使用命令?

1 回答

  • 7
    • ax.clear() 清除轴 . 也就是说,它会从轴中删除所有设置和数据,这样就可以保留轴,就像刚刚创建的那样 .

    • ax.axis("off") 关闭轴,使所有轴刺和蜱标签都被隐藏 .

    • ax.set_visible(False) 使整个轴不可见,包括其中的数据 .

    • ax.remove() 从图中移除轴 .

    完整的例子:

    import matplotlib.pyplot as plt
    
    fig,axes = plt.subplots(2,3)
    for ax in axes.flat:
        ax.plot([2,3,1])
    
    axes[0,1].clear()
    axes[1,0].axis("off")
    axes[1,1].set_visible(False)
    axes[0,2].remove()
    
    plt.show()
    

    enter image description here

相关问题