Данные
test <- data.frame(pass_location=c('middle','left','right'), Air_Epa_Play=c(0.263,0.086,0.082), YAC_Epa_Play=c(0.434,0.439,0.442), Total_Completed=c(0.697,0.525,0.524))
pass_location Air_Epa_Play YAC_Epa_Play Total_Completed
1 middle 0.263 0.434 0.697
2 left 0.086 0.439 0.525
3 right 0.082 0.442 0.524
Вы можете игнорировать столбец Total_Completed
- select(-Total_Completed)
. ggplot
выполняет суммирование / суммирование для вас, поэтому вам не нужно вычислять сумму самостоятельно. Однако ggplot
также нравится данные в длинном формате (а не в широком формате), поэтому вам нужно gather()
соответствующие значения (по оси Y) в одном столбце. Обратите внимание, я использую gather(..., -pass_location)
, чтобы игнорировать столбец группировки. Попробуйте следующее с и без fill=var
. Как только вы увидите, что ggplot
любит данные в длинном формате, его использование становится более интуитивно понятным, по крайней мере, для меня.
library(tidyverse)
test %>%
select(-Total_Completed) %>%
gather(var, value, -pass_location) %>%
ggplot(., aes(x=pass_location, y=value, fill=var)) +
geom_col()