Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中使用pylab绘制多幅图片?_Python_Matplotlib - Fatal编程技术网

如何在python中使用pylab绘制多幅图片?

如何在python中使用pylab绘制多幅图片?,python,matplotlib,Python,Matplotlib,我有以下代码: import psycopg2 import pylab class Datenanzeige: def __init__(self): self.conn = psycopg2.connect("dbname='test' user='test' host='test' password='test'") self.cur = self.conn.cursor() self.site = ['FFF', 'PPP', 'DDD', 'KKK']

我有以下代码:

import psycopg2
import pylab


class Datenanzeige:

def __init__(self):
    self.conn = psycopg2.connect("dbname='test' user='test' host='test' password='test'")
    self.cur = self.conn.cursor()

    self.site = ['FFF', 'PPP', 'DDD', 'KKK']
    self.plant = [1, 2, 3, 4, 5, 6]


def anzeige(self):

    for i in range(4):
        for j in range(6):

            self.datProd1 = []
            self.datProd2 = []

            self.cur.execute(""" 
                    SELECT proddate, Sum(mods) AS Summevonmods 
                    FROM "20091229global" 
                    GROUP BY proddate, site, plant, pid 
                    HAVING proddate > Date('today') - 14
                    AND
                    site='"""+self.site[i]+"""'
                    AND
                    pid=802
                    AND
                    plant='"""+str(self.plant[j])+"""' 
                    ORDER BY proddate, site, plant, pid; 
                    """)

            self.row = self.cur.fetchone()

            while self.row:
                self.datProd1.append(self.row[0])
                self.datProd2.append(self.row[1])

                pylab.title('Progress of %s' %self.site[i])
                pylab.ylabel('number')
                pylab.xlabel('date')
                pylab.plot(self.datProd1, self.datProd2)
                pylab.savefig("bild%i" %i )

                self.row=self.cur.fetchone()

q = Datenanzeige()
q.anzeige()
代码正在运行。对于每个self.site变量,我会得到另一张图片,但下面的每张图片都包含前一张的线条。我怎样才能防止这种情况?
我需要单独的图片,没有前一张的线条。

要做你想做的事,你需要做两件事之一:

  • 保存图形后,请使用
    clf()
    cla()
    (分别清除图形和清除轴)方法

  • 创建多个图形,然后在每个图形上设置标题和轴标签。目前,您使用的是pylab提供给您的默认背景图形。您需要显式地创建和修改不同的。我无法用头顶上的代码来做这件事,但是看一看地图就会知道你在找什么。它看起来像这样:

    import matplotlib.pyplot as plt
    
    fig = plt.figure()
    axes = fig.add_subplot(1,1,1)
    axes.set_xlabel("foo")
    axes.set_ylabel("bar")
    axes.set_title("title")
    # ...
    fig.savefig("filename")
    

  • 谢谢我找到了我要找的东西。