#r #pie-chart
#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() в последних двух строках.
Тогда мои круговые диаграммы выглядят так:
Одна маленькая и одна круговая диаграмма в виде пончика
Есть идеи, как создать две круговые диаграммы одинакового размера?
Комментарии:
1. Проблема в том, что вы отображаете Landkreis на x. Попробуйте
ggplot(aes(2, Value, fill = Type))
получить одинаковый размер иxlim(0.5, 2.5)
сделать его пончиком. Смотрите здесь
Ответ №1:
Я добился этого с помощью фиктивной переменной, которую я только что назвал «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()