Как запретить ответы на сюжеты по категориям в ggplot? - PullRequest
0 голосов
/ 20 мая 2019

У меня есть тиббл, созданный так:

tibble(district = c(1, 5, 3, 5, 2, 7, 8, 1, 1, 2, 2, 4, 5, 6, 8, 6, 3),
       housing = c(1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 3, 2, 1, 1, 1, 3, 2))

Теперь я хотел бы узнать, как распределяется тип жилья по районам.Поскольку количество респондентов по районам разное, я бы хотел работать с процентами.В основном я ищу два графика:

1) Один график, на котором процент категорий жилья отображается в 1 баре на район (так как это проценты, все столбцы будут одинаковой высоты).2) Круговая диаграмма для каждого района с процентным соотношением категорий жилья для этого конкретного района.

Однако я не могу сгруппировать данные желаемым способом, позволяя вычислять их процентные доли.Как сделать эти сюжеты?

Спасибо, вперед!

1 Ответ

1 голос
/ 20 мая 2019

Дайте этому шанс:

library(tidyverse)
library(ggplot2)

# original data
df <- data.frame(district = c(1, 5, 3, 5, 2, 7, 8, 1, 1, 2, 2, 4, 5, 6, 8, 6, 3),
                 housing = c(1, 1, 2, 1, 2, 2, 2, 1, 1, 2, 3, 2, 1, 1, 1, 3, 2))

# group by district
df <- df %>%
  group_by(district) %>%
  summarise(housing=sum(housing))

# make percentages
df <- df %>%
  mutate(housing_percentage=housing/sum(df$housing)) %>%
  mutate(district=as.character(district)) %>%
  mutate(housing_percentage=round(housing_percentage,2))

# bar graph
ggplot(data=df) +
  geom_col(aes(x=district, y=housing_percentage))

# pie chart
ggplot(data=df, aes(x='',y=housing_percentage, fill=district)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  coord_polar("y", start = 0) +
  theme_void()

Что дает следующие участки:

bar_plot

pie_chart

...