Диаграмма P ie с несколькими фиктивными переменными - PullRequest
0 голосов
/ 06 февраля 2020

Предположим, что есть 4 человека и 3 группы (A, B, C) и 1 означает, что он принадлежит группе X и 0 в другом случае. Предположим, у нас есть такая база данных:

# A  B  C
1 0  0  1
2 0  1  0
3 1  0  0
4 1  0  0

Я пытаюсь сделать диаграмму ap ie, содержащую каждую группу.

Код, который я пытаюсь сделать, -

ggplot(data, aes(x="", y=data$A)) +
  geom_bar(stat="identity", width=1) +
  coord_polar("y", start=0)

Однако он строит только график p ie для одной переменной. Спасибо

Ответы [ 2 ]

1 голос
/ 06 февраля 2020

Я думаю, что этот код выполняет сюжет, который вы хотите. Я сделал несколько перекодировок, используя pivot_longer перед построением графика.

library(tidyverse)
df %>%
  pivot_longer(cols = c(A,B,C),
               names_to = "group",
               values_to = "people") %>%
  group_by(group) %>%
  summarize(Sumppl = sum(people)) %>%
  ggplot(aes(x="", y = Sumppl, fill = group)) +
  geom_bar(stat = "identity",width = 1, position = "stack")+
  coord_polar("y") + 
  theme_minimal()+
  theme(axis.text.x=element_blank())

Pie plot

0 голосов
/ 06 февраля 2020

Я считаю, что вам нужно сначала повернуть df:

df  <- data.frame(ID = c(1, 2, 3, 4),  A = c(0, 0, 1, 1), B = c(0, 1, 0, 0), C = c(1, 0, 0, 0)) 

df  %>% 
      pivot_longer(2:4, names_to = "group", values_to = "value") %>% 
      ggplot(aes(x="", y=value, fill=group))+
      geom_bar(width = 1, stat = "identity")+
      coord_polar("y", start=0)
...