r - R中并排的两个饼图
问题描述
我需要两张饼图并排显示德国两个县的 Covid19 病例、治愈和死亡的百分比。一个县在左边,另一个在右边。
到目前为止,我的代码如下所示:
RKI_COVID19 %>%
group_by(Landkreis) %>%
summarise(fraction_active = (sum(AnzahlFall)-sum(AnzahlGenesen))/sum(AnzahlFall),
fraction_cured = sum(AnzahlGenesen)/sum(AnzahlFall),
fraction_death = sum(AnzahlTodesfall)/sum(AnzahlFall)) %>%
subset(Landkreis == "SK Wolfsburg" | Landkreis == "SK Münster") %>%
gather("Type", "Value", -Landkreis) %>% # convert to long format
ggplot(aes(Landkreis, Value, fill = Type)) +
geom_col(position = "dodge") +
geom_bar(stat = "identity", position = position_fill()) +
geom_text(aes(label = round(Value, 2)), size = 3, position = position_fill(vjust = 0.5)) +
facet_wrap(~Landkreis) +
coord_polar("y")
在子集()之后,我有我感兴趣的所有值:
Landkreis fraction_active fraction_cured fraction_death
<chr> <dbl> <dbl> <dbl>
1 SK Münster 0.108 0.892 0.0115
2 SK Wolfsburg 0.129 0.871 0.118
通过使用gather(),我将它们转换为长格式并创建两个并排的条形图。这很好用。
在最后两行中使用 facet_wrap() 和 coord_polar() 时会出现问题。
然后我的饼图如下所示:
任何想法如何创建两个相同大小的饼图?
解决方案
我已经用一个我刚刚命名为“n”的虚拟变量实现了这一点:
df = tribble(
~n, ~cat, ~act, ~cur, ~dea,
1, "A", 0.1, 0.8, 0.1,
1, "B", 0.05, 0.9, 0.05
) %>%
pivot_longer(cols = c(act,cur,dea))
ggplot(df, aes(n, value, fill = name)) +
geom_bar(stat = "identity", position = position_fill()) +
geom_text(aes(label = round(value, 2)), size = 3, position = position_fill(vjust = 0.5)) +
facet_wrap(~cat) +
coord_polar("y")
这给了我:
然后你可以使用删除“n”轴theme()
推荐阅读
- aws-lambda - 如何使用 AWS Lambda 解压缩和读取巨大的(1-10+ GB)压缩文件(gzip、zip、parquet)?
- javascript - 尝试从 localhost 获取 json 文件的数据时如何解决 CORS Origin 问题
- mysql - MYSQL 使用分组结果中的 AVG 值设置列值
- dhall - 解析路径类型
- c++ - 使用 sort() 对向量进行排序时,在极少数情况下返回进程 (0xc0000005)
- amazon-dynamodb - DynamoDB:获取与可能键之一匹配的所有项目
- docker - 在 jenkins pod 中执行 docker 和 kubectl 命令并支持持久卷
- c# - OpenTK (OpenGL) 如何正确使用 BufferSubData 和 DrawElements 与多个对象
- angular - Angular - 使用 jsonPath
- postgresql - PostgreSQL:如何将“PIVOT”从 T-SQL 转换为 PLPGSQL 过程