如何解决如何在图中绘制带有两个因子变量和 % 的饼图
如何将此条形图转换为饼图?
这是我的条形图:
这是我用来制作条形图的代码:
dados_gráfico_distrito <- dados_desde_2015 %>%
filter(!is.na(qsd_distrito_nascimento_rec)) %>%
group_by(anoletivo_cat) %>%
count(anoletivo_cat,qsd_distrito_nascimento_rec) %>%
mutate(pct = n / sum(n),pct_label = scales::percent(pct,accuracy=1))
dados_gráfico_distrito$qsd_distrito_nascimento_rec <- factor(dados_gráfico_distrito$qsd_distrito_nascimento_rec,levels = c("Other","Porto","Braga"))
ggplot(dados_gráfico_distrito,aes(x= anoletivo_cat,fill = qsd_distrito_nascimento_rec,y = pct)) +
geom_bar(position = "fill",stat="identity",width = 0.5) +
geom_text(aes(label = paste(pct_label),y = pct),position = position_fill(vjust = 0.5),colour = "black",size = 3.2) +
scale_y_continuous(labels = scales::percent) +
labs(y = " ",x = " ",fill=" ") +
theme_void() + scale_fill_brewer(palette="Paired") +
theme(legend.text = element_text(size = 8,colour = "black")) +
theme(axis.text = element_text(size = 8,colour = "black")) +
theme(legend.position = "bottom",legend.direction = "horizontal") +
guides(fill = guide_legend(reverse=TRUE)) +
theme(plot.margin = unit(c(1,1,1),"cm")) +
theme(panel.grid = element_line(colour="grey90")) +
theme(panel.grid.minor.y = element_line(color = "white"),panel.grid.major.x = element_line(color = "white"))
当我尝试将其转换为饼图时,添加代码行 coord_polar ()
我得到以下图表:
这是我假装的:
谢谢!
解决方法
由于您没有提供示例数据,我使用了一些其他示例数据。也许这将满足您的需求。请根据需要进行修改。
library(ggrepel)
library (ggplot2)
df = read.csv("https://www.dropbox.com/s/lc3xyuvjjkyeacv/inputpie.csv?dl=1")
df <- df %>% group_by(fac) %>%
mutate(
facc = ifelse(fac=="f1","15/16 to 19/20","20/21"),cs = rev(cumsum(rev(per))),text_yp = per/2 + lead(cs,1),text_yp = if_else(is.na(text_yp),per/2,text_yp)
) %>% data.frame()
df$type <- factor(df$type,levels=unique(df$type))
ggplot(df,aes(x="",y=per,fill=type )) +
geom_bar(stat="identity",width=1) +
coord_polar("y",start=0) +
facet_grid(facc~. ) +
scale_fill_brewer(palette="Paired") +
theme_void() +
geom_label_repel(
aes(label = text_y,y = text_yp),show.legend = FALSE
) +
scale_y_continuous(labels = scales::percent) +
labs(y = " ",x = " ",fill=" ") +
theme(legend.text = element_text(size = 8,colour = "black")) +
#theme(axis.text = element_text(size = 8,colour = "black")) +
#theme(legend.position = "bottom",legend.direction = "horizontal") +
guides(fill = guide_legend(reverse=TRUE)) +
theme(plot.margin = unit(c(1,1,"cm")) +
theme(panel.grid = element_line(colour="grey90")) +
theme(panel.grid.minor.y = element_line(color = "white"),panel.grid.major.x = element_line(color = "white"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。