Soru Ggplot2 içinde yatay Barplot


Ben yatay bir nokta arsa (?) Yapmak için çalışıyordum ggplot2ve beni yatay bir barplot oluşturmaya çalışmayı düşündü. Ancak, bunu yapabilmek için bazı sınırlamalar buluyorum.

İşte verilerim:

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)

İlk olarak, aşağıdaki kodu kullanarak bir nokta grafiği oluşturdum:

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))

Ancak, şimdi yatay bir barplot oluşturmaya ve bunu yapamayacağımı bulmaya çalışıyorum. denedim coord_flip() 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)) 

Yatay bir barplotun nasıl oluşturulacağı konusunda yardımcı olabilecek herkes ggplot2?


37
2018-06-07 23:25


Menşei




Cevaplar:


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

olmadan stat='identity' ggplot, verilerinizi sayımlarla birleştirmek istiyor.


89
2018-06-07 23:32



Her geom ggplot2’de varsayılan değer var stat. İçin geom_bar varsayılan stat bin, bu nedenle değiştirilmelidir identity Justin'in gösterdiği gibi. Depolamak için varsayılan diğer iki geoms freqpoly ve tabi ki histogram. - Pete