Я пытаюсь создать графический интерфейс, содержащий несколько цифр, каждый из которых имеет оси (это «оси» множественного числа?). Мне удалось получить крайний левый график, чтобы построить на инициализацию соответствующего виджета, используя следующую строку:Графики, не обновляемые (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, если это помогает.
Calling 'plt.draw()' сразу после обновления ничего не делает. Я, честно говоря, не совсем уверен, что он делает в первую очередь, поскольку первое изображение, кажется, отображается без вызова ничего, кроме 'imshow()'. – David
Хорошо, очевидно, что вызов 'self.leftPlot.draw()' фактически что-то делает. Но теперь это похоже на то, что сам сюжет имеет какой-то эффект «тиснения», как будто предыдущие модификации, похоже, остаются, несмотря на обновление графика. Я не уверен, где проблема, но я думаю, что это то, что требует другого вопроса. Я приму твое сообщение, так как ты здесь единственный человек. – David
@ david есть несколько информации (учебник) на http://matplotlib.org/users/image_tutorial.html, а также посвящена ['imshow()'] (http://matplotlib.org/api/pyplot_api.html# matplotlib.pyplot.imshow) –