Понимание фигур, осей и графиков в Matplotlib/PyQt

Помогите мне понять процесс размещения цифр в виджете PyQt (и использование Matplotlib в целом).

Когда я делаю свои собственные маленькие скрипты, я просто делаю plot(stuff), а затем show().

Однако этого, очевидно, недостаточно для больших приложений, или если я хочу использовать подзаголовки или одновременно поднимать несколько окон с разными результатами. Я нашел действительно хороший учебник по адресу http://eli.thegreenplace.net/2009/01/20/matplotlib-with-pyqt-guis/, который многое иллюстрирует. Тем не менее, у меня все еще нет полностью ясных идей.

Итак, у вас есть окно PyQt. Вы создаете объект Canvas Qt и заполняете его matplotlib Fig. Затем вы даете этой фигуре пару axes и, наконец, привязываете все графики, которые хотите, к этой паре осей?


person RodericDay    schedule 31.07.2012    source источник
comment
Можете ли вы быть немного более конкретным о том, какой тип сюжета вы хотите сделать? Прелесть pyqt и matplotlib (а также других библиотек для построения графиков) заключается в том, что они невероятно гибкие — есть несколько разных способов сделать большинство вещей. Я рекомендую проверить огромное количество действительно конкретных примеров на сайте документации matplotlib (matplotlib.sourceforge.net /examples/index.html).   -  person Victoria Price    schedule 02.08.2012


Ответы (1)


Существует полезная страница здесь, на которой представлен обзор классов в matplotlib.

По сути процесс таков:

  • Создайте фигуру, которая может содержать экземпляры Axes (и других художников)
  • Создайте холст для фигуры, чтобы нарисовать себя
  • Создайте экземпляр осей, ax, к которому могут быть добавлены нарисованные линии/патчи и т. д. например ax.plot(range(10)) или ax.contourf(array)

Я думаю, что ваше замешательство происходит от понимания того, что такое Топоры. Это «прямоугольная область, содержащая основные элементы» (для прямолинейных участков). По умолчанию на фигуре есть только одна Оси, независимо от того, сколько раз вы запускаете команду plt.plot(range(10)), хотя вы можете решить использовать plt.subplot, чтобы иметь подграфики на своей фигуре, и в этом случае у вас будет много экземпляров осей на вашей фигуре. .

ХТХ,

person pelson    schedule 02.08.2012
comment
Ссылка умерла. Извини. - person Sigur; 25.08.2017
comment
Быстрый поиск в Google показывает, что та же самая страница теперь может быть видна по адресу github.com/ericliang/matplotlib/blob/master/trunk/scipy06/ - person pelson; 30.08.2017