如何使用拆分条件创建两个饼图?
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)
我有这个示例数据集:
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)