визуализация в боке, головокружение

Я создал следующие данные:

  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 не изменятся. Мой вопрос в том, как изменить раскрывающийся список справа, чтобы увидеть изменения в графике слева. Любой другой совет приветствуется.


person lpt    schedule 28.07.2018    source источник


Ответы (2)


Во-первых, я рекомендую вам убедиться, что ваш 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')

```

bar

person Andrew    schedule 01.08.2018

на основе помощи Андрея. см. решение ниже. спасибо Андрей:

введите описание изображения здесь

person lpt    schedule 06.08.2018
comment
Вы, вероятно, захотите .options(xrotation=90) или xrotation=45, чтобы имена были удобочитаемыми. - person James A. Bednar; 07.08.2018
comment
Собственно я так и сделал. Забыл вставить это сюда. Я использовал xrotation = 60. Так хорошо выглядит. - person lpt; 08.08.2018