2016-06-15 9 views
2

Ich habe eine jährliche X-Achse 1998-2014. Wie man auf dem Bild sehen kann, jedes Jahr vor ist ein ‚X‘Seltsames "X" vor jedem x-Achsen-Etikett (Jahr) ... Wie wird es entfernt?

enter image description here 2

Wie kann ich diese entfernen?

Ich möchte auch jedes Jahr vertikal unter jedem Balken geschrieben werden. Und die Werte von jeder Bar in dem roten und grünen Teil sichtbar ...

ich diesen Code schrieb:

d=read.delim("LW_Einkommen.csv", sep=";", dec=".", header=TRUE, row.names=1) 
str(d) 

da=data.matrix(d, rownames.force = NA) 
da 

barplot(da, 
     main="ø Einkommen CH Landwirtschaftsbetriebe 1998-2014", 
     xlab="Jahr", 
     ylab="Einkommen pro Betrieb [CHF]", 
     ylim=c(0, 100000), 
     col=c("red","green"), 
     cex.axis = 0.9, cex.lab = 0.9) 

grid(col="black") 

legend("bottomleft", 
     c("Landwirtschaftliches Einkommen","Ausserlandwirtschaftliches Einkommen"), 
     fill=c("red","green")) 
+0

viel helfen, wenn Sie die ersten paar Zeilen Ihres Datensatzes bereitzustellen. –

+2

Die Bezeichnungen stammen aus den Spaltennamen Ihres Datasets. Numerische Spaltennamen haben automatisch ein angehängtes X. Versuchen Sie, das 'names.arg'-Argument für' barplot' zu verwenden, um die Namen festzulegen. –

+0

Überprüfen Sie das 'las'-Argument auf 'par', um die Beschriftungen vertikal zu machen. –

Antwort

0

Danke R. Telford für die 3 sehr wichtig Inputs für mich! Mit diesem, weiteren Thread hier und den ganzen Tag basteln, bin ich fast fertig damit.

andere Möglichkeit ist, indem auf die read.delim Linie check.name=F:

d=read.delim("LW_Einkommen.csv", sep=";", dec=".", header=TRUE, row.names=F) 

Nur ein kleiner Fehler (ich das Etikett teilige Schraube markiert) in meinem Skript ist, in einer falschen Reihenfolge der Block-Kennzeichnung führt meine gestapelt BarPlot, wie man auf dem Bild unten sehen können: wrong block-labeling

acutal beginnt, um durch alle roten Blöcke 98red und springt als auf die grünen Blöcke ... Aber es sollte nach dem anderen von rot auf grün eine bar ...

d=read.delim("LW_Einkommen.csv", sep=";", dec=".", header=TRUE, row.names=1) 
str(d) 

da=data.matrix(d, rownames.force = NA) 
da 

bp=barplot(da, 
     main="ø Einkommen CH Landwirtschaftsbetriebe 1998-2014", 
     xlab="Jahr", 
     ylab="Einkommen pro Betrieb [CHF]", 
     ylim=c(0, 100000), 
     las=3, 
     col=c("red","green"), 
     cex.axis = 0.9, cex.lab = 1, cex.names=0.9, 
     names.arg = expression("1998","1999","2000","2001","2002","2003","2004","2005","2006", 
           "2007","2008","2009","2010","2011","2012","2013","2014")) 

**# Find the top y position of each block 
ypos <- apply(da, 2, cumsum) 
# Move it downwards half the size of each block 
ypos <- ypos - da/2 
ypos <- t(ypos) 
text(bp, ypos, da, cex=0.7)** 

grid() 

legend("topleft", 
     c("Landwirtschaftliches Einkommen","Ausserlandwirtschaftliches Einkommen"), 
     fill=c("red","green"),cex=0.9) 

Die Vorlage für die Kennzeichnung ich von hier aus nahm: https://stackoverflow.com/a/3627269/6467646