首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在R中并发在多列中生成多个条形图

在R中并发在多列中生成多个条形图
EN

Stack Overflow用户
提问于 2019-11-02 23:05:38
回答 1查看 54关注 0票数 0

数据如下:

代码语言:javascript
复制
df<-read.table(text=" A1 A2 A3  M1 M2 M3 
F   M   F   A   B   A
M   M   F   A   B   A
F   M   F   A   B   A
F   M   F   C   B   A
F   M   F   C   B   A
M   M   F   C   C   B
F   M   F   C   C   B
M   F   F   C   C   B
F   F   F   D   C   B
M   F   F   D   C   B
F   F   F   D   A   B
F   F   F   D   A   C
F   F   F   D   A   C
M   F   F   D   A   C
F   M   M   B   A   D
F   M   M   B   A   D
F   M   M   B   D   D
M   M   M   B   D   D
F   M   M   B   D   D ", h=T)

我想要A1和M1,A2和M2,A3和M3。到目前为止,我已经尝试过:

代码语言:javascript
复制
library(purrr)
library(ggplot2)
map2(names(df)[4:6], names(df)[1:3], ~
ggplot(df, aes(x = !!rlang::sym(.x), y = !!rlang::sym(.y))) + 
geom_bar())

但是,我得到以下错误:

错误: stat_count()不能与y美学一起使用。

我努力改正错误。有什么帮助吗?

我想为每一个情节准备这个:

代码语言:javascript
复制
 ggplot(df, aes(x = A1, fill = M1)) +
 geom_bar(position = position_dodge())
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-03 00:33:44

结合工作示例和尝试的内容,您是否希望:

代码语言:javascript
复制
library(purrr)
library(ggplot2)

map2(names(df)[1:3], names(df)[4:6], ~
       ggplot(df, aes_string(x = .x, fill = .y)) + 
       geom_bar(position = position_dodge()))

看起来您希望fill用于列4-6 (M1、M2和M3),这是正确的吗?您不需要y in aes,只需要fill

另外,您可以使用aes_string而不是rlang::sym

最后,根据您的工作示例添加了position_dodge。如果这是你想要的,请告诉我。

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

https://stackoverflow.com/questions/58676035

复制
相关文章

相似问题

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