Как создать несколько диаграмм matplotlib одновременно? - PullRequest
2 голосов
/ 17 ноября 2010

Я хотел бы сгенерировать несколько диаграмм и сохранить их как .png файлы.Но, похоже, matplotlib перекрывает следующий график на предыдущем:

def do_pie(fic,data):
    import pylab    

    # make a square figure and axes
    pylab.figure(1, figsize=(6,6))
    ax = pylab.axes([0.1, 0.1, 0.8, 0.8])

    pylab.pie(data,labels=data)
    pylab.title(fic, bbox={'facecolor':'0.8', 'pad':5})
    pylab.savefig('%s.png' % fic,dpi=100)

do_pie('tarte',[10,20,30])
do_pie('gateau',[33,44])

Этот скрипт генерирует 2 файла PNG.tarte.png правильно, но gateau.png получает некоторую информацию о tarte.png, такую ​​как 10, 20 и 30, которая не должна отображаться.

Так как начать новый графикцарапина?

Ответы [ 2 ]

3 голосов
/ 17 ноября 2010

Просто закройте объект фигуры после его сохранения.

def do_pie(fic,data):
    import pylab    
    # make a square figure and axes
    pylab.figure(1, figsize=(6,6))
    ax = pylab.axes([0.1, 0.1, 0.8, 0.8])
    pylab.pie(data,labels=data)
    pylab.title(fic, bbox={'facecolor':'0.8', 'pad':5})
    pylab.savefig('%s.png' % fic,dpi=100)
    pylab.close()
0 голосов
/ 17 ноября 2010

Например, вы можете сохранить экземпляр фигуры в формате dict и в конце вашей программы вывести все цифры:

figures = dict()

def do_pie(fic,data):
    import pylab    

    # make a square figure and axes
    figures[fic] = pylab.figure(figsize=(6,6))
    ax = pylab.axes([0.1, 0.1, 0.8, 0.8])

    pylab.pie(data,labels=data)
    pylab.title(fic, bbox={'facecolor':'0.8', 'pad':5})

do_pie('tarte',[10,20,30])
do_pie('gateau',[33,44])

for fig in figures:
    figures[fig].savefig('%s.png' % fic, dpi=100)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...