2015-04-23 13 views
5

Üç Ekseni, X Ekseni her değeri için üç çubuk çizmek için çizmem gerekiyor. Benim veriler şunlardır: X-ekseni ise My dataframe DFAynı X Ekseni Değeri için R'de birden çok sütun çizimi nasıl yapılır

"m" ve muhabir "x" arsa için gereken her "m" değeri için etiketli kolon olmalı, "y" ve "z" değeri.

Ben ggplot2 kullanmak istiyorum ve böyle bir şey gerekir: Ben göstermek için kendi veri kümesi oluşturdu

Goal

+0

bazı sağlayabilir Neyi başarmak istediğinizi göstermek için tekrarlanabilir veriler? – cdeterman

+0

Örnek giriş verileriyle birlikte bir [tekrarlanabilir örnek] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-rprorecible-example) ekleyin ve yazdığınız kodu gösterin. uzak. – MrFlick

+0

Üzgünüm, ilk başta yüklenmemiş, resimlerle ilgili bazı problemler var –

cevap

6

bunu nasıl:

veri:

x <- runif(12,1,1.5) 
y <- runif(12,1,1.5) 
z <- runif(12,1,1.5) 
m <- letters[1:12] 
df <- data.frame(x,y,z,m) 

Çözüm:

#first of all you need to melt your data.frame 
library(reshape2) 
#when you melt essentially you create only one column with the value 
#and one column with the variable i.e. your x,y,z 
df <- melt(df, id.vars='m') 

#ggplot it. x axis will be m, y will be the value and fill will be 
#essentially your x,y,z 
library(ggplot2) 
ggplot(df, aes(x=m, y=value, fill=variable)) + geom_bar(stat='identity') 

Çıktı:

enter image description here

İsterseniz çubukları tek yani geom_bar de dodge pozisyonunu belirtmek gerekir yan yana:

ggplot(df, aes(x=m, y=value, fill=variable)) + 
     geom_bar(stat='identity', position='dodge') 

enter image description here

+0

Gerçekten çok teşekkür ederim, çözümün beni kurtardı. Alfabetik sıralamayla görünmek için X Ekseni değerlerinin nasıl önleneceğini biliyor musunuz? –

+0

Rica ederim :) Yardım etmeliyim. Siparişi değiştirmekle ilgili çok iyi bir cevap var [burada] (http://stackoverflow.com/questions/3253641/how-to-change-the-order-of-a-discrete-x-scale-in-ggplot) (ikinci cevap, kabul edilen değil). Scale_x_discrete öğesini 'limitler 'argümanıyla kullanmanız gerekir. – LyzandeR

İlgili konular