2015-07-31 3 views
4

Моя цель - создать функцию, которая выводит фигуру.Как создать функцию, которая выводит фигуру matplotlib?

Если я попытаюсь вызвать свою функцию несколько раз в скрипте, она отображает только цифру с первого вызова. Только один раз, когда я закрываю первую цифру, программа создает вторую и т. Д. И так далее.

моя функция примерно выглядит следующим образом:

def graphs(...,fig): 
... 
ax = plt.figure(fig) 
... 
... 
plt.show 

На данный момент функция ничего не возвращает, есть способ, которым я мог бы выводить график или по крайней мере, сделать так, чтобы он не останавливается создавая цифры после первого?

+0

Вы когда-нибудь строили что-то новое? или Это тот же график, который обновляет свои значения? – Digvijayad

+0

Что-то новое каждый раз. Идеально новый показатель при каждом вызове функции, без закрытия уже созданных – chubaz

+0

http://matplotlib.org/faq/usage_faq.html#coding-styles Вам следует писать функции, которые берут в осях и возвращают новых художников. – tacaswell

ответ

2

Использование plt.figure().canvas.draw(). Проверьте эту тему: How to update a plot in matplotlib?

Ваш метод становится

def graphs(..., fig): 
    ax = plt.figure(fig) 
    plt.figure().canvas.draw() 

Наконец, вызов plt.show() в конце вашего цикла

for ...: 
    graphs(...., arg) 
plt.show() 

Это сюжет все фигуры в нескольких окнах. Помните, что он создаст одно окно на рисунок. Используйте подзаголовки, если у вас есть огромное количество изображений.

+0

Спасибо, это работает! – chubaz

Смежные вопросы