R ggplot一个变量的几何坐标图比例
我有一个数据帧:R ggplot一个变量的几何坐标图比例,r,ggplot2,R,Ggplot2,我有一个数据帧: df_silencer <- data.frame( group = c("inside_boundaries", "outside_boundaries","inside_boundaries", "outside_boundaries","inside_boundaries", "outside_boundaries","inside_
df_silencer <- data.frame(
group = c("inside_boundaries", "outside_boundaries","inside_boundaries", "outside_boundaries","inside_boundaries", "outside_boundaries","inside_boundaries", "outside_boundaries","inside_boundaries", "outside_boundaries"),
value = c(18, 408,43,850,36,594,118,1831,1232,22765),
cond = c('pef1a','pef1a','ppgk','ppgk','prag2','prag2','pscp1','pscp1','DHS','DHS')
)
谢谢你这就是你要找的吗
df_silencer %>%
group_by(cond) %>%
mutate(pct = value/sum(value)) %>%
filter(group == "inside_boundaries") %>%
ggplot(aes(x = cond,y = pct,color=cond, fill=cond)) +
geom_bar(stat="identity") +
scale_color_manual(name="Condition",breaks = c("pef1a", "ppgk", "prag2","pscp1",'DHS'),
values=c("#FFCC33", "#339900", "#FF3333","#3333FF","black"))+
scale_fill_manual(name="Condition",breaks = c("pef1a", "ppgk", "prag2","pscp1",'DHS'),
values=c("#FFCC33", "#339900", "#FF3333","#3333FF","black"))+
scale_x_discrete(limits=c("DHS","pscp1", "ppgk", "pef1a","prag2"))+
scale_y_continuous(labels=scales::label_percent(accuracy=1))+
theme_classic()+
theme(text = element_text(size=6),axis.title.x = element_blank())+
guides(color=F, fill=F)+
labs(y="% inside vs outside boundaries" )
编辑:在条形图上添加百分比数字
这就是你要找的吗
df_silencer %>%
group_by(cond) %>%
mutate(pct = value/sum(value)) %>%
filter(group == "inside_boundaries") %>%
ggplot(aes(x = cond,y = pct,color=cond, fill=cond)) +
geom_bar(stat="identity") +
scale_color_manual(name="Condition",breaks = c("pef1a", "ppgk", "prag2","pscp1",'DHS'),
values=c("#FFCC33", "#339900", "#FF3333","#3333FF","black"))+
scale_fill_manual(name="Condition",breaks = c("pef1a", "ppgk", "prag2","pscp1",'DHS'),
values=c("#FFCC33", "#339900", "#FF3333","#3333FF","black"))+
scale_x_discrete(limits=c("DHS","pscp1", "ppgk", "pef1a","prag2"))+
scale_y_continuous(labels=scales::label_percent(accuracy=1))+
theme_classic()+
theme(text = element_text(size=6),axis.title.x = element_blank())+
guides(color=F, fill=F)+
labs(y="% inside vs outside boundaries" )
编辑:在条形图上添加百分比数字
如何在绘图上添加百分比标签?谢谢你的意思是在y轴上,还是想把它们添加到其他地方。如果在y轴上,则应这样做:
scale\u y\u continuous(labels=scales::label\u percent(accurity=1))
例如,在条形图上打印百分比。ThanksI在答案中添加了这个。ThanksI它是完美的。我如何在绘图上添加百分比标签?谢谢你的意思是在y轴上,还是想把它们添加到其他地方。如果在y轴上,则应这样做:scale\u y\u continuous(labels=scales::label\u percent(accurity=1))
例如,在条形图上打印百分比。谢谢,我在答案中加了这个。谢谢,太完美了
df_silencer %>%
group_by(cond) %>%
mutate(pct = value/sum(value)) %>%
filter(group == "inside_boundaries") %>%
ggplot(aes(x = cond,y = pct,color=cond, fill=cond)) +
geom_bar(stat="identity") +
geom_text(aes(label=sprintf("%.1f%%", pct*100)), position=position_nudge(y=.0015)) +
scale_color_manual(name="Condition",breaks = c("pef1a", "ppgk", "prag2","pscp1",'DHS'),
values=c("#FFCC33", "#339900", "#FF3333","#3333FF","black"))+
scale_fill_manual(name="Condition",breaks = c("pef1a", "ppgk", "prag2","pscp1",'DHS'),
values=c("#FFCC33", "#339900", "#FF3333","#3333FF","black"))+
scale_x_discrete(limits=c("DHS","pscp1", "ppgk", "pef1a","prag2"))+
scale_y_continuous(labels=scales::label_percent(accuracy=1))+
theme_classic()+
theme(text = element_text(size=6),axis.title.x = element_blank())+
guides(color=F, fill=F)+
labs(y="% inside vs outside boundaries" )