Ich produziere ein ggplot2 Liniendiagramm von AESRD 2013 - SCO Bitumen - 7y.csv
in this folder. Die Datei wird automatisch auf einer Website nach meinen Wünschen erstellt. Dies sind mehrere Zeitreihen mit einigen Produktionswerten, die jeweils nach der Spalte "Compilation" benannt sind. Also habe ich nach "Compilation" gruppiert.ggplot2: Reihenfolge in der alphabetischen Reihenfolge, anstatt der Reihenfolge der Darstellung im Datensatz zu folgen
Siehe diesen Auszug aus meinem Code in der Datei plotter.r
in dem gleichen Ordner (siehe oben).
# "dt" is the dataframe derived from the csv file.
# "thinned" is some vector of x-values that tells where to draw the special symbols.
p = ggplot(dt, aes(Date, Value, colour= Compilation, group = Compilation, size = plotParameter), guide=FALSE)
p = p + geom_point(data=dt[thinned,],aes(as.Date(Date), Value, colour= Compilation, shape = Compilation), size = 5)
p = p + scale_shape_manual(values = seq(0,20))
p = p + geom_line(guide = FALSE)
p = p + scale_colour_manual(values=cbPalette) #cbPalette is already defined
p = p + scale_size(range=c(0.5, 2), guide=FALSE)
p = p + scale_y_continuous(labels = comma)
p = p + ylab("Barrels per day") + xlab("")
p = p + theme(legend.text = element_text(size = 8, hjust = 5, vjust= -5))
plot(p)
Hier kommt die böse Sache: Die Legende neu ordnet meine Compilations alphabetisch!
Ich habe absichtlich meine csv-Datei so entwickelt, dass jede Zusammenstellung in einer bestimmten logischen Reihenfolge auftaucht (die wichtigste Reihe zuerst, dann in der Reihenfolge einiger Leistungsparameter folgend). So würde die richtige Reihenfolge der Legende einfach nach unique(dt$Compilation)
lauten.
Meine bisherigen Schritte waren, die Spalte Order
in die csv-Datei einzufügen und damit (erfolglos) zu experimentieren und meinen Code auf verschiedene Arten zu ändern. Ohne Erfolg.
Natürlich habe ich die meisten verfügbaren Threads auf Stackoverflow gegooglet und überprüft. Ich bin auf Faktorisierung und Neuordnung gestoßen, aber es gibt keine "logische" Reihenfolge für meine Zusammenstellungen außer für die Reihenfolge, in der sie im Datensatz erscheinen. * seufz *
Kann mir jemand auf zeigen, woeinzufügen, was?
(Bonus Punkt: Wie kann ich von diesen horizontalen Linien im Symbol Legende loswerden?)
gelten 'breaks' sowohl' scales' (scale_color_manual und scale_shape_manual). Wenn wir nur eins machen würden, würden sie nicht übereinstimmen, und ggplot würde sie in zwei Legenden aufteilen, anstatt sie zu verschmelzen. – RUser
Sie haben es gelöst! Wenn du es als Antwort postest (kein Kommentar), kann ich dich mit etwas Ansehen belohnen! – fridde
Nur die Antwort unten hinzugefügt - Sie können weiter stimmen und genehmigen es als Antwort – RUser