如何解决如何绘制具有4列的数据框,需要将顶部划分为R中的2个?
我的数据看起来像
Fem_Applied <- c(10,15,10)
Fem_Success <- c(3,5,2)
Mal_Applied <- c(20,20)
Mal_Success <- c(4,3,3)
Role <- c("A","B","C")
df <- data.frame(Role,Fem_Applied,Fem_Success,Mal_Applied,Mal_Success)
虽然我可以默认使用melt(df)和角色作为ID变量来绘制它,但最终得到了4列。我要的是两列,一列红色代表女性,一列蓝色代表男性。并且应用程序堆叠在成功的顶部,应用的alpha值较低
解决方法
听起来您正在寻找这样的东西:
library(tidyr)
library(reshape2)
library(ggplot2)
library(dplyr)
separate(melt(df),"variable",into = c("Gender","Result"),sep = "_") %>%
mutate(fillcat = paste(Gender,Result)) %>%
ggplot(aes(Gender,value,fill = fillcat)) +
geom_col(aes(group = Result)) +
scale_fill_manual(values = c("#FF3456","#FF345680","#3456FF","#3456FF80")) +
facet_grid(~Role,switch = "x") +
labs(x = "Role",y = "Count") +
theme_classic() +
theme(panel.spacing = unit(0,"points"),legend.position = "none",strip.placement = "outside",strip.background = element_blank())
,
您可以使用类似以下的内容
library(tidyverse)
df %>%
pivot_longer(cols = -Role) %>%
separate(name,c("Gender","b"),convert = T) %>%
ggplot(aes(x = Gender,y = value,fill = b)) +
geom_col()
可以使用角色明智的情节
df %>%
pivot_longer(cols = -Role) %>%
separate(name,fill = b)) +
geom_col() + facet_wrap(Role~.)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。