在bokeh holoview中可视化

时间:2018-07-28 18:38:19

标签: data-visualization bokeh topic-modeling holoviews

我生成了以下数据:

  topic termWeights termNames
0   0   0.02788352873965973 christma
1   0   0.02232702425056217 dragon
2   0   0.019817406886504067    autumn
3   0   0.01850595162915197 everyth
4   0   0.016370882157494063    hors
.....................
8   0   0.014648323538626204    mysteri
9   0   0.01418412337079642 red
10  1   0.03093819711779432 call
11  1   0.029868336735626826    book

我正在尝试可视化主题模型。

from bokeh.layouts import row
from bokeh.plotting import figure, show, output_file
import holoviews as hv, numpy as np, pandas as pd
hv.extension('matplotlib', 'bokeh', width=100)

ds=hv.Dataset(overAllTopics, ['topic','termWeights'], 'termNames').aggregate(function=np.nansum)
by_state = ds.to(hv.Curve, 'termWeights','termNames') 
by_state 

以下语法有助于我遵循graph。如果我更改右侧的“主题”,则图形上的标题会更改,但x轴和/或y轴的值不会更改。我的问题是如何更改右侧下拉菜单以查看左侧图表中的更改。或任何其他建议,不胜感激。

2 个答案:

答案 0 :(得分:1)

基于安德鲁的帮助。请参阅下面的解决方案。谢谢安德鲁:

enter image description here

答案 1 :(得分:0)

首先,我建议您确保termWeights是float数据类型(现在看起来像字符串对象)。

然后,我建议使用hv.Bars而不是hv.Curve,因为每个主题只有一个数据点(在执行.aggregate()之后),这就是为什么您看不到任何东西的原因。 [没关系,我在示例中按错误的列分组]

```

import numpy as np
import pandas as pd
import holoviews as hv
hv.extension('bokeh')
df = pd.read_csv('test.txt', delimiter='\s+')
df.dtypes

ds = hv.Dataset(df, ['topic','termWeights'], 'termNames').aggregate(function=np.nansum)

ds.to(hv.Bars, 'topic', 'termWeights', groupby='termNames')

```

bar