首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R:可视化“链接”数据

R:可视化“链接”数据
EN

Stack Overflow用户
提问于 2021-07-09 00:06:02
回答 1查看 97关注 0票数 0

我正在使用R,并试图重新创建这样的图片:

我做了一些研究,发现R中的"ggforce“库(https://ggforce.data-imaginist.com/reference/geom_parallel_sets.html)允许用户制作类似的情节(使用”名“、”中间名“和”姓“的情节-这些情节表明”名字“确实很常见,”名和中间名“不太常见,而”名字、中间名和姓“则不那么常见):

代码语言:javascript
运行
复制
library(ggforce)
library(reshape2)

 name_data <- data.frame(
    
    "First_Name" = c("John", "John", "John", "John", "John", "John", "James", "James", "Adam", "Adam", "Henry"),
    "Middle_Name" = c("Claude", "Claude", "Claude", "Smith", "Smith", "Peters", "Stevens", "Stevens", "Ford", "Tom", "Frank"),
    "Last Name " = c("Tony", "Tony", "Frank", "Carson", "Phil", "Lewis", "Eric", "David", "Roberts", "Scott", "Xavier")
)

name_data$ID <- seq.int(nrow(name_data))
 
data <- reshape2::melt(name_data)
data <- gather_set_data(name_data)

ggplot(name_data, aes( id = value, split = First_Name, value = value)) +
  geom_parallel_sets(aes( alpha = 0.3, axis.width = 0.1) +
  geom_parallel_sets_axes(axis.width = 0.1) +
  geom_parallel_sets_labels(colour = 'white'))

但这将返回以下错误:

代码语言:javascript
运行
复制
Error in FUN(X[[i]], ...) : object 'x' not found

有人能告诉我我做错了什么吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-09 00:26:24

ggplot函数中的第一个参数是x轴变量.在您提供的示例中,是x=survived (可能是在示例前面设置的)。您需要指定一个x轴变量,在这种情况下可能是x=City?即尝试:

代码语言:javascript
运行
复制
ggplot(name_data, aes(x=City, id=ID, ...

编辑: OK,看起来您首先需要有一个不同名称组合的计数(这个值列在泰坦尼克数据示例中已经存在)。您可以使用aggregate函数来完成这一任务:

代码语言:javascript
运行
复制
name_counts=aggregate(name_data$ID,
                      by=list(First_Name=name_data$First_Name,
                              Middle_Name=name_data$Middle_Name,
                              Last_Name=name_data$Last.Name.),
                      FUN=length)
names(name_counts)[4] = 'value'

这给出了每个组合的名字,中间和姓氏的计数。此时,运行gather_set_data函数:

代码语言:javascript
运行
复制
name_counts_gathered = gather_set_data(name_counts, 1:3)

现在,您可以使用ggplotgeom_parallel_sets绘制

代码语言:javascript
运行
复制
ggplot(name_counts_gathered) +
    geom_parallel_sets(aes(x=x,id=id,split=y,value=value))

gather_set_data函数按照绘图函数的要求添加id、x和y列。

我不太确定你想要怎样的情节,但希望你现在可以玩绘图标签和选项。

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

https://stackoverflow.com/questions/68309839

复制
相关文章

相似问题

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