首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当颜色在plot参数中定义时,如何为顶点颜色属性创建图例?(R)

当颜色在plot参数中定义时,如何为顶点颜色属性创建图例?(R)
EN

Stack Overflow用户
提问于 2019-09-05 00:22:48
回答 1查看 273关注 0票数 1

我不知道如何用这个来做一个可重复的例子。唯一重要的是,我想让vertex.color的论点成为一个传奇,这样我用来代表“母亲节”的颜色就会显示在图例中。

代码语言:javascript
复制
plot(g, vertex.size = (V(g)$poly_area*1.25), arrow.size = 0.5, arrow.width = 0.1, vertex.label = V(g)$poly_area, vertex.color = color[as.numeric(as.factor(vertex_attr(g, "motherinst")))], curved = TRUE)

我尝试直接给图形对象添加颜色,但似乎对我也不起作用。

EN

回答 1

Stack Overflow用户

发布于 2019-09-05 00:43:47

我将使用函数legend

首先制作一个可重现的图表:

代码语言:javascript
复制
require(igraph)
g <- graph_from_atlas(523)

我需要知道顶点的数量,我们称其为n

代码语言:javascript
复制
n <- length(V(g))

然后,我创建一个描述每个节点的特定属性的任意因子,并根据该因子为每个节点分配颜色。我真的不知道poly_area属性是什么,所以我就有了创意……

代码语言:javascript
复制
f <- factor(rep(LETTERS[1:2], length = n))
V(g)$poly_area <- V(g) ** 2
vcols <- c("#F8766D", "#00BFC4")[f]

对绘图函数的调用是相同的(为了清晰起见,只是稍微简化了一点)...

代码语言:javascript
复制
plot(g, vertex.size = (V(g)$poly_area + 10), vertex.label = V(g)$poly_area, vertex.color = vcols)

..。并且可以使用legend添加图例

代码语言:javascript
复制
legend("topleft", legend = levels(f), pch = 16, col = vcols, bty = "n")

这就是结果!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57792416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档