Создание диаграммы аккордов в Python

#python #pandas #holoviews #chord-diagram

#python #pandas #holoviews #диаграмма аккордов

Вопрос:

Я хочу создать диаграмму аккордов для следующего набора данных, где у меня есть первые два столбца в качестве физических местоположений, а третий столбец показывает, сколько людей посетили оба.

 Place1   Place2    Count
US       UK        200
FR       US        450
UK       US        200
NL       FR        150
IT       FR        500
 

Я пытался использовать Holoviews, но не смог заставить его работать

 nodes = hv.Dataset(df, 'Place1', 'Place2')
chord = hv.Chord((df, nodes), ['Place1', 'Place2'], ['Count'])
graph = chord.select(selection_mode='nodes')
 

Но я получаю следующую ошибку: Ошибка данных: ни один из доступных серверных систем хранения не смог поддерживать предоставленный формат данных.

Как я могу использовать этот фрейм данных для создания диаграммы аккордов?

Ответ №1:

Возможное решение этой проблемы заключается в следующем. Помните, что ваши общие данные не очень велики, и результирующая диаграмма аккордов довольно уродлива.

 import holoviews as hv
chords = chord.groupby(by=["Place1", "Place2"]).sum()[["Count"]].reset_index()
chords = chords.sort_values(by="Count", ascending=False)

CChord = hv.Chord(chords)
print(CChord)
hv.extension("bokeh")
CChord

 

Последняя часть hv.extension("bokeh") важна для визуализации. Вы даже можете добавить метку, используя что-то вроде этого:

 cities = list(set(chords["Place1"].unique().tolist()   chords["Place2"].unique().tolist()))
cities_dataset = hv.Dataset(pd.DataFrame(cities, columns=["City"]))
 

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