2013-11-21 91 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