2015-07-07 3 views
0

Я пытаюсь создать графический интерфейс, содержащий несколько цифр, каждый из которых имеет оси (это «оси» множественного числа?). Мне удалось получить крайний левый график, чтобы построить на инициализацию соответствующего виджета, используя следующую строку:Графики, не обновляемые (matplotlib)

self.leftImage = self.leftPlot.axes.imshow(self.defaultSlide, cmap = self.mymap) 

где self.leftPlot содержит необходимые фигуры свойства. Я заметил, что мне не нужно было звонить plt.show() или его вариантам для этой части, что я не знаю, значимо это или нет.

Позже в коде я позвонил self.leftImage.set_data(newSlide), но ничего не изменилось, хотя он определенно будет выполнен. Я попытался установить leftImage на новый экземпляр imshow(), но это, кажется, ничего не исправить.

Мой импорт:

from PySide import QtCore, QtGui 
from PySide.QtCore import * 
from PySide.QtGui import * 
import matplotlib 

matplotlib.use('Qt4Agg') 
matplotlib.rcParams['backend.qt4']='PySide' 

from matplotlib.figure import Figure 
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas 
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar 
import matplotlib.pyplot as plt 

Я довольно новыми для Matplotlib, но я родом из фона MATLAB, если это помогает.

ответ

0

Вы должны использовать draw() сразу после вашего обновления (сделано с set_data()).

Смотрите этот пост, связанный для деталей https://stackoverflow.com/a/17837600/4716013

+0

Calling 'plt.draw()' сразу после обновления ничего не делает. Я, честно говоря, не совсем уверен, что он делает в первую очередь, поскольку первое изображение, кажется, отображается без вызова ничего, кроме 'imshow()'. – David

+0

Хорошо, очевидно, что вызов 'self.leftPlot.draw()' фактически что-то делает. Но теперь это похоже на то, что сам сюжет имеет какой-то эффект «тиснения», как будто предыдущие модификации, похоже, остаются, несмотря на обновление графика. Я не уверен, где проблема, но я думаю, что это то, что требует другого вопроса. Я приму твое сообщение, так как ты здесь единственный человек. – David

+0

@ david есть несколько информации (учебник) на http://matplotlib.org/users/image_tutorial.html, а также посвящена ['imshow()'] (http://matplotlib.org/api/pyplot_api.html# matplotlib.pyplot.imshow) –

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