我的 HoloViews 散点图上没有显示垂直线,因为它在散点图的 x 范围之外

Vertical line is not shown on my HoloViews scatter plot because it's outside the x-range of my scatterplot

我有一个散点图,想在上面添加一条垂直线作为标记。

但是散点图的 x 范围是 0 到 2,但我的垂直线在 x 范围 6,所以它落在散点图的 x 范围之外,不会自动显示。

无论绘图的 x 范围如何,我该怎么做才能显示垂直线?


示例代码:

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

# my vline is not shown automatically because it's
# outside the range of my hv.Curve()
hv.Curve([[0,3], [1,4], [2,5]]) * hv.VLine(6)


示例图(不显示 Vline):

1) 您当然可以 手动更改 xlim 为:
hv.VLine(4).opts(xlim=(0, 7))

2) 使用 .opts(apply_ranges=True) 而不必查看 x- 上的范围轴应该是:

curve = hv.Curve([[0,3], [1,4], [2,5]])

# use apply_ranges=True
vline = hv.VLine(4).opts(apply_ranges=True, line_width=10)

curve * vline

同样的事情也适用于 hv.VSpan() 和 hv.HLine()。

3) 使用尖峰 hv.Spikes 代替垂直线:
Spikes的好处是它还会自动为你调整x-range。

curve = hv.Curve([[0,3], [1,4], [2,5]])

# use apply_ranges=True
spikes = hv.Spikes([4]).opts(
    spike_length=3.0, 
    line_width=5,
    line_dash='dashed',
)

curve * spikes



结果图: