2012-01-20 14 views
14

Mam program wxPython, który czyta z różnych zestawów danych, wykonuje różne typy prostej analizy "w locie" danych i kreśli różne kombinacje zestawów danych na kanwie matplotlib. Chciałbym mieć możliwość zrzucenia aktualnie wykreślonych danych do pliku, aby później przeprowadzić bardziej wyrafinowaną analizę.Jak wyodrębnić dane z działki matplotlib

Pytanie brzmi: czy są jakieś metody z zakresu matplotlib, które umożliwiają dostęp do danych aktualnie drukowanych w matplotlib.Figure?

Odpowiedz

19

Jakub ma rację modyfikując skrypt Pythona wypisać dane bezpośrednio ze źródła, z którego został wysłany w fabułę; w ten sposób wolałbym to zrobić. Ale dla odniesienia, jeśli trzeba zrobić, aby uzyskać dane z wykresu, myślę, że powinien to zrobić

gca().get_lines()[n].get_xydata() 

Alternatywnie można dostać X i Y zestawów danych oddzielnie:

line = gca().get_lines()[n] 
xd = line.get_xdata() 
yd = line.get_ydata() 
+0

Dzięki, myślę, że powinno to zrobić. Jeśli chcesz poznać powody, dla których wolę przesyłać dane z fabuły do ​​wiadomości ze źródeł danych, zapoznaj się z moim komentarzem do @Jacub. –

+0

Dlaczego obiekt 'mpl_toolkits.mplot3d.art3d.Line3D' nie ma' get_zdata() '? Nie mogę wyodrębnić wartości z. :-( –

+0

@SibbsGambling Że będziesz musiał zająć się programistami matplotlib. –

1

Jego Python, dzięki czemu można zmodyfikować skrypt źródłowy bezpośrednio więc dane są po cenach dumpingowych, zanim zostanie wykreślone

+3

wiem, że to najbardziej pytonowa droga :) Ale najpierw dane są wysyłane do fabuły z wielu miejsc i są modyfikowane na działce; Musiałbym śledzić każdą modyfikację wykreślonych danych. A po drugie - nie muszę zrzucać danych * za każdym razem, gdy * jest nanoszony. Najpierw chciałbym znaleźć coś interesującego, a następnie nacisnąć przycisk na pasku NavigationTool, aby wyeksportować go do pliku. NavigationToolbar jest połączony z FigureCanvas, więc przyciski mają bezproblemowy dostęp do właściwości i metod Figure. Dlatego zapytałem, jak zrzucić dane z działki. –

+2

Działa to tylko wtedy, gdy użytkownik wie z góry, że chce wyeksportować dane, a dane są statyczne. Rzadko powiedziałbym. – Schollii

Powiązane problemy