Matplotlib:使用同一图形绘制多个图形,而不重叠

2024-05-11 09:43:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类,我用它来绘图然后保存到文件中。这是它的简化版本:

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

class Test():
    def __init__(self, x, y, filename):

        fig = plt.figure(1)
        ax = fig.add_subplot(111)

        ax.plot(x, y, 'D', color='red')

        ax.set_xbound(-5,5)
        ax.set_ybound(-5,5)

        plt.savefig('%s.png' % filename)


test1 = Test(1,2, 'test1')
test2 = Test(2,4, 'test2')

结果如下:

测试1

测试2

问题是test2图像也有来自test1的点。图形是在循环中动态生成的,因此我无法硬编码图号。

我可以创建一个计数器并将其传递给类构造函数,但我想知道是否有更优雅的方法来实现这一点。我试着删除test1对象,但这没有起到任何作用。


Tags: 文件testimport版本绘图matplotlibusefig
1条回答
网友
1楼 · 发布于 2024-05-11 09:43:58

完成后,可以使用图的clf方法清除图。另外,pyplot.clf将清除当前图形。

或者,如果您只需要一个新的数字,那么调用pyplot.figure而不需要显式的num参数——它将自动递增,因此不需要保留计数器。

相关问题 更多 >