2017-01-25 4 views
0

Ich erstellte ein Balkendiagramm in ggplot, um zu zeigen, wie sich die Anzahl in Spalte scheme im Laufe der Zeit (d. H. Von 2001 bis 2016) geändert hat.Verschiebbare Balken in ggplot

Die x-Achse ist die , die y-Achse zeigt die Frequenzen (ich habe die fill= verwendet), um die Anzahl zu erhalten.

Der Datensatz besteht aus zwei Säulen (year und scheme) mit Zeichenwerten gefüllt:

year scheme 

2016 yes 
2016 yes 
2016 yes 
2016 yes 
2015 yes 
2015 yes 
2014 yes 
2013 yes 
.... 
2006 no 
2006 no 
2006 no 
2006 no 
2005 no 
2005 no 
2004 no 
2003 no 
2002 no 
2002 no 
2001 no 
2001 no 

My Code:

a <- ggplot(s) + 
    stat_bin(aes(x=year, fill=scheme, group=scheme), geom="bar", position = "dodge",bins=30) 
b <- a + scale_x_continuous(breaks = c(2001:2016), labels = factor(2001:2016)) 
c <- b + theme(axis.text.x=element_text(size = 10, colour = "black")) 

Der Graph:

The bar graph in ggplot

Das Problem, das ich habe, ist th an den Balken sind ohne Grund in der Grafik verschoben. Sie erkennen es an der X-Achse und dem Label. Die Balken werden zu stark nach links (z. B. 2007) oder nach rechts (2002) verschoben.

Ich habe keine Ahnung, warum es passiert ist und wie kann ich es beheben? Jede Art von Vorschlägen ist sehr willkommen.

+0

Ich denke scale_x_continuous verursacht das Problem. Würdest du versuchen, das zu entfernen und dann die Ästhetik auf "x = Faktor (Jahr)" zu ändern? Alternativ könnten Sie versuchen, die Skala auf ein Datum mit der Option scale_x_date zu setzen - "scale_x_date (format ="% Y ")" könnte funktionieren. –

Antwort

2

Verwenden Sie binwidth = 1 anstelle von bins = 30. Wenn Sie angeben, dass 30 Bins vorhanden sein sollen, müssen Sie die Jahre in die Segmente aufteilen, deren Endpunkte sequenzielle Werte in seq(2001, 2016, length.out = 30) sind.

All die seltsamen Lücken sind von den Bins, die keine ganze Zahl enthalten.

+0

Vielen Dank. Ich habe nur "bins = 30" zu "binwidth = 0.5" geändert und es sieht genau so aus, wie ich es haben möchte. – user3832272

Verwandte Themen