#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"]))