我将计数模型拟合到实际数据的矢量,现在想要将实际和预测绘制为分组(躲闪)条形图。由于这是计数模型,因此数据是离散的(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")
然而,似乎ggplot2不喜欢stat参数,因为我没有得到正确的条形高度(这将是变量“count”的条形高度)。
有什么想法吗?
谢谢,
罗伯特。
答案 0 :(得分:7)
如果您使用aes
(列stat_identity
),则需要count
映射中的y值。请尝试以下方法:
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")