Я пытаюсь нанести geom_bar на ggplot, но geom_bar имеет другой пример источника, и R выдает ошибку - PullRequest
0 голосов
/ 23 апреля 2020

Я хотел построить geom_bar на ggplot, который представляет среднее значение данных. Я взял данные для ggplot, которые меньше по размеру, чтобы не перегружать график, но хотел использовать большие данные для гистограммы, к сожалению, это мне не позволяет, потому что он говорит, что: Aesthetics must be either length 1 or the same as the data (2) Это странно, потому что кажется как будто выдает ошибку «aes (x = min, y = rating)», но когда я удаляю панель geom, все в порядке. У кого-нибудь есть идеи?

ggplot(random_scores, aes(x = win, y = ratings)) +
  geom_point() +
  geom_bar(data = avg_samples, stat = "identity", alpha = 0.4 )

Вот еще одна попытка:

ggplot(random_scores, aes(x = win, y = ratings)) +
  geom_point() +
  geom_bar(data = avg_samples, stat = "identity", alpha = 0.4, aes(x = win, y =ratings ))

1 Ответ

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

Я верю, что это то, чего вы хотите достичь. использовали известный iris набор данных. Если это то, что вы ищете, вы знаете, что дальше. просто измените df, имена полей.

iris %>% ggplot(aes(x = as.factor(Species), y = Petal.Length)) +
  geom_point() +
  geom_bar(stat = "summary", aes(fun = "mean"), alpha = 0.5)

Edit Даже предложенный подход работает для меня и дает тот же результат.

avg_length = iris %>% group_by(Species) %>% summarise(mean_len = mean(Petal.Length))

iris %>% ggplot(aes(x = as.factor(Species), y = Petal.Length)) +
  geom_point() +
  geom_bar(data = avg_length, aes(x = Species, y = mean_len), stat = "identity", alpha = 0.4)

output

enter image description here

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