6

我正在使用 matplotlib 在 pandas 中绘制一个时间序列,并且我正在尝试为这样的绘图着色。

所需结果的说明

我有自动对焦点的时间。我试图让他们在情节中的位置使用

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'
)

什么是底层类型?我应该如何things在matplotlib中及时定位?任何丑陋的工作都会受到赞赏。

4

1 回答 1

5

您似乎已将 x 和 y 交换为Rectangle((x,y), ...).
Rectangle((22395760, 0), ...)

而不是使用补丁,plot.axvspan()似乎更适合您想要做的事情。

plt.gca().axvspan(date,date+2*pandas.datetools.Minute(15),facecolor='green',edge‌ color='green',alpha=0.3)
于 2012-09-04T11:39:03.520 回答