web-dev-qa-db-fra.com

Barplot Horizontal dans ggplot2

Je travaillais sur un tracé de points horizontal (?) Dans ggplot2, Et cela m'a fait penser à essayer de créer un diagramme à barres horizontal. Cependant, je trouve certaines limites à pouvoir le faire.

Voici mes données:

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)

Au départ, j'ai généré un diagramme de points à l'aide du code suivant:

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

Cependant, j'essaie maintenant de créer un diagramme à barres horizontal et découvre que je suis incapable de le faire. J'ai essayé coord_flip() et cela n'a pas été utile non plus.

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

Quelqu'un peut-il fournir une assistance sur la façon de générer un diagramme à barres horizontal dans ggplot2?

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

Sans pour autant stat='identity' _ ggplot veut agréger vos données en nombres.

112
Justin