Einfachste Methode zur Erstellung eines gruppierten Balkendiagramms
Ich habe den folgenden Datenrahmen:
Catergory Reason Species
1 Decline Genuine 24
2 Improved Genuine 16
3 Improved Misclassified 85
4 Decline Misclassified 41
5 Decline Taxonomic 2
6 Improved Taxonomic 7
7 Decline Unclear 41
8 Improved Unclear 117
Ich versuche, ein gruppiertes Balkendiagramm zu erstellen, Art als Höhe und dann 2 Farben für Kategorie.
Ich würde ein Bild von dem, was ich habe, posten, aber ich habe nicht genug Reputationspunkte... aber hier ist mein Code:
Reasonstats<-read.csv("bothstats.csv")
Reasonstats2<-as.matrix(Reasonstats[,3])
barplot((Reasonstats2),beside=T,col=c("darkblue","red"),ylab="number of
species",names.arg=Reasonstats$Reason, cex.names=0.8,las=2,space=c(0,100)
,ylim=c(0,120))
box(bty="l")
Nun, was ich möchte, ist, dass ich die beiden Balken nicht zweimal beschriften muss und sie auseinander gruppieren kann. Ich habe versucht, den Wert für den Abstand auf alle möglichen Dinge zu ändern, aber es scheint die Balken nicht auseinander zu bewegen. Kann mir jemand sagen, was ich falsch mache?
30
3
Keine "Balkenplot"-Lösung, sondern Verwendung von "Gitter" und "Balkendiagramm":
Es gibt mehrere Möglichkeiten, Plots in R zu erstellen;
lattice
ist eine davon, und immer eine vernünftige Lösung, +1 zu @agstudy. Wenn Sie dies in Base Graphics machen wollen, könnten Sie folgendes versuchen:Ich habe einen Funktionswrapper namens
bar()
fürbarplot()
geschrieben, um das zu tun, was Sie hier versuchen, da ich ähnliche Dinge häufig tun muss. Der Github-Link zu dieser Funktion ist hier. Nachdem man sie kopiert und in R eingefügt hat, macht manDer einzige Vorteil ist, dass die Funktion eine Legende mit den Namen der Stufen der kategorialen Variablen anlegt (z. B. "Rückgang" und "Verbesserung"). Wenn jede Ebene mehrere Beobachtungen hat, können auch die Fehlerbalken dargestellt werden (was hier nicht zutrifft, daher
errbar=FALSE
).