У меня есть набор данных, который состоит из проходов, сделанных и полученных игроком с каждым товарищем по команде.Примерный набор данных выглядит следующим образом:
ter Stegen Pique Rakitic Busquets Coutinho Suarez Messi \
ter Stegen 0 8 0 2 0 1 1
Pique 12 0 2 20 0 0 1
Rakitic 3 3 0 13 5 2 6
Busquets 1 1 9 0 0 0 8
Coutinho 0 0 2 1 0 4 6
Suarez 0 0 2 1 2 0 1
Messi 0 2 5 1 3 4 0
Lenglet 4 6 8 8 1 0 0
Alba 1 1 8 4 5 8 5
Roberto 4 11 5 4 0 4 6
Vidal 1 10 5 8 3 2 7
Lenglet Alba Roberto Vidal
ter Stegen 4 3 5 5
Pique 9 2 10 5
Rakitic 4 8 2 5
Busquets 4 8 7 12
Coutinho 0 3 0 1
Suarez 0 5 3 3
Messi 0 4 3 4
Lenglet 0 4 0 4
Alba 6 0 1 4
Roberto 1 0 0 8
Vidal 5 7 6 0
Как я могу визуализировать это в форме диаграммы аккордов, которая показывает поток проходов от каждого игрока к другому?Я пытался использовать Holoviews
и Plotly
, но не могу понять, как работать с данными в этом формате.Буду признателен за любую помощь.
Вот весь код:
import pandas as pd
import holoviews as hv
from holoviews import opts, dim
from bokeh.plotting import show, output_file
import numpy as np
pd.set_option("display.max_columns",11)
hv.extension('bokeh')
hv.output(size = 200)
df = pd.read_csv(r"C:\Users\ADMIN\Desktop\Abhishek\BarLiv.csv")
df = df.set_index("0")
df.index.name = None
#print(df)
# Declare a gridded HoloViews dataset and call dframe to flatten it
players = list(df.columns)
data = hv.Dataset((players, players, df), ['source', 'target']).dframe()
#print(players)
# Now create your Chord diagram from the flattened data
chord = hv.Chord(data)
chord.opts(
node_color='index', edge_color='source', label_index='index',
cmap='Category10', edge_cmap='Category10', width=500, height=500)
output_file('chordtest.html')
show(hv.render(chord))
Редактировать 1: Вот что я получаю после реализации решения @ philippjfr ![enter image description here](https://i.stack.imgur.com/7aZEO.png)