Python 全息视图,为全息图的每一帧覆盖一条不同的线
我正在尝试使用以下代码创建散点图和x轴值平均值的垂直线,但我需要一些帮助来实现它Python 全息视图,为全息图的每一帧覆盖一条不同的线,python,overlay,holoviews,Python,Overlay,Holoviews,我正在尝试使用以下代码创建散点图和x轴值平均值的垂直线,但我需要一些帮助来实现它 import pandas as pd import holoviews as hv hv.extension('bokeh') df = pd.DataFrame({'group': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'], 'x': [3, 4, 5, 2, 2, 3, 5, 4, 7],
import pandas as pd
import holoviews as hv
hv.extension('bokeh')
df = pd.DataFrame({'group': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'x': [3, 4, 5, 2, 2, 3, 5, 4, 7],
'y': [10, 8, 9, 3, 7, 6, 5, 4, 8]})
m1 = df['x'].mean()
line1 = hv.VLine(m1)
line1.opts(color='red', line_dash='dashed')
ds = hv.Dataset(df, kdims=['group'], vdims=['x', 'y'])
scatter = ds.to(hv.Scatter, 'x', 'y')
scatter.opts(width=400, height=400, size=10,
tools=['hover'], xlim=(0, 11), ylim=(0, 11))
layout = scatter * line1
hv.save(layout, 'means0.html')
它与散点图的预期一样工作良好,当更改“组”维度时,会更改绘制的点,但平均值的垂直线会为整个数据帧计算一次,我也不知道如何实现该元素的交互性。这意味着每当我更改“组”维度以计算所选“组”的平均值并按点的方式绘制时。你几乎就到了,你只需将每条线(相应计算子集的平均值)放入全息图中。下面通过dict显式初始化全息图
import pandas as pd
import holoviews as hv
hv.extension('bokeh')
df = pd.DataFrame({'group': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'x': [3, 4, 5, 2, 2, 3, 5, 4, 7],
'y': [10, 8, 9, 3, 7, 6, 5, 4, 8]})
hm = hv.HoloMap({
group: hv.Scatter(df.loc[df.group==group], 'x', 'y') * hv.VLine(df.loc[df.group==group, 'x'].mean())
for group in df.group.unique()
})
hm.opts(
opts.Scatter(width=400, height=400, size=10,
tools=['hover'], xlim=(0, 11), ylim=(0, 11)),
opts.VLine(color='red', line_dash='dashed')
)