2017-09-18 4 views
0

Utilisez un ensemble de données de jouet pour créer un simple graphique à barres à facettes en utilisant package ggplot2:R: ggplot2 - empilage et esquivant sous forme de graphiques à barres

library(ggplot2) 
library(reshape2) # to convert to long format 

databas<-read.csv(data= 
        "continent,apples,bananas 
        North America,30,20 
        South America,15,34.5 
        Europe,15,19 
        Africa,5,35") 

databaslong<-melt(databas) 

# plotting as colored bars 
ggplot(databaslong, aes(x=variable, y=value, fill=variable))+ 
    geom_col()+ 
    facet_grid(.~continent) 

et obtenir les éléments suivants:

simple bar plot with facets

Comment mettre des pommes sur des bananes (ou vice versa)? Pourquoi la directive position="stack" (ou position="dodge") n'a aucun effet ici dans geom_col() ou ailleurs? (Les facettes viennent toujours avec des barres esquivé)

Répondre

3

Vous avez spécifié x=variable dans votre cartographie esthétique, de sorte que chaque valeur dans la variable (ie. Les pommes & bananes) obtient sa propre position le long de l'axe x, et il n'y a rien à pile.

Si vous voulez des pommes & bananes à être empilées pour chaque continent, vous pouvez spécifier x=continent à la place:

ggplot(databaslong, 
     aes(x = continent, y = value, fill = variable)) + 
    geom_col() 

enter image description here