Ich bin ein relativer Neuling zu R und ich schreibe Code, um ggplot2 zu verwenden, um ein Diagramm aus einigen ziemlich grundlegenden Daten zu erstellen. Mein Plotten Code sieht derzeit wie folgt aus:Brauche zweite Legende in ggplot für geom_hline
chart1_data = read.csv(data_file, as.is=T)
chart1_means = read.csv(means_file, as.is=T)
p = ggplot(data=chart1_data, aes(x=entity, y=usage, fill=medicine)) +
geom_bar(stat="identity", position=position_dodge()) +
geom_hline(data=chart1_means, aes(yintercept=value), show.legend=FALSE)
Dies zeichnet ein Diagramm der gruppiert vertikalen Balken mit schwarzen horizontalen Linien über die Balken repräsentieren Mittelwerte und hat eine Legende, welche die Farbcodierung der vertikale Balken.
Ich möchte ein paar Dinge zu tun:
Anzeige die horizontalen Linien (geom_hline) in Farben (den Standardsatz von Farben, die R hat, auf die unterschiedliche Anzahl der Zeilen in der chart1_means abgebildeten Tabelle)
zeigen Sie eine zweite Legende, die diese Linienfarben zeigt und auf den Wert der Spalte 1 in der chart1_means-Datei abbildet, die eine textuelle Bezeichnung ist.
Aus Gründen der Übersichtlichkeit die chart1_means CSV-Datei sieht wie folgt aus:
label,value
USA Codeine mean, 14.2
Canada Codeine mean, 12.7
etc.
Und die chart1_data CSV-Datei sieht wie folgt aus:
year,medicine,entity,usage,units
2006,Codeine,Mexico,0.8,mg/capita
2006,Codeine,Cuba,NA,mg/capita
etc.
ich mit diesem erfolglos gegoogelt haben. Es scheint viele Möglichkeiten zu geben, ähnliche Dinge zu tun, aber nichts, was ich finden kann, ist ziemlich zutreffend.
UPDATE UPDATE UPDATE
nahm ich bethanyP Rat etwas bei der Gestaltung, die näher zu korrigieren, aber immer noch nicht stimmt. Code sieht derzeit so aus:
Das Ergebnis sind farbige Linien überlagernden farbigen Balken (gut), aber immer noch nur eine Legende. Die Legende hat den Titel "means" (die zeilenorientierten Daten), zeigt aber die Farben und Bezeichnungen der "medicines" (die bar-orientierten Daten).
Ich dachte, ich könnte in der Lage sein, dies zu tun, statt:
scale_fill_manual("means", values=colors, labels=means_labels)
aber das füllt die einzige Legende mit dem Titel „Mittel“, Farben mit den Stäben verbunden sind, und Etiketten, die eine Teilmenge der sind " means_labels "(da es weniger Balken als Mittellinien gibt).
Ich bin ziemlich in einer Sackgasse. Brauche noch zwei Legenden aus den zwei verschiedenen Datenreihen. Irgendwelche anderen Vorschläge?
Ich habe meinen Code in seiner aktuellen Form aktualisiert. – Barry