2013-11-21 111 views
52

我有兩個列表,日期和值。我想用matplotlib繪製它們。以下內容創建了我的數據散點圖。Matplotlib用線連接散點圖 - Python

import matplotlib.pyplot as plt 

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

plt.plot(dates, values)創建的線圖。

但我真正想要的是散點圖,其中的點是通過一條線連接的。

至R中類似:

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

,這使我與連接所述點的直線重疊的點的散點圖。

如何在python中執行此操作?

+2

調用'顯示()調用''都散射()'和'圖()'後第一? – Evert

回答

77

我認爲@Evert有正確的答案:

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

,這是相當多的與

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

或其他linestyle你喜歡。

+1

'linestyle'是我通過(gynormous)matplotlib文檔路徑的好關鍵字搜索線索。 –

18

對於紅線的點

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

或X標記和藍線

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

它看起來像你,Evert和kigurai都沒事。在調用show()之前,您可以調用scatter()和plot()。或者像Steve Barnes所描述的那樣,使用line和point屬性調用plot()。謝謝 – brno792

7

除了其他答案中提供的內容之外,關鍵字「zorder」還允許您決定垂直繪製不同對象的順序。 例如爲:

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

地塊上線的頂部分散符號,而

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

地塊線多分散符號。

見,例如,該zorder demo