当前位置: 首页 > 知识库问答 >
问题:

如何制作源和目标节点没有颜色的sankyplots以及如何制作图例来显示链接组的不同颜色

慕宏峻
2023-03-14

我正在处理网络数据,希望使用r中networkd3包中的sankeyNetwork()将其可视化。在我的数据帧中,我有一个源节点和一个目标节点、值以及一个分组列组。

    < li >如何在不对节点着色的情况下绘制sankey图(源和目标都不着色)? < li >我想通过变量组< code>LinkGroup = "group"给链接线着色,并且我想知道如何制作图例来显示链接的不同颜色实际上代表了组变量。

这是代码和数据框...

# Libraries
library(dplyr)
library(tidyr)
library(tibble)
library(networkD3)

# Load dataset from github

data <- read.table("https://raw.githubusercontent.com/holtzy/data_to_viz/master/Example_dataset/13_AdjacencyDirectedWeighted.csv", header=TRUE) %>%
  rownames_to_column() %>%
  gather(key = "key", value = "value", -rowname) %>%
  filter(value > 0) %>% 
  rename(source = rowname,  target =key) %>%
  select("source", "target", "value") %>%
  mutate(group = c(rep("A", 10), rep("B",7), rep("C", 8), rep("D", 10)))
nodes <- data.frame(name=c(as.character(data$source), as.character(data$target)) %>% unique())

data$IDsource=match(data$source, nodes$name)-1 
data$IDtarget=match(data$target, nodes$name)-1

# Make the Network
sankeyNetwork(Links = data,
              Nodes = nodes,
              Source = "IDsource",
              Target = "IDtarget",
              Value = "value",
              NodeID = "name", 
              sinksRight=FALSE,
              nodeWidth=40,
              fontSize=13,
              nodePadding=20,
              LinkGroup = "group")

共有1个答案

应志用
2023-03-14

您可以继续让链接节点根据其组自动选择颜色,并使用 NodeGroup = NULL 选项/参数有效地关闭节点的颜色

sankeyNetwork(Links = data,
              Nodes = nodes,
              Source = "IDsource",
              Target = "IDtarget",
              Value = "value",
              NodeID = "name", 
              sinksRight=FALSE,
              nodeWidth=40,
              fontSize=13,
              nodePadding=20,
              LinkGroup = 'group',
              NodeGroup = NULL)

networkD3没有任何内置的图例创建选项,但是,如果你想自己制作图例,你可能需要使用一组一致的颜色,这样你就可以用它们来制作图例。你可以这样做…

colourScale <- 
  'd3.scaleOrdinal()
     .domain(["A", "B", "C", "D"])
     .range(["red", "blue", "green", "yellow"])'

sankeyNetwork(Links = data,
              Nodes = nodes,
              Source = "IDsource",
              Target = "IDtarget",
              Value = "value",
              NodeID = "name", 
              sinksRight=FALSE,
              nodeWidth=40,
              fontSize=13,
              nodePadding=20,
              LinkGroup = 'group',
              NodeGroup = NULL,
              colourScale = colourScale)
 类似资料:
  • 我是新来的。我需要你的帮助来完成这个样本。 如何设置不同的颜色源和目标endpoint与jplumb? 上面的代码没有对源和目标节点应用正确的颜色。

  • 目前我正在尝试实现这个功能: 我在网站上创建了一个颜色选择器。一旦用户选择了特定的颜色,他/她所选择的节点及其邻近节点的颜色将在轻击后改变为所选择的颜色。 例如,在下面的例子中,如果我选择“red”,然后选择节点“cytoscape”,那么“cytoscape”和“cytoscape.js”都将是红色的。现在,如果我将颜色改为“绿色”,然后单击“test”,“test”节点将变为绿色,但“cyto

  • 问题内容: 我目前正在尝试沿着鼠标移动彩虹轨迹。我使用Linkedlist绘制了鼠标的点,因此轨迹也随之而来。路径本身看起来很完美,只有路径中看起来不正确的颜色。我希望他们彼此淡入淡出。有人告诉我要使用线性插值,并且在研究了一段时间之后,似乎可以正常使用,只是我不知道如何实现它。 这是我到目前为止的代码: 一些照片: 这就是我现在所拥有的: http://img11.imageshack.us/i

  • 我读了一些线来改变这里的颜色。但我的问题有点不同 我使用下面的代码在谷歌地图中设置了一个标记 默认标记颜色为红色,我需要将该红色更改为我所拥有的颜色: 资源-- 怎么做呢?

  • 由于某些原因,图标不会变为红色。它保持白色/灰色。 有人知道如何把颜色变成红色吗? 还有很多其他问题没有提到我正在使用的“CSS伪元素”类型。

  • 本文向大家介绍Python+matplotlib绘制不同大小和颜色散点图实例,包括了Python+matplotlib绘制不同大小和颜色散点图实例的使用技巧和注意事项,需要的朋友参考一下  具有不同标记颜色和大小的散点图演示。 演示结果: 实现代码: 总结 以上就是本文关于Python+matplotlib绘制不同大小和颜色散点图实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他