如何使用拆分条件创建两个饼图?

How to create two pie charts using a split condition?

我有这个示例数据集:

   sex  Country
1   M   Austria
2   F   Germany
3   F   Portugal
4   M   Portugal
5   F   France
6   M   Germany

我想创建一个饼图,但要根据性别分离和添加数据。也就是说,我期望的结果等同于如果我想在 ggplot 的 geom_bar 中用同一个变量将它们分开。在同一可视化中,但分开

从 R base 我不知道是否有任何方法可以在相同的方法中做到这一点,或者我必须将之前在两个表中的数据分开并分别表示它们

我知道使用饼图不是表示数据的最佳方式,但我需要针对特定​​请求这样做

相同过程的示例,但作为 geom_bar

Same dataframe, but separate viz for the sex variable (colors means different countries)

基数 R:

old <- par(mfrow=c(1,2))

pie(table(df$Country[df$sex == "M"]))
pie(table(df$Country[df$sex == "F"]))

par(old) # reset par


使用 ggplot2:

library(ggplot2)

ggplot(as.data.frame(table(df)),
       aes(x = "", y = Freq, fill = Country)) +
 geom_bar(stat = "identity", position = "fill") +
 facet_grid(cols = vars(sex)) +
 coord_polar("y", start = 0) +
 theme_void()


其中 df 是:

df <- read.table(text = "   sex  Country
1   M   Austria
2   F   Germany
3   F   Portugal
4   M   Portugal
5   F   France
6   M   Germany", header = TRUE)