2016-03-28 18 views
7

Używam notesów IPython z matplotlib.pyplot i często tworzę wykres, który wymaga dość dużego bloku kodu do wygenerowania. Chciałbym wtedy zapisać obiekt i użyć tej samej pary figura/osie, aby później dołączyć do innego wykresu.Jak wyświetlić tę samą figurę matplotlib kilka razy w jednym notesie IPython?

Załóżmy na przykład, że mam kilka par danych x-y dla wykresu punktowego. Chciałbym pokazać punkty, a następnie kilka komórek później - potencjalnie wraz z innymi wywołaniami pirotydu, aby stworzyć inne, niezwiązane ze sobą postacie - chciałbym pokazać tę postać ponownie, aby móc spiskować nad nią za pomocą linii regresji lub inna grafika.

Na zdjęciu poniżej załączam krótki notes; Chcę, aby rysunek z komórki nr 2 był narysowany w komórce nr 3 bez ponownego wywoływania pyplot.scatter.

Zasadniczo chcę pokazać figurę ponownie bez powtarzania całego kodu. Jakie są moje opcje na zrobienie tego? Nie udało mi się tego dokonać za pomocą wywołań show() lub draw() lub przez ustawienie bieżącego obiektu figurki w komórce, aby stał się on moim zapisanym obiektem figur. Wszelkie rady są mile widziane. Dzięki!

P.S. Wiem, że jeśli ponownie wykorzystam figurę i spiskuję nad nią, obiekt zmieni się, a więc stan obiektu figowego może nie odpowiadać wykresowi, który został narysowany w poprzedniej komórce IPython. W porządku w mojej pracy.

Example IPython notebook

Odpowiedz

10

myFigure Wystarczy zadzwonić w każdej komórce po myFigure został przydzielony w komórce wcześniej.

Na przykład w komórce 1:

In [1]: 
myFigure, myAx = plt.subplots() 
myAx.plot([1,2,3]) 

w komórce po tym:

In [2]: 
myFigure 

To pokaże myFigure

+0

Świetnie, dziękuję! –

+1

Dlaczego funkcja myFigure.show() nie działa? – amit

Powiązane problemy