如何在日期时间轴图上指定一个矩形?

How to specify a rectangle on a datetimeaxis plot?

我想在具有日期时间轴的绘图上绘制一个矩形 (hv.Bounds)。然而,文档中并不清楚如何指定角点。

当然,我试图指定一个日期时间对象,但这会导致以下错误消息: ValueError: lbrt: tuple element is not numeric

import holoviews as hv
import pandas as pd
hv.extension('bokeh')


%%opts Curve [width=500]
xs = pd.date_range('1.1.2019', '31.1.2019')
ys = np.sin(range(len(xs)))
box=hv.Bounds((pd.to_datetime('5.1.2019'), 0.1, pd.to_datetime('7.1.2019'), .8))
hv.Curve((xs,ys))

截至目前,Bounds 仅接受数字边界,但如果您想测试它,请参阅此 PR:https://github.com/pyviz/holoviews/pull/3640

从版本 1.12.3 开始,可以这样做:

import holoviews as hv
import pandas as pd
import numpy as np
import hvplot.pandas
hv.extension('bokeh')

index = pd.date_range('1.1.2019', '2.28.2019')
df = pd.DataFrame(np.random.rand(len(index)), index)
pts = pd.to_datetime(['1.15.2019', '2.15.2019'])
box = hv.Bounds((pts[0], 0.1, pts[1], .9)).opts(color='red')
df.hvplot.scatter() * box