2010-06-30 26 views
6

Gerçek verilerin bir vektörüne bir sayım modeli yerleştirdim ve şimdi gerçek ve tahmin edilen bir gruplandırılmış (hareketli) çubuk grafik olarak tahmin etmek istiyorum. Bu bir sayım modeli olduğu için, veriler ayrıktır (X = 0'dan 317'ye kadar). Bir modeli taktığımdan beri, tahmin edilen değerler için önceden tablolanmış verilerim var. İşteggplot2 ve önceden tablolanmış verilerle birlikte gruplandırılmış çubuk grafik

benim orijinal veri çerçevesi görünür:

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 

Veri ggplot2 ile çizilebilir dönüştürülmüş:

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

Yani benim veri çerçevesi şimdi şöyle görünür:

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 

Grafik oluşturmaya çalıştığımda (yine de, gerçek ve tahmini sayıya sahip olmak isterim - zaten bu sekme ayrık gerçekleşme tarafından verilerinin--) 'de bun- ben bu komutu vermek:

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

Oysa istatistik parametre ggplot2 hoşuna gitmeyen gibi olacağım doğru çubuk yüksekliğini (alamadım olarak görünüyor "sayım" değişkeninin).

Herhangi bir fikrin var mı?

( )

cevap

7

stat_identity (sütun count) sütununu kullanıyorsanız, aes eşlemesinde y değerlerine ihtiyacınız vardır. Aşağıdaki deneyin:

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

veya

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

Evet, sadece eklemek '+ Büyük – rcs

+0

(xmin ve xmak'tan için uygun değerlere sahip) xlim (xmin, xmax)', çok teşekkür ederim! – Roberto

+0

@rcs: Bu cevap için teşekkürler. Yukarıdaki değişken notasyonunu kullanarak, çizdiğim veriler farklı sayıda “origin” değerine sahiptir. Bir "realizasyon" da sadece bir 'origin' değeri mevcut olduğunda, bir" yağ "çubuğu üretilir. İki "orijin" değeri mevcut olduğunda, iki daha dar çubuk üretilir, vb. Çubukların eşit genişlikte olmasını sağlamak için bir yol var mı? – SabreWolfy

İlgili konular