Holoviews

时间:2017-11-09 17:06:35

标签: python holoviews

我有一个带时间索引和一些列的数据框,类似于

dt, col1, col2, col3
12, 0.9, 0.3, 0.1
13, 0.9, 0.3, 0.2
14, 2.9, 0.4, 0.1
15, 0.1, 0.3, 0.7

我可以为每列创建一个Holoviews曲线而不会出现问题。是否可以生成一个图表,在[col1,col2,col3]之间选择下拉菜单?

1 个答案:

答案 0 :(得分:1)

HoloViews主要用于绘制所谓的" tidy"或者很容易长数据帧,因此要充分利用HoloViews的强大功能,您需要将数据转换为该格式。 pd.melt函数对于转换" wide"非常有用。整理数据。根据你的例子你可以做这样的事情

df = pd.DataFrame({'dt': range(10), 'col1': np.random.rand(10),
                   'col2': np.random.rand(10), 'col3': np.random.rand(10)})
tidy_df = pd.melt(df, id_vars='dt', var_name='column', value_name='value')
ds = hv.Dataset(tidy_df)
ds.to(hv.Curve, 'dt', 'value', 'column')

或者,您也可以手动手动创建HoloMap:

df = pd.DataFrame({'dt': range(10), 'col1': np.random.rand(10),
               'col2': np.random.rand(10), 'col3': np.random.rand(10)})
hv.HoloMap({col: hv.Curve(df, 'dt', col) for col in ['col1', 'col2', 'col3']},
           kdims='Column')

说完这一切之后,你的用例非常普遍,而HoloViews的下一个版本将包含使这类事情变得更容易的方法,所以请留意有关使用pandas DataFrames的用户指南。