因此,我尝试使用holoviews和bokeh构建和弦图,并遇到一些问题。我发现一些相关的帖子,但并没有太大帮助。本质上,我需要在最后纠正错误时需要帮助,以便可以看到带有标签和颜色的新和弦图(chord.opts)。
基本上,我有一个名称列表(及其各自的业务部门)以及在程序中与之配对的人员。我想用和弦图来形象化每个人的联系。
完全公开:以下代码可能是完全错误的...但这是我在查看示例后想到的。
import holoviews as hv
from holoviews import opts, dim
import pandas as pd
import numpy as np
from bokeh.plotting import figure, output_file, show
from bokeh.io import output_notebook
output_notebook()
hv.extension('bokeh')
hv.output(size=200)
book1 = "../desktop/book3.xls"
pairs = pd.read_excel (book1)
pair_counts = pairs.groupby(['id1', 'id2']).name2.count().reset_index()
pair_counts看起来像这样: pair_counts
test = hv.Chord(pair_counts)
hv.save(test,'test.png')
这将输出以下图片。 test.png
nodes = hv.Dataset(pairs, 'id1', 'bu1')
nodes.data.head()
test2 = hv.Chord((test, nodes)).select(value=(5, None))
此行之后,出现以下错误:
DataError: None of the available storage backends were able to support the supplied data format.
继续...
test2.opts(
opts.Chord(cmap='Category20', edge_cmap='Category20', edge_color=dim('bu2').str(),
labels='bu1', node_color=dim('bu1').str()))
hv.save(test2,'test2.png')
这是excel数据的样子: excel data
这是df“ pairs”中excel数据的dtype:
pairs.dtypes
id1 int64
name1 object
dept1 object
bu1 object
id2 int64
name2 object
dept2 object
bu2 object
dtype: object