Matplotlib łączy punkty wykresu rozrzutu za pomocą linii - Python


103

Mam dwie listy, daty i wartości. Chcę je wykreślić za pomocą matplotlib. Poniższy rysunek tworzy wykres punktowy moich danych.

import matplotlib.pyplot as plt

plt.scatter(dates,values)
plt.show()

plt.plot(dates, values) tworzy wykres liniowy.

Ale to, czego naprawdę chcę, to wykres rozrzutu, w którym punkty są połączone linią.

Podobnie jak w R:

plot(dates, values)
lines(dates, value, type="l")

, co daje mi wykres rozrzutu punktów nałożonych na linię łączącą punkty.

Jak to zrobić w Pythonie?


5
Zadzwoń show()po wywołaniu oba scatter()i plot()po raz pierwszy?

Odpowiedzi:


136

Myślę, że @Evert ma właściwą odpowiedź:

plt.scatter(dates,values)
plt.plot(dates, values)
plt.show()

Co jest prawie takie samo jak

plt.plot(dates, values, '-o')
plt.show()

lub inny preferowany styl .


3
„Linestyle” był dla mnie dobrą wskazówką przy wyszukiwaniu słów kluczowych, aby przejść przez (gigantyczne) dokumenty matplotlib.
Reb.Cabin

2
@aaronsnoswell Rozmiar i kolor mają sens tylko w przypadku punktów, przez które nadal można wykreślić scatter, jak na moim pierwszym przykładzie. Pytanie nie mówi nic o różnej grubości lub kolorze linii, więc myślę, że twoja krytyka jest naprawdę trochę niesprawiedliwa.
Hannes Ovrén

28

Dla czerwonych linii to punkty

plt.plot(dates, values, '.r-') 

lub dla znaczników x i niebieskich linii

plt.plot(dates, values, 'xb-')

Wygląda na to, że ty, Evert i kigurai wszystko w porządku. Możesz wywołać zarówno scatter (), jak i plot () przed wywołaniem metody show (). Lub po prostu wywołaj funkcję plot () z atrybutami linii i punktów, jak opisał Steve Barnes. Dzięki
brno792

14

Oprócz tego, co podano w innych odpowiedziach, słowo kluczowe „zorder” pozwala określić kolejność, w jakiej różne obiekty są kreślone w pionie. Na przykład:

plt.plot(x,y,zorder=1) 
plt.scatter(x,y,zorder=2)

drukuje symbole rozproszenia na górze linii, a

plt.plot(x,y,zorder=2)
plt.scatter(x,y,zorder=1)

kreśli linię nad symbolami rozproszenia.

Zobacz np. Demo zorder

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.