在散景全息视图中可视化

visualizing in bokeh holoview

我生成了以下数据:

  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 

以下语法帮助我遵循 。如果我在右侧更改 "topic",图表上的 header 会更改,但 x 轴 and/or y 轴的值不会更改。我的问题是如何更改右侧下拉列表以查看左侧图表的变化。或任何其他建议表示赞赏。

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

然后,我建议使用 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')

```

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