r - 在 Rgraphviz 中设置子图/集群属性
问题描述
我想通过 Rgraphviz 绘制图表,但我无法处理我设置的集群的设计属性。
SO和其他地方已经有类似的问题,但没有一个真正的最小工作示例,并且没有一个得到回答。所以我想尝试提出一个完整的问题以获得完整的答案。作为对该软件包的介绍,我阅读了Gentry、Gentleman 和 Huber的论文“How To Plot A Graph Using Rgraphviz”。
我的示例网络:
library(Rgraphviz)
set.seed(123)
V <- letters[1:6]
M <- 1:4
g1 <- randomGraph(V, M, 0.2)
如果我想绘制它,我可以很容易地通过列表给它一些属性:
attributes <- list(node = list(shape = "rectangle", fixedsize = FALSE),
graph = list(layout = "dot", bgcolor = "transparent"))
plot(g1, attrs = attributes )
现在我想定义两个集群/子图。这可以通过以下方式完成:
sg1= subGraph(c("a", "e", "f"), g1)
sg2= subGraph(c("b", "c", "d"), g1)
subGList <- vector(mode = "list", length = 2)
subGList[[1]] <- list(graph = sg1, cluster = TRUE)
subGList[[2]] <- list(graph = sg2, cluster = TRUE)
现在再次绘制图形,包括一个subGlist
参数:
plot(g1, attrs = attributes , subGList = subGList)
因此,显然,设置发生了变化,即使将集群分开一点会很方便,但结果还可以。
现在,如果我想定义特定于集群的样式或尝试将它们框起来,我就会遇到问题。根据上述介绍性论文的第 4 页,可以简单地将一个名为的元素添加attrs
到subGlist
.
据我了解,它应该以这种方式工作:
subGList[[1]] <- list(graph = sg1,
cluster = TRUE,
attrs = c(fontcolor = "red"))
plot(g1, attrs = attrs, subGList = subGList)
不幸的是,事实并非如此。如前所述,我想构建我的集群(类似于this SO post),但由于我什至无法处理集群的字体颜色,我认为我犯了一个更根本的错误。
我的完整代码:
library(Rgraphviz)
set.seed(123)
V <- letters[1:6]
M <- 1:4
g1 <- randomGraph(V, M, 0.2)
attributes <- list(node = list(shape = "rectangle", fixedsize = FALSE),
graph = list(layout = "dot", bgcolor = "transparent"))
#plot(g1, attrs = attributes )
sg1= subGraph(c("a", "e", "f"), g1)
sg2= subGraph(c("b", "c", "d"), g1)
subGList <- vector(mode = "list", length = 2)
subGList[[1]] <- list(graph = sg1, cluster = TRUE)
subGList[[2]] <- list(graph = sg2, cluster = TRUE)
#plot(g1, attrs = attributes , subGList = subGList)
subGList[[1]] <- list(graph = sg1,
cluster = TRUE,
attrs = c(fontcolor = "red"))
plot(g1, attrs = attrs, subGList = subGList)
我希望有人能帮帮忙!谢谢
解决方案
推荐阅读
- java - 除非从 NetBeans 运行,否则 Java Canvas drawString 不会加粗文本
- c# - 如何访问 DataTemplate 中 SettingsProperty 的值
- javascript - 如何通过刷新更改 CSS 中的随机背景
- angular - RxJS v6 迁移,不明白哪里错了?
- python - 给定一个用给定基向量构建的函数,近似矩阵的值
- python - BeautifulSoup:如果未找到 HTML 元素,则返回 None
- c# - 如何在 C# 中正确实现等待异步
- python - 在 Squarify 中设置字体和换行文本
- php - 根据访问权限显示图像
- c# - 如何在 Linq 或 Lambda 中创建 Stuff 和 XML PATH(SQL)