R:ggplot两组的条形图

R:ggplot两组的条形图,r,ggplot2,visualization,data-visualization,R,Ggplot2,Visualization,Data Visualization,我有两个数据框(每种性别一个)关于他们回答3个问题的比例 > dput(df_male) structure(list(Question = structure(c(1L, 2L, 3L, 1L, 2L, 3L), .Label = c("Q1", "Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8"), class = "factor"), Response = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label

我有两个数据框(每种性别一个)关于他们回答3个问题的比例

> dput(df_male)
structure(list(Question = structure(c(1L, 2L, 3L, 1L, 2L, 3L), .Label = c("Q1", 
"Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8"), class = "factor"), 
    Response = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("No", 
    "Yes"), class = "factor"), Proportion = c(0.569230769230769, 
    0.569230769230769, 0.492307692307692, 0.430769230769231, 
    0.430769230769231, 0.507692307692308)), .Names = c("Question", 
"Response", "Proportion"), row.names = c(1L, 2L, 3L, 9L, 10L, 
11L), class = "data.frame")

> dput(df_female)
structure(list(Question = structure(c(1L, 2L, 3L, 1L, 2L, 3L), .Label = c("Q1", 
"Q2", "Q3", "Q4", "Q5", "Q6", "Q7", "Q8"), class = "factor"), 
    Response = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("No", 
    "Yes"), class = "factor"), Proportion = c(0.603092783505155, 
    0.65979381443299, 0.54639175257732, 0.396907216494845, 0.34020618556701, 
    0.45360824742268)), .Names = c("Question", "Response", "Proportion"
), row.names = c(1L, 2L, 3L, 9L, 10L, 11L), class = "data.frame")
我想将其可视化,所以我使用ggplot分段条形图

> df_male
   Question Response Proportion
1        Q1       No  0.5692308
2        Q2       No  0.5692308
3        Q3       No  0.4923077
9        Q1      Yes  0.4307692
10       Q2      Yes  0.4307692
11       Q3      Yes  0.5076923
> df_female
   Question Response Proportion
1        Q1       No  0.6030928
2        Q2       No  0.6597938
3        Q3       No  0.5463918
9        Q1      Yes  0.3969072
10       Q2      Yes  0.3402062
11       Q3      Yes  0.4536082


这是一种将两个图合并为一个图的方法吗?i、 e.我想找到一种方法,将同一情节中两个不同组的这3个问题的比例形象化

如何将数据叠加在一起,并使用
性别
问题
之间的
交互
作为x轴

ggplot(df_male, aes(x = Question, y = Proportion)) +
  geom_bar(aes(fill = Response), stat = "identity") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.25)) +   # Rotate tick mark labels
  guides(fill = guide_legend(reverse = TRUE)) + ggtitle("Male") + theme(plot.title = element_text(hjust=0.5))

ggplot(df_female, aes(x = Question, y = Proportion)) +
  geom_bar(aes(fill = Response), stat = "identity") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.25)) +   # Rotate tick mark labels
  guides(fill = guide_legend(reverse = TRUE)) + ggtitle("Female") + theme(plot.title = element_text(hjust=0.5))

将数据堆叠在一起,并使用
性别
问题
之间的
交互
作为x轴如何

ggplot(df_male, aes(x = Question, y = Proportion)) +
  geom_bar(aes(fill = Response), stat = "identity") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.25)) +   # Rotate tick mark labels
  guides(fill = guide_legend(reverse = TRUE)) + ggtitle("Male") + theme(plot.title = element_text(hjust=0.5))

ggplot(df_female, aes(x = Question, y = Proportion)) +
  geom_bar(aes(fill = Response), stat = "identity") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.25)) +   # Rotate tick mark labels
  guides(fill = guide_legend(reverse = TRUE)) + ggtitle("Female") + theme(plot.title = element_text(hjust=0.5))

将数据与识别变量和方面结合起来:

ggplot(df, aes(x =gender, y = Proportion)) +
  geom_bar(aes(fill = Response), stat = "identity") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.25)) +   # Rotate tick mark labels
  guides(fill = guide_legend(reverse = TRUE)) + ggtitle("Male vs. Female") + theme(plot.title = element_text(hjust=0.5)) + 
  facet_wrap(~Question)


根据需要编辑外观。如果您喜欢垂直布局,请在
facet\u wrap
中设置
ncol=1
,将数据与识别变量和facet组合:

ggplot(df, aes(x =gender, y = Proportion)) +
  geom_bar(aes(fill = Response), stat = "identity") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.25)) +   # Rotate tick mark labels
  guides(fill = guide_legend(reverse = TRUE)) + ggtitle("Male vs. Female") + theme(plot.title = element_text(hjust=0.5)) + 
  facet_wrap(~Question)

根据需要编辑外观。如果您喜欢垂直布局,请在
facet\u wrap
中设置
ncol=1