Как указать прямоугольник на графике даты-времени? - PullRequest
1 голос
/ 18 апреля 2019

Я хочу нарисовать прямоугольник (hv.Bounds) на графике с осью даты и времени. Однако из документации не ясно, как можно определить угловые точки.

Естественно, я попытался указать объект datetime, однако это приводит к следующему сообщению об ошибке: 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))

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Начиная с версии 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
0 голосов
/ 19 апреля 2019

На данный момент Bounds принимает только числовые границы, но посмотрите этот PR, если хотите его протестировать: https://github.com/pyviz/holoviews/pull/3640

...