Сгруппированная гистограмма с ggplot2 и уже табулированными данными - PullRequest
6 голосов
/ 01 июля 2010

Я подгоняю модель подсчета к вектору фактических данных и теперь хотел бы построить фактическую и прогнозируемую сгруппированные (уклоненные) гистограммы.Поскольку это модель подсчета, данные являются дискретными (X = x от 0 до 317).Поскольку я подгоняю модель, у меня есть только табличные данные для прогнозируемых значений.

Вот как выглядит мой исходный фрейм данных:

  actual predicted
1   3236 3570.4995
2   1968 1137.1202
3    707  641.8186
4    302  414.8763
5    185  285.1854
6    104  203.0502

Я преобразовал данные, которые должны быть нанесены на графикс ggplot2:

melted.data <- melt(plot.data)
melted.data$realization <- c(rep(0:317, times=2))
colnames(melted.data)=c('origin','count','realization')

Так что мой фрейм данных теперь выглядит так:

head(melted.data)
  origin count realization
1 actual  3236           0
2 actual  1968           1
3 actual   707           2
4 actual   302           3
5 actual   185           4
6 actual   104           5
> tail(melted.data)
       origin        count realization
631 predicted 1.564673e-27         312
632 predicted 1.265509e-27         313
633 predicted 1.023552e-27         314
634 predicted 8.278601e-28         315
635 predicted 6.695866e-28         316
636 predicted 5.415757e-28         317

Когда я пытаюсь построить его график (опять же, я хотел бы получить фактическое и прогнозируемоепосчитать - что уже занесено в таблицу - дискретной реализацией), я даю эту команду:

ggplot(melted.data, stat="identity", aes(x=realization, fill=origin)) + geom_bar(position="dodge")

Все же кажется, что параметр stat не нравится ggplot2, так как я не получаюправильная высота стержня (которая будет соответствовать переменной «count»).

Есть идеи?

Спасибо,

Роберто.

1 Ответ

7 голосов
/ 01 июля 2010

Вам нужно y-значения в отображении aes, если вы используете stat_identity (столбец count). Попробуйте следующее:

ggplot(melted.data, aes(x=realization, y=count, fill=origin)) + 
       stat_identity(position="dodge", geom="bar")

или

ggplot(melted.data, aes(x=realization, y=count, fill=origin)) + 
       geom_bar(position="dodge", stat="identity")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...