Ich versuche zwei Zeitreihen als Balkendiagramme übereinander zu zeichnen (nicht gestapelt). Ich verwende position="identity"
zu erreichen, dass aber die Stäbe kommen in der falschen Reihenfolge aus:R ggplot2: Anzeige der Balken neu anordnen
library(reshape2)
library(ggplot2)
test<-abs(rnorm(12)*1000)
test<-rbind(test, test+500)
colnames(test)<-month.abb[seq(1:12)]
rownames(test)<-c("first", "second")
otherTest<-apply(test, 2, mean)
test<-melt(test)
#otherTest<-as.data.frame(otherTest)
otherTest <- data.frame(
Var2 = names(otherTest),
value = otherTest
)
otherTest$Var2 = factor(otherTest$Var2, levels = levels(test$Var2))
ggplot(test, aes(x = Var2, y = value, group = 1,order=-as.numeric(Var2))) +
geom_bar(aes(fill = Var1), stat="identity", position="identity") +
geom_line(data = otherTest)
Erzeugt das unter dem Diagramm. Wie Sie sehen können, sind die Werte in 'Sekunde' höher als 'Erste', so dass die blauen Balken die rosa Balken verbergen. Wie kann ich "zuerst" auf "zweite" kommen? Ich habe versucht, die mit Var2
von test
verbundenen Faktoren umsonst zu ordnen, ohne Erfolg.
versuchen Vielleicht 'Position = dodge' –
@KarthikArumugham ich nicht tun, das ist, was ich suche, wie ich will immer noch die Bars übereinander. Auch wenn ich es versuche, sieht das Diagramm gleich aus. – user3390169
Hinzufügen von 'alpha' zu' geom_bar() '. Etwas wie 'alpha = 0.5' –