Группа и метка в боке Chord Chart 0,13 - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь сделать диаграмму аккордов, используя Holoview с Bokeh.Я могу сделать первый шаг, , как объяснено здесь ;тем не менее, я не могу ни создать группу, ни показать цвета и ярлык.Во-первых, мои данные * chord = *:

 [['GK', 'WD ', 2],
 ['GK', 'C ', 1],
 ['GD', 'GK ', 1],
 ['GD', 'C ', 2],
 ['GD', 'WA ', 4],
 ['WD', 'GD ', 4],
 ['WD', 'C ', 1],
 ['WD', 'WA ', 2],
 ['WD', 'GA ', 1],
 ['C', 'GD ', 1],
 ['C', 'WD ', 1],
 ['C', 'WA ', 3],
 ['C', 'GA ', 2],
 ['C', 'GS ', 10],
 ['WA', 'C ', 2],
 ['WA', 'GA ', 9],
 ['WA', 'GS ', 7],
 ['GA', 'C ', 3],
 ['GA', 'WA ', 4],
 ['GA', 'GS ', 5],
 ['GS', 'C ', 6],
 ['GS', 'WA ', 1]]

Значения [источник, цель, значение].Что застало меня в тупике, так это то, что диаграмма аккордов не группирует источник автоматически, что происходит, если я использую диаграмму Санки.Итак, я создаю свою группу и метку:

group = [1,1,2,2,2,3,3,3,3,4,4,4,4,4,5,5,5,6,6,6,7,7]
label = ['GK','GK','GD','GD','GD','WD','WD','WD','WD','C','C','C','C','C','WA','WA','WA','GA','GA','GA','GS','GS']
index =list(np.arange(0,22)

Тем не менее, результат далек от ожидаемого:

import numpy as np
import pandas as pd
import holoviews as hv

hv.extension('bokeh')
%output size=200
chords = pd.DataFrame(chord, columns=['source','target','value'])
%opts Chord [label_index='source' color_index='target' edge_color_index='source'] 
%opts Chord (cmap='Category20' edge_cmap='Category20')
hv.Chord(chords)

enter image description here

и если я пройду

hv.Chord(chords, nodes)

Я получу эту ошибку:

AttributeError: 'DataFrame' object has no attribute 'ndims'

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 19 февраля 2019

Если вы хотите передать nodes в hv.Chord(), имейте в виду, что сначала вы должны позвонить hv.Dataset() для nodes, например: nodes = hv.Dataset(nodes_df, 'index'), где nodes_df - кадр данных панд.

и далее: chord = hv.Chord((links, nodes)).select(value=(5, None)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...