5

如何将水平线添加到 hvplot ?Holoviews 有 .HLine 和 .VLine 但不知道如何通过 pandas.hvplot 或 hvplot 访问它

这是一个示例数据框和绘图脚本。

import pandas as pd
import hvplot.pandas

df = pd.DataFrame({'A':[100], 'B':[20]})
df = df.reset_index()

print(df)
#   index   A       B
#0  0       100     20

# create plot
plot = df.hvplot.bar(y=['A', 'B'], x='index', 
              rot=0, subplots=False, stacked=True)

plot


在此处输入图像描述

4

1 回答 1

9

我会像这样将holoviews hv.HLine()覆盖到您的情节中:

import holoviews as hv

your_hvplot * hv.HLine(60)

在代码中使用* 符号很容易将 HLine 放在其他图的顶部。
这称为叠加层


如果您还需要带有 HLine 的标签,则此 SO 问题包含一个示例:
如何在 holoviews + bokeh 中获得带有图例标签的全高垂直线?


您的带有水平线的示例代码将如下所示:

# import libraries
import pandas as pd
import hvplot.pandas
import holoviews as hv

# sample data
df = pd.DataFrame({'A':[100], 'B':[20]})

# create plot
plot = df.hvplot.bar(
    y=['A', 'B'], 
    stacked=True, 
    xaxis='', 
    title='Adding horizontal line hv.HLine() to plot with * overlay',
)

# create separate hline 
# for demonstration purposes I added some styling options
hline = hv.HLine(60)
hline.opts(
    color='red', 
    line_dash='dashed', 
    line_width=2.0,
)

# add hline to plot using * which overlays the hline on the plot
plot * hline

最后结果:
将 hv.hline 添加到 hvplot

于 2019-11-09T06:51:37.200 回答