【问题标题】:matplotlib pie charts leave labels from previous pie chartmatplotlib 饼图保留上一个饼图的标签
【发布时间】:2014-03-10 17:48:58
【问题描述】:

我有一个小型 Django 应用程序,可以生成两个不同的饼图。 但是显示的第一个图表中的标签重新出现在 第二张图表。

我只是在使用:

plt.pie(...)
plt.savefig(...)

在同一个视图中为两个不同的饼图使用两个不同的 (小)数据集。

保存后是否需要调用一些“清除”或“重置”方法 剧情?

【问题讨论】:

    标签: python django charts matplotlib


    【解决方案1】:

    您可以保持代码不变,并在保存第一个图之后和生成第二个图之前调用clf() 清理您的图。

    通过这样做,您将与matplotlib 状态机进行交互。 Matplotlib 会自动为您创建图形和坐标轴,并且您可以继续使用相同的图形。

    另一种方法是以更面向对象的方式使用matplotlib。您要求 matplotlib 创建图形和轴对象,然后通过调用这些对象的方法来完成所有其余工作:

    fig1,ax1=plt.subplots()
    fig2,ax2=plt.subplots()
    ax1.pie(...)
    ax2.pie(...)
    fig1.savefig(...)
    fig2.savefig(...)
    

    用法常见问题解答here 阐明了这两个选项。

    【讨论】:

    • 我停得太快了; 'clear()' 是 Figure 对象的 'clf()' 的同义词,但不适用于 matplotlib.pyplot 对象。我尝试了“clear()”,但没有尝试“clf()”。谢谢!