下面是一个有10个顶点的igraph对象,每个顶点都被分配了两种颜色中的一种。我想绘制这个图,顶点的大小随一个名为val
的变量而变化,这个变量是一个长度为10的向量,范围从1到10,对应于图中的10个顶点。
library(igraph)
g <- make_ring(10)
val = 1:10
pal <- c("pink", "steelblue")
V(g)$color <- c(rep("pink", 5), rep("steelblue", 5))
pdf("aa.pdf", width = 7, height = 7)
plot(g, layout = layout_with_fr,
vertex.size = val, cex = 0.5,
vertex.frame.color = NA, edge.color = adjustcolor("#c7c7c7", alpha.f = 0.9))
legend(-1.3, -0.9, legend = val,
pch = 21,
pt.bg = pal, # Color of filled legend
col = pal, # Color of legend symbol border
bty="n", #Remove legend border
# horiz = T,
ncol = 5
)
dev.off()
字符串
下面是输出图:
如果我理解正确的话,图中第10个顶点的大小是val[10]
,也就是10。图中第一个顶点的大小是val[1]
,也就是1。Q1:如何自定义顶点的大小,使顶点大小仍然按val
变化,但最大的顶点大小(即,第10个顶点)用点大小15绘制,并且最小顶点大小(即,第一个顶点)用点大小2绘制,并且其他顶点大小相应地以某种方式在2和15之间缩放?
第二季度:另外,如何创建一个**黑色(非彩色)**点的图例,仅显示val
值为1、4、8和10的顶点的大小?
1条答案
按热度按时间pcww981p1#
使用
tidygraph
/ggraph
生态系统,这种级别的自定义要容易得多:字符串
x1c 0d1x的数据