5

我正在尝试使用sankeyNetwork()networkD3 包绘制桑基图。

sankeyNetwork(Links = Flow_data, Nodes = Nodes_data,
    Source = "Source_ID", Target = "Target",
    Value = "value", NodeID = "Nodes_name",
    width = 1000, height=600, fontsize = 16, nodeWidth = 50,
    colourScale = "d3.scale.category20c()")

可视化效果很好,但我想将颜色范围更改为单个范围。有没有机会改变 SankeyNetwork 的颜色?我需要的范围只有例如 3 种颜色,我可以自己设置(不是 d3.scale 的预定义 colourScales)。

4

1 回答 1

8

您可以配置:

sankeyNetwork(Links = Flow_data, Nodes = Nodes_data,
                      Source = "Source_ID", Target = "Target",
                      Value = "value", NodeID = "Nodes_name",
                      width = 1000, height=600, fontsize = 16, nodeWidth = 50,
                      colourScale = "d3.scale.category20c()")  <==== Categorical color

更新

较新的版本:

d3.scale.ordinal().range(["#7d3945","#e0677b", "#244457"])
now works if changed to:
d3.scaleOrdinal().range(["#7d3945","#e0677b", "#244457"]) 

谢谢@彼得埃利斯

更新

使用自定义颜色时有什么方法可以设置透明度吗?

“#AARRGGBB”似乎不起作用

您可以创建一个 selectAll("your_class").style("opacity",0.5),看看这个:stackoverflow.com/questions/6042550/…</a> 以获取样式属性选项。并且 CSS3 有一个完全标准化的解决方案:“fill="rgba(124,240,10,0.5)"

有关颜色参考,请查看此处:http ://bl.ocks.org/aaizemberg/78bd3dade9593896a59d

在这里:https ://github.com/mbostock/d3/wiki/Ordinal-Scales#categorical-colors

于 2015-08-25T16:42:34.210 回答