Utwórz wykres wielowierszowy z pliku .CSV w matplotlib

Od tygodni próbuję wydrukować 3 zestawy danych (x, y) na tym samym wykresie z pliku .CSV i nigdzie nie dochodzę. Moje dane były pierwotnie plikiem Excela, który przekonwertowałem na plik .CSV i użyłempandas aby przeczytać go w IPythonie zgodnie z następującym kodem:

from pandas import DataFrame, read_csv
import pandas as pd
# define data location
df = read_csv(Location)
df[['LimMag1.3', 'ExpTime1.3', 'LimMag2.0', 'ExpTime2.0', 'LimMag2.5','ExpTime2.5']][:7]

Moje dane są w następującym formacie:

Type    mag1    time1   mag2    time2   mag3    time3

M0      8.87    41.11   8.41    41.11   8.16    65.78;

...

M6     13.95  4392.03  14.41 10395.13  14.66 25988.32

Próbuję spiskowaćtime1 vsmag1, time2 vsmag2 itime3 vsmag3, wszystko na tej samej fabule, ale zamiast tego dostaję wątkitime.. vsType, np. dla kodu:

df['ExpTime1.3'].plot()

dostaję'ExpTime1.3' (oś y) wykreślona w funkcjiM0 doM6 (oś x), kiedy chcę'ExpTime1.3' vs'LimMag1.3', z etykietami xM0 - M6.

Jak mogę uzyskać'ExpTime..' vs'LimMag..' działki ze wszystkimi 3 zestawami danych na tej samej działce?

Jak zdobyćM0 - M6 etykiety na osi x dla'LimMag..' wartości (także na osi x)?

Od czasu wypróbowania rozwiązań askewchan, które nie zwróciły żadnych wątków z nieznanych powodów, odkryłem, że mogę uzyskać fabułęExpTimevsLimMagza pomocądf['ExpTime1.3'].plot(),jeśli zmienię indeks ramki danych (df.index) na wartości osi x (LimMag 1.3). Wydaje się to jednak oznaczać, że muszę przekształcić każdą żądaną oś x w indeks ramki danych, ręcznie wprowadzając wszystkie wartości żądanej osi x, aby uczynić ją indeksem danych. Mam bardzo dużo danych, a ta metoda jest po prostu zbyt powolna i mogę narysować tylko jeden zestaw danych na raz, kiedy muszę narysować wszystkie 3 serie dla każdego zestawu danych na jednym wykresie. Czy istnieje sposób na rozwiązanie tego problemu? A może ktoś może podać powód i rozwiązanie, dlaczego nie mam żadnych wątków z rozwiązaniami oferowanymi przez askewchan?

W odpowiedzi na nordeva spróbowałem ponownie pierwszej wersji, bu nie wyprodukowano żadnych wątków, nawet pustej figury. Za każdym razem wkładam jedną z nichax.plotpolecenia, otrzymuję dane wyjściowe typu:[<matplotlib.lines.Line2D at 0xb5187b8>], ale kiedy wprowadzę polecenieplt.show()nic się nie dzieje. Kiedy wchodzęplt.show()po pętli w drugim rozwiązaniu askewchana pojawia się komunikat błęduAttributeError: 'function' object has no attribute 'show'

Zrobiłem trochę więcej bójki z moim oryginalnym kodem i mogę teraz uzyskać fabułęExpTime1.3vsLimMag1.3 z kodemdf['ExpTime1.3'][:7].plot(), czyniąc indeks takim samym jak oś x (LimMag 1.3), ale nie mogę uzyskać dwóch pozostałych zestawów danych na tym samym wykresie. Byłbym wdzięczny za wszelkie dalsze sugestie. Używam ipython 0.11.0 przez Anaconda 1.5.0 (64bit) i spyder na Windows 7 (64bit), wersja python to 2.7.4.

questionAnswers(2)

yourAnswerToTheQuestion