如何为 R 中的百分比数据框制作分面饼图?

How to make faceted pie charts for a dataframe of percentages in R?

我已经创建了一个融化的数据框,其中包含几年的能源百分比(因子变量)作为附加因子或日期的值:

如何使用 ggplot(或 plotrix)为不同年份制作漂亮的分面饼图?

到目前为止,我已经达到:

ggplot(melted_df, aes(x=Year, y=Share, fill=Source)) +
  geom_bar(stat="identity", width=1)+
  coord_polar("y", start=0) +
  geom_text(aes(label = paste0(round(Share*100), "%")), position = position_stack(vjust = 0.5),size=3)+
  labs(x = NULL, y = NULL, fill = NULL, title = "Energy Mix")+
  theme_classic() + theme(axis.line = element_blank(),
          axis.text = element_blank(),
          axis.ticks = element_blank(),
          plot.title = element_text(hjust = 0.5, color = "#666666"))

在没有 facet 命令的情况下给出了这个,这在美学上并不令人愉快:

而如果我添加 facet_wrap(~Year) 命令,情况会变得更糟...

经过评论者的建议,ggplot() 行中的 aes(x=1) 解决了问题并制作了正常的圆形平行饼图:

ggplot(melted_df, aes(x=1, y=Share, fill=Source)) +
  geom_col(width=1,position="fill", color = "black")+
  coord_polar("y", start=0) +
  geom_text(aes(x = 1.7, label = paste0(round(Share*100), "%")), size=2, 
            position = position_stack(vjust = 0.5))+
  labs(x = NULL, y = NULL, fill = NULL, title = "Energy Mix")+
  theme_classic() + theme(axis.line = element_blank(),
                          axis.text = element_blank(),
                          axis.ticks = element_blank(),
                          plot.title = element_text(hjust = 0.5, color = "#666666"))+
  facet_wrap(~Year)