我生成了以下数据:
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
以下语法有助于我遵循。如果我更改右侧的“主题”,则图形上的标题会更改,但x轴和/或y轴的值不会更改。我的问题是如何更改右侧下拉菜单以查看左侧图表中的更改。或任何其他建议,不胜感激。
答案 0 :(得分:1)
答案 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')
```