2016-04-04 8 views
0

Ich versuche, einen Barplot mit ggplot2 zu produzieren. Ich kam auf das Problem, dass der Rand meines Diagramms nach rechts geht, sogar die Grenze der X-Achsen wurde von scale_x_discrete festgelegt. Wie kann ich den Diagrammrahmen begrenzen, um mit der Tafel im Dezember zu enden? HierBegrenzen Sie den Rahmen eines Barplots in ggplot2

ist der Code:

mean<-c(36.7, 17.3, 25.6, 41.5, 135.9, 203.9, 289.5, 277.8, 163.2, 67.4, 45, 44) 
month<-c(1,2,3,4,5,6,7,8,9,10,11,12) 
mean_CH<-data.frame(month, mean) 


p<-ggplot(data=mean_CH, aes(x=month, y=mean)) + geom_bar(stat="identity", fill="light blue") + 
    ylab(expression(atop(paste("XXX "),paste("(XX"," ", XX^-1, " ", X^-1, " ", XX^-1,")", sep=""))))+ 
    scale_x_discrete(breaks=c("1","2","3","4","5","6","7","8","9","10","11", "12"), 
    labels=c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"))+ 
    ggtitle("XXX")+ 
    theme_bw() 

Hier ist mein Ergebnis: enter image description here

+1

Versuchen Sie 'x = Faktor (Monat)' innerhalb der 'aes()'. – mtoto

+0

hat funktioniert! Vielen Dank für diese schnelle Lösung! Sie können dies als Antwort hinzufügen! – xmisx

+1

Sie können übrigens 'breaks = as.character (1:12)' und 'labels = month.abb' verwenden. – Axeman

Antwort

2

In Ihren Daten month ist immer noch eine numerische Variable, die die Fehlausrichtung verursacht, weil scale_x_discrete() definitions diskrete Werte erwartet auf die X-Achse. Wir können dies beheben, indem wir month innerhalb der aes() faktorisieren.

ggplot(data = mean_CH, aes(x = factor(month), y = mean)) + ... 
Verwandte Themen