- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 visNetwork 包绘制网络。我希望我的节点在所有不同的网络中对相同的组使用相同的颜色。所以我要
这是前 3 个默认颜色。这是第一个简单的例子:
nodes <- data.frame(id = 1:10, label = paste("Label", 1:10),
group = factor(c("A","B","C", "A","C","C","C","A","A","A"), levels=c("A","B","C")))
visnw <- visNetwork(nodes, edges) %>%
visLegend(position = "right")
visnw
但是当我省略 B 组时,即使我指定“组”列是包含 3 个水平的因素,“红色”颜色也会消失,可视化中会忽略这一事实。此外,当第一个元素不是“A”时,它会被打乱得更多。
nodes <- data.frame(id = 1:10, label = paste("Label", 1:10),
group = factor(c("C","A","C", "A","C","C","C","A","A","A"),c("A","B","C"))) %>%
dplyr::arrange(group) #needed to have A as first group but it doesn't seem to have an effect on the second visualisation
edges <- data.frame(from = c(2,5,10), to = c(1,2,10))
visnw <- visNetwork(nodes, edges) %>%
visLegend(position = "right")
visnw
但是,上面的代码告诉我这是错误的,因为 C 组必须有红色。此外,由于节点 1、3、5、6、7 属于组“C”而不是“A”,因此组被切换。当我省略 arrange() 时,后一个问题不会出现,但是图例在“A”级别的顶部和下方有级别“C”,这不是很好。
我试图编辑 visnw 列表,但这不起作用。
我几乎可以通过为每个组明确定义我想要的颜色来实现我想要的。
visnw <- visNetwork(nodes, edges) %>%
visGroups(groupname = "A", color = "lightblue") %>%
visGroups(groupname = "B", color = "yellow") %>%
visGroups(groupname = "C", color = "red") %>%
visLegend(position = "right")
visnw
这给了我这个可视化:
我更喜欢使用默认颜色,因为我喜欢它们,而且默认方案中的节点上还有一条边,我也应该手动定义它。任何人都知道如何实现这一点?
最佳答案
默认组颜色选项由vis.js提供;你可以看到完整列表here .
基于上面链接中的参数列表,例如,您可以像这样完全复制第一组的默认组样式:
visnw <- visNetwork(nodes, edges) %>%
## 0: blue
visGroups(groupname = "A", color = list(border = "#2B7CE9", background = "#97C2FC", highlight = list(border = "#2B7CE9", background = "#D2E5FF"), hover = list(background = "#2B7CE9", border = "#D2E5FF")))
或者,如果您只想更改显着参数,可以尝试以下操作:
visnw <- visNetwork(nodes, edges) %>%
## 0: blue
visGroups(groupname = "A", color = list(border = "#2B7CE9", background = "#97C2FC")) %>%
## 1: yellow
visGroups(groupname = "B", color = list(border = "#FFA500", background = "#FFFF00")) %>%
## 2: red
visGroups(groupname = "C", color = list(border = "#FA0A10", background = "#FB7E81")) %>%
visLegend(position = "right")
visnw
关于R:在 visNetwork 中保留相同的默认颜色集,即使缺少组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62573408/
关于将igraph与visNetwork结合,我有一个非常简单的问题。我想用visEdges(value = E(graph)$ weight)加权边缘,但这不起作用。 这是一个说明问题的玩具示例:
这个问题已经有答案了: newline in [duplicate] (9 个回答) 已关闭 6 年前。 在 R 中,如何在 visNetwork 中拥有多行标题? \n似乎没有解决方案: requ
这个问题已经有答案了: newline in [duplicate] (9 个回答) 已关闭 6 年前。 在 R 中,如何在 visNetwork 中拥有多行标题? \n似乎没有解决方案: requ
引用我之前的一篇文章,其中包含完整的可重现代码:VisNetwork from IGraph - Can't Implement Cluster Colors to Vertices 我的目标是更改
我已经使用 Shiny 中的 visNetwork 包构建了我的网络。我想单击一个节点,然后从数据框中显示有关该节点的信息。我已经能够使用单击和近点函数对散点图执行此操作,例如此处显示的 Shiny
我正在尝试使用 visNetwork 包可视化我的网络。但我发现自己对控制节点大小和边宽完全感到困惑。在第一个示例中,我在节点中设置了 value=1,在边缘中设置了 value=0.1。在第二个示例
我想使用 visNetwork 包绘制网络。我希望我的节点在所有不同的网络中对相同的组使用相同的颜色。所以我要 A组->蓝色 B组->黄色 C 组 -> 红色。 这是前 3 个默认颜色。这是第一个简单
我有使用“igraph”库制作的网络图: library(tidyverse) library(igraph) set.seed(123) n=15 data = data.frame(tibble(
我想并排放置两个 visNetwork 图以进行视觉比较。使用带有 par() 或 layout() 的 igraph 可以进行多图定位。有没有办法为 visNetwork 做到这一点?解决方法/问题
我找到了一种将 igraph 转换为 visNetwork 的方法(请参阅 Interactive arules with arulesViz and visNetwork )。假设从 igraph
我一直有这个问题。我只能在一张图中获得一个或另一个但不能同时获得两个选项。下面是代码,我从@lukeA 那里得到了很多帮助,让我走到了这一步。 我有下图,我可以在其中将簇颜色输入 visNetwork
我正在尝试在 visNetwork 节点中嵌入一个操作按钮,以便可以通过单击工具提示中的按钮来启动操作。 我可以让按钮出现在节点标签中,但单击它时不会触发任何事件。我哪里出错了? 最小示例: libr
这是一个更普遍的问题:VisNetwork from IGraph - Can't Implement Cluster Colors to Vertices 我有一个 igraph,已转换为 visN
我开始使用名为 visNetwork 的软件包,我觉得它在未来的用户界面使用方面有很大的潜力。 尽管如此,我还是遇到了一些麻烦。我创建了一个 igraph,并应用了聚类算法,特别是 fastgreed
我正在查看美国参议员的 Twitter 网络。我希望能够选择一个参议员(使用 nodeIdSelection)并仅突出显示连接到该选定 Node 的 Node 并仅突出显示这些连接的边缘(这是我无法弄
我使用了此 question 中给出的示例但我想调整它以显示已选择节点的数据(不是所有节点,但只有这个节点)并且也不使用操作按钮,以便在我单击节点时立即显示数据。 我尝试了很多解决方案都没有成功。 当
我正在尝试使用 visNetwork 制作一个 Shiny 的交互式网络/思维导图应用程序。 visNetwork 允许交互式创建和操作网络图,如何将这些结果保存在 R data.frame 中? 我
我想将节点的位置固定在 (1,0)、(0,1)、(-1,0)、(0,-1) 和 (0,0) 处。然而,它不起作用,我的Java知识为零(看来here是关于Java代码的问题)。 有人可以帮忙吗?这是一
我正在探索 visNetwork,无法弄清楚为什么这个不显示边缘 library(visNetwork) nodes=data.frame(node=c('m1','m2','n1','n2')) a
给定的 visNetwork 脚本创建如下快照中的 visNetwork 图。我的问题是,如果您看到第一个和第二个节点,则两者之间的边缘是弯曲的。有没有一种方法可以在不改变边缘长度的情况下使边缘笔直。
我是一名优秀的程序员,十分优秀!