如何在holoviews Sankey图中为各个类别着色?

时间:2019-07-17 23:03:07

标签: styling sankey-diagram holoviews

我正在修改文档中的示例:http://holoviews.org/reference/elements/bokeh/Sankey.html

我希望能够访问每个类别并为它们明确着色。例如,将“ A”黄色,“ B”蓝色等。我很高兴提供十六进制代码。

我在任何地方都找不到答案:文档,github问题或先前的问题。我发现最接近的是:Colour the links between nodes in sankey diagram: networkD3,因为holoviews Sankey是其中的移植,但我不知道这如何应用于holoviews实现。

上面链接中的代码

import holoviews as hv
from holoviews import opts, dim
hv.extension('bokeh')
sankey = hv.Sankey([
       ['A', 'X', 5],
       ['A', 'Y', 7],
       ['A', 'Z', 6],
       ['B', 'X', 2],
       ['B', 'Y', 9],
       ['B', 'Z', 4]]
)
sankey.opts(width=600, height=400)

我如何将以上内容更改为显色A,B,X,Y,Z?

谢谢

1 个答案:

答案 0 :(得分:1)

http://holoviews.org/user_guide/Styling_Plots.html#Explicit%20color%20mapping

from holoviews.plotting.util import process_cmap

cmap_list = process_cmap("glasbey_hv")
cmap = {
    "A": cmap_list[0], # or 'yellow', 'blue', etc
    "B": cmap_list[1],
    "X": cmap_list[2],
    "Y": cmap_list[3],
    "Z": cmap_list[4],
}

sankey.opts(width=600, height=400, cmap=cmap)