Matplotlib线集合和附加线

时间:2014-07-06 13:16:22

标签: python matplotlib plot pandas

我在剧情中添加了一个行集合

https://stackoverflow.com/a/24593105/1127601

如何在具有辅助y轴的情节中添加第二条线?我想要显示的不仅仅是图中的线条集合。 这些数据基于一个pandas数据帧,如果我只是用我希望绘制的列调用plot,那么该绘图确实没有显示任何内容。

fig, axes = plt.subplots()
x=mpd.date2num(df_resamplew1.index.to_pydatetime())
y=df_resamplew1.winds.values
c=df_resamplew1['temp'].values
points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)
lc = LineCollection(segments, cmap=plt.get_cmap('copper'), norm=plt.Normalize(0, 10))
lc.set_array(c)
lc.set_linewidth(3)
#ax=plt.gca()
axes.add_collection(lc)
plt.xlim(min(x), max(x))
#plot a second line
df_resamplew1['diff_modulo'].plot(ax=axes, color='b', linewidth=2, label="Niederschlag mm/h")
axes.xaxis.set_major_locator(mpd.DayLocator())
axes.xaxis.set_major_formatter(mpd.DateFormatter('%Y-%m-%d'))
_=plt.setp(axes.xaxis.get_majorticklabels(), rotation=45 )

线集合而不尝试绘制第二行 Line collection

行集合加上额外的行 Line Collection plus additional line

谢谢!

编辑:

移动

df_resamplew1['diff_modulo'].plot(ax=axes, color='b', linewidth=2, label="Niederschlag mm/h")

到代码块的顶部使得情节不完整无用,但我仍然看不到我想看到的内容。如果有可能是一个更好的解决方案,而不是一个额外的线将是一个条形图和线集合。

1 个答案:

答案 0 :(得分:3)

这些额外的行将:

#df['another']=np.random.random(some_number)
ax2=ax.twinx()
ax2.bar(left=x, height=df.another, width=0.02)

在绘制时间序列时,不要将pandas.plotmatplotlib混合在一起,因为它们会以不同方式处理日期时间值。您可以在plt.xlim()来电之前和之后拨打pandas.plot()进行验证。

enter image description here