2012-06-07 36 views
31

ggplot2'da yatay nokta çizimini (?) Yapmak için çalışıyordum ve beni yatay bir barplot oluşturmaya çalışmamı sağladı. Ancak, bunu yapabilmek için bazı sınırlamalar buluyorum. , Şimdi yatay barplot oluşturmak çalışıyorum Ancakggplot2 içinde Yatay Barplot

require(ggplot2) 
ggplot(df, aes(x=Avg_Cost, y=reorder(Seller,Num))) + 
    geom_point(colour="black",fill="lightgreen") + 
    opts(title="Avg Cost") + 
    ylab("Region") + xlab("") + ylab("") + xlim(c(0,7)) + 
    opts(plot.title = theme_text(face = "bold", size=15)) + 
    opts(axis.text.y = theme_text(family = "sans", face = "bold", size = 12)) + 
    opts(axis.text.x = theme_text(family = "sans", face = "bold", size = 12)) 

ve bu I bulma: Aşağıdaki kodu kullanarak bir nokta çizgi üretti, Başlangıçta

df <- data.frame(Seller=c("Ad","Rt","Ra","Mo","Ao","Do"), 
       Avg_Cost=c(5.30,3.72,2.91,2.64,1.17,1.10), Num=c(6:1)) 
df 
str(df) 

: Burada

verilerim bunu yapamam. Ben coord_flip() denedim ve bu da yararlı değildi.

ggplot(df, aes(x=Avg_Cost, y=reorder(Seller,Num))) + 
    geom_bar(colour="black",fill="lightgreen") + 
    opts(title="Avg Cost") + 
    ylab("Region") + xlab("") + ylab("") + xlim(c(0,7)) + 
    opts(plot.title = theme_text(face = "bold", size=15)) + 
    opts(axis.text.y = theme_text(family = "sans", face = "bold", size = 12)) + 
    opts(axis.text.x = theme_text(family = "sans", face = "bold", size = 12)) 

kimse ggplot2 yatay barplot üretmek için bazı yardımcı olabilir mi? stat='identity' ggplot olmadan

cevap

80
ggplot(df, aes(x=reorder(Seller, Num), y=Avg_Cost)) + 
    geom_bar(stat='identity') + 
    coord_flip() 

sayıları içine Verileri toplamak istiyor.

+1

ggplot2'deki her "geom" öğesinin bir varsayılan "statü" vardır. Geom_bar için varsayılan stat 'bin ', bu yüzden Justin'in gösterdiği gibi" kimlik "olarak değiştirilmelidir. Binmeye varsayılan diğer iki jeom, "freqpoly" ve elbette "histogram" dır. – Pete