【问题标题】:Clearing a subplot in Matplotlib在 Matplotlib 中清除子图
【发布时间】:2018-04-27 05:34:50
【问题描述】:

我在图 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 的命令,可以清除子图中的所有内容,包括轴标签?还是我只是以错误的方式使用了命令?

【问题讨论】:

    标签: matplotlib subplot


    【解决方案1】:
    • 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()
    

    【讨论】:

    • 非常感谢! remove() 符合我的要求,但其他选项也很有用。
    猜你喜欢
    • 2017-06-20
    • 2016-01-21
    • 2021-04-09
    • 2017-08-17
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 2015-07-17
    相关资源
    最近更新 更多