Гистограмма с накоплением в R для прямой статистики - PullRequest
0 голосов
/ 17 июня 2020

Мой фрейм данных выглядит следующим образом:

team  played  wins  draws  losses  scored  conceded
 A       5      3     1       1       12       4
 B       7      3     3       1       16       8      
 C       3      0     1       2       2        14
 D       5      2     2       1       12       7

Я бы хотел, чтобы для каждой команды была сложена полоса с «победами» внизу, на которую накладывается «dr aws», на которой « убытки ». Как мне этого добиться? Это должно выглядеть так: enter image description here

Ответы [ 2 ]

2 голосов
/ 17 июня 2020

Вы можете использовать следующий код

library(tidyverse)

df <- read.table(text = "team  played  wins  draws  losses  scored  conceded
 A       5      3     1       1       12       4
 B       7      3     3       1       16       8      
 C       3      0     1       2       2        14
 D       5      2     2       1       12       7", header=T)

df %>% select(team,wins,draws,losses) %>% 
  pivot_longer(cols = -team) %>% 
  mutate(name = factor(name, levels = c("wins", "draws", "losses"))) %>% 
  ggplot(aes(x = team, y=value, fill = name)) + 
  geom_col(position = position_stack(reverse = TRUE)) + coord_flip()

enter image description here

1 голос
/ 17 июня 2020

Близко к тому, что вы хотите:

df <- tibble::tribble(
        ~team, ~played, ~wins, ~draws, ~losses, ~scored, ~conceded,
          "A",      5L,    3L,     1L,      1L,     12L,        4L,
          "B",      7L,    3L,     3L,      1L,     16L,        8L,
          "C",      3L,    0L,     1L,      2L,      2L,       14L,
          "D",      5L,    2L,     2L,      1L,     12L,        7L
        )

library(ggthemes)
df %>% 
  pivot_longer(wins:losses) %>% 
  mutate(name = factor(name, levels = c("wins", "draws", "losses"))) %>% 
  ggplot(aes(y = fct_reorder(team, -order(team)), x = value, fill = name)) +
  geom_col(position = position_stack(reverse = TRUE)) + 
  labs(y="team", x="") +
  theme_tufte() +
  theme(panel.grid.major.x = element_line(color = "black"),legend.position="top", legend.title = element_blank())

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...