【发布时间】:2012-08-28 21:57:20
【问题描述】:
我正在使用 matplotlib 在 pandas 中绘制一个时间序列,并且我正在尝试为这样的绘图着色。
我有 A-F 积分的时间。我试图使用
来获得它们在情节中的位置gcf().canvas.mpl_connect('button_press_event', debug_print_onclick_event)
最终 x 位置约为 22'395'850(甚至不接近 unixtime :S)
我的代码基本上是这样的:
plot = data.plot(legend=False) #where data is the timeseries (pandas.DataFrame).
plot.add_patch(
plt.Rectangle(
(0,22395760),
60,
45,
facecolor='green',
edgecolor='green'
)
)
plt.draw()
plt.show()
但补丁的任何内容都没有显示出来。 也测试直接使用时间,实际运行但没有渲染补丁。
plt.Rectangle(
(0,datetime_D),
60,
4*pandas.datetools.Minutes(15),
facecolor='green',
edgecolor='green'
)
什么是底层类型?我应该如何在matplotlib中及时定位things?任何丑陋的工作都会受到赞赏。
【问题讨论】:
-
您似乎已将 x 和 y 交换为 Rectangle((x,y), ...) 的第一个参数。矩形((22395760, 0), ...)
-
omg,这可能是解决方案,我正在测试它,等等。
-
btw plot.axvspan() 似乎更适合您想做的事情
-
非常感谢@lodagro。最初我对矩形的宽度有一些问题,要么是几分钟,要么是几天,这取决于我用于绘图的方法。但是 axvspan 就像一个魅力。
pl.gca().axvspan(date,date+2*pandas.datetools.Minute(15),facecolor='green',edgecolor='green',alpha=0.3)总结一下你的 2 个 cmets 作为答案,我会选择它作为解决方案。 -
使它有点像所有 cmets 的组合。在这里删除 cmets 可能更清洁。
标签: matplotlib pandas