You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于R dataframe数据配置igraph饼图顶点所需的数值向量

R语言实现方案

1. 生成列表格式的合并向量列

tidyverse方案(最易读易扩展)

使用dplyr的行分组语法即可快速生成每一行对应多列数值组成的列表列,适配任意列数的合并需求:

library(dplyr)
# 合并Red、Blue两列为向量列表
df <- df %>%
  rowwise() %>%
  mutate(RedBlue = list(c(Red, Blue))) %>%
  ungroup()
# 如果需要合并更多颜色列,可灵活调整选择逻辑
df <- df %>%
  rowwise() %>%
  mutate(all_color = list(c_across(Red:Yellow))) %>%
  ungroup()

原生R方案(无需加载依赖)

如果不想引入第三方包,可用矩阵拆分的方式实现:

df$RedBlue <- split(as.matrix(df[, c("Red", "Blue")]), seq(nrow(df)))

两种方案输出的df$RedBlue都是要求的列表格式,每一个元素是对应行的数值向量。

2. igraph绘制饼图顶点的标准实现

igraph原生支持pie类型的顶点形状,无需额外处理,直接把生成的向量列表赋值给顶点的pie属性即可:

library(igraph)
# 构造示例网络(可替换为你自己的网络对象)
g <- make_full_graph(nrow(df))
# 绑定顶点元数据
V(g)$name <- df$vName
V(g)$pie <- df$RedBlue
# 设置饼图各分段的对应颜色
V(g)$pie.color <- list(c("red", "blue"))
# 绘图
plot(g,
     vertex.shape = "pie",
     vertex.size = 30,
     vertex.label = V(g)$name,
     vertex.label.dist = 2)

如果需要绘制三色饼图,只需把V(g)$pie替换为三列合并的向量列表,同时pie.color对应传入三个颜色值即可。


内容的提问来源于stack exchange,提问作者charrlab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:06:04