Интерактивный граф Matplotlib, встроенный в PyQt

Я создал простой скрипт python, который при запуске должен отображать встроенный график matplotlib внутри окна PyQT. Я использовал этот учебник для встраивания и запуска графика. Помимо некоторых различий в соглашениях об именах и в общем пользовательском интерфейсе мой график генерируется точно так же, как в упомянутом руководстве.

Моя проблема в том, что я хотел бы сделать это интерактивным графиком, который позволяет масштабировать и перетаскивать, но я хотел бы сделать это только с помощью мыши (щелчок и перетаскивание, колесо прокрутки и т. Д.) И без панели инструментов (поскольку я нахожу это некрасиво).

Класс виджета:

class MplCanvas(FigureCanvas): """ Creates a canvas on which to draw our widgets """ def __init__(self): self.fig = Figure() self.ax = self.fig.add_subplot(111) FigureCanvas.__init__(self, self.fig) FigureCanvas.setSizePolicy(self, QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding) FigureCanvas.updateGeometry(self) class marketdephWidget(QtGui.QWidget): """ The market deph graph """ def __init__(self, parent = None): QtGui.QWidget.__init__(self, parent) self.canvas = MplCanvas() self.vbl = QtGui.QVBoxLayout() self.vbl.addWidget(self.canvas) self.setLayout(self.vbl) 

Функция расчёта (запуск при нажатии кнопки):

 # initialize the mplwidgets def PlotFunc(self): randomNumbers = random.sample(range(0, 10), 10) self.ui.widget.canvas.ax.clear() self.ui.widget.canvas.ax.plot(randomNumbers) self.ui.widget.canvas.draw() 

One Solution collect form web for “Интерактивный граф Matplotlib, встроенный в PyQt”

Это было какое-то время, но я работал над подобной проблемой. У меня есть пример здесь . Может быть, это поможет.

Программа использует PySide , но не должна быть проблемой.

Чтобы запустить программу

 python pyStocker.py 

Вы увидите всплывающее окно виджета, а в левом верхнем углу вы увидите окно TextEdit . Просто введите GOOG или какой-либо другой действительный символ акции и нажмите enter. График будет заполнен данными запаса. Полоса слайдера внизу меняет график в реальном времени.

  • easy_install не работает в Windows 7
  • Как поймать pyqt closeEvent и свести к минимуму диалог, а не выйти?
  • PyQt4 затрудняет создание простого графического интерфейса
  • PySide / PyQt обнаруживает, если пользователь пытается закрыть окно
  • Показать строковые значения по оси x в pyqtgraph
  • Внедрение консоли IPython Qt в приложении PyQt
  • Как перечислять элементы как группы в QListWidget
  • PyQt4 установить значок панели задач Windows
  • PyQt4 MouseMove событие без MousePress
  • Python - Как удалить границу окна? Я импортировал UI из Qt в Python и применил setWindowFlags
  • Элементы исчезают из поля со списком, когда я читаю их из модели
  •  
    Interesting Posts for Van-Lav

    Получить активное окно с помощью Python

    Как добавить класс HTML в help_text формы Django?

    Извлечь ограничительную рамку и сохранить ее как изображение

    нужно среднее из списка объектов timedelta

    Возвращение содержимого формы Django при ошибке

    Расширенный срез, который начинается с начала последовательности с отрицательным шагом

    Зарегистрированный COM-объект, не распознанный win32com.client.dispatch () python ()

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

    После обратной передачи javascript с использованием автоматизации COM + IE для сохранения текстового файла

    Ошибка установки pillow virtualenv: «команда« gcc-4.2 »не выполнена»

    Установка guppy с проблемами pip3

    Итерирование по массиву numpy

    AttributeError: объект 'Class' не имеет атрибута 'a'

    Как получить индекс целого из списка, если список содержит логическое значение?

    Создание динамической модели Django на основе существующей таблицы БД

    Python - лучший язык программирования в мире.