Сюжет для скрипки по годам - PullRequest
0 голосов
/ 02 апреля 2020

Сегодня мне не повезло с geom_violin в ggplot. Любая помощь?

У меня есть 10 лет времени в местной гонке. Я хочу построить график спреда только из 10 лучших за каждый год. Пример: 2018: 14: 51-17: 29, 2017: 15: 03-18: 22 et c

Каждый раз, когда я запускаю код, он дает мне распределение топ-10 за 10 лет (100 точек данных) вместо каждого года (10 точек данных в год).

Код:

violin <- 5kAthletes %>%
  filter(Category=="Top10")

(^^^, который правильно связывает его для меня ^^^

vplot<-violin %>%
  ggplot(aes(x=Year, y=Minutes, fill=Year)) +
  geom_violin() +
  xlab("Year") +
  theme(legend.position = "none") +
  xlab("")  
vplot

1 Ответ

0 голосов
/ 02 апреля 2020

Вы должны добавить group = Year к эстетике, то есть ggplot(aes(x=Year, y=Minutes, fill=Year, group = Year)). Использование набора данных gapminder в качестве примера данных:

library(ggplot2)
library(dplyr)
library(gapminder)

df <- gapminder::gapminder %>% 
  group_by(year) %>% 
  top_n(10, lifeExp)

vplot <- df %>%
  ggplot(aes(x=year, y=lifeExp, fill=year, group = year)) +
  geom_violin() +
  xlab("Year") +
  theme(legend.position = "none") +
  xlab("")  
vplot

Создано в 2020-04-02 пакетом Представить (v0 .3.0)

...