Разбиране на фигури, оси и графики в 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 (и други художници)
  • Създайте платно, върху което фигурата да се нарисува
  • Създайте екземпляр на axes, брадва, към която могат да се добавят начертани линии/кръпки и т.н. напр. ax.plot(range(10)) или ax.contourf(array)

Мисля, че объркването ви идва от разбирането какво е Axes. Това е "правоъгълната област, която съдържа основните елементи" (за праволинейни парцели). По подразбиране има само една ос във фигура, без значение колко пъти изпълнявате командата plt.plot(range(10)), въпреки че може да решите да използвате plt.subplot, за да имате подграфики във вашата фигура, в който случай ще имате много екземпляри на оси във вашата фигура .

HTH,

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