gpt4 book ai didi

python - 用全息 View 绘制多条线

转载 作者:行者123 更新时间:2023-12-04 11:55:22 24 4
gpt4 key购买 nike

我有一个 df 看起来像这样:

data = {'Cumulative': {0: 4, 1: 18, 2: 24, 3: 24, 4: 4, 5: 20, 6: 32, 7: 42},  'Id': {0: 1, 1: 1, 2: 1, 3: 1, 4: 2, 5: 2, 6: 2, 7: 2},  'Order': {0: '1-1',   1: '1-2',   2: '1-3',   3: '1-4',   4: '1-1',   5: '1-2',   6: '1-3',   7: '1-4'},  'Period': {0: 1, 1: 2, 2: 3, 3: 4, 4: 1, 5: 2, 6: 3, 7: 4},  'Time': {0: '1-1',   1: '1-2',   2: '1-3',   3: '1-4',   4: '1-1',   5: '1-2',   6: '1-3',   7: '1-4'},  'Year': {0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 6: 1, 7: 1}}

df = pd.DataFrame(data)
结果数据框如下:
example dataframe
我想对 Holoviews 做的是为每个 id 绘制一条线。所以“订单”在 x 轴上,“累积”在 y 轴上,每个“Id”都有自己的线条(都具有相同的颜色)。这是我到目前为止所拥有的,但它没有给我正确的结果。
%opts Curve [width=600 height=400 show_grid=True ] (color='indianred', alpha=0.5, line_width=1)

kdims=['Order' ] vdims = ['Cumulative',
] ds = hv.Dataset(df.sort_values(by=['Year','Period']), kdims=kdims, vdims= vdims)

ds.to(hv.Curve, ['Order'] ,'Cumulative' )

最佳答案

HoloViews 只会知道已声明的维度。这意味着当你做 hv.Dataset(df, kdims, vdims)它不知道“Id”列并且无法对其进行分组。这是我会做的:

%%opts Curve [width=600 height=400 show_grid=True ] (color='indianred', alpha=0.5, line_width=1)
ds = hv.Dataset(df).sort(['Year', 'Period'])
ds.to(hv.Curve, 'Order' ,'Cumulative', 'Id')
这里我们声明了没有任何显式 kdims 或 vdims 的数据集,这意味着我们可以使用 HoloViews 对数据进行排序,然后使用 .to绘制“订单”与“累积”列的曲线的方法,按“Id”列分组。如果您想查看一个图上的所有曲线,只需将其更改为 ds.to(hv.Curve, 'Order' ,'Cumulative', 'Id').overlay() .
生成的图像如下,有一个滑块可以在不同的 Id 值之间切换:
image generated by the code

关于python - 用全息 View 绘制多条线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48856241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com