Frage

ggplot2 Verwenden wir normalerweise geom_text und so etwas wie position=jitter verwenden, um meine Plots mit Anmerkungen versehen.

Allerdings - für ein schönes Grundstück I findet oft lohnt es sich manuell zu annotieren. wie folgt:

data2 <- structure(list(type = structure(c(5L, 1L, 2L, 4L, 3L, 5L, 1L, 
2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L), .Label = c("EDS", 
"KIU", "LAK", "MVH", "NA*"), class = "factor"), value = c(0.9, 
0.01, 0.01, 0.09, 0, 0.8, 0.05, 0, 0.15, 0, 0.41, 0.04, 0.03, 
0.52, 0, 0.23, 0.11, 0.02, 0.64, 0.01), time = c(3L, 3L, 3L, 
3L, 3L, 6L, 6L, 6L, 6L, 6L, 15L, 15L, 15L, 15L, 15L, 27L, 27L, 
27L, 27L, 27L), year = c(2008L, 2008L, 2008L, 2008L, 2008L, 2007L, 
2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 
2006L, 2006L, 2006L, 2006L, 2006L)), .Names = c("type", "value", 
"time", "year"), row.names = c(1L, 3L, 4L, 5L, 6L, 7L, 9L, 10L, 
11L, 12L, 13L, 15L, 16L, 17L, 18L, 19L, 21L, 22L, 23L, 24L), class = "data.frame")
ggplot(data2, aes(x=time, y=value, group=type, col=type))+
geom_line()+
geom_point()+
theme_bw()+
annotate("text", x=6, y=0.9, label="this is a wrong color")+
annotate("text", x=15, y=0.6, label="this is a second annotation with a wrong color")

Das Problem ist, dass ich nicht die Textanmerkungen Farbe bekommen kann die Linienfarbe entsprechen. Ich nehme an, ich könnte dieses Problem beheben mit einem manuellen Skala, aber ich hoffe, es gibt einen besseren Weg?

War es hilfreich?

Lösung

Wenn Sie geom_text () anstelle von annotate () können Sie eine Gruppe Farbe zu Ihrem Grundstück passieren können:

ggplot(data2, aes(x=time, y=value, group=type, col=type))+
geom_line()+
geom_point()+
theme_bw() +
geom_text(aes(7, .9, label="correct color", color="NA*")) +
geom_text(aes(15, .6, label="another correct color!", color="MVH")) 

Verwendung So beschriften () es sieht wie folgt aus: alt text http://www.cerebralmastication.com/wp-content/uploads/2010/ 03 / before.png

dann nach der Verwendung von geom_text () es wie folgt aussieht: alt text http://www.cerebralmastication.com/wp-content/uploads/2010/ 03 / after.png

Andere Tipps

Ich hatte ein ähnliches Problem und löste es mit JD Langer Antwort. Aber als ein Ergebnis von ggplot2 auf Version 0.9.0 zu aktualisieren Ich habe bemerkt, dass alle geom_text()calls auf den Stellplätzen etwas unscharf gemacht werden.

Dank kohske ich, dass dieser Code entdeckt

ggplot(data2, aes(x=time, y=value, group=type, col=type))+
geom_line()+
geom_point()+
theme_bw() +
geom_text(aes(7, .9, label="correct color", color="NA*")) +
geom_text(aes(15, .6, label="another correct color!", color="MVH")) 

zeichnet die geom_text nrow(data2)times!

Der richtige Weg, um Daten an geom_text Versorgung ist eine andere data.frame Gebäudekoordinaten, Etiketten und Farben für die Saiten halten Sie werden aufgetragen werden soll:

data2.labels <- data.frame(
  time = c(7, 15), 
  value = c(.9, .6), 
  label = c("correct color", "another correct color!"), 
  type = c("NA*", "MVH")
  )

ggplot(data2, aes(x=time, y=value, group=type, col=type))+
  geom_line()+
  geom_point()+
  theme_bw() +
  geom_text(data = data2.labels, aes(x = time, y = value, label = label))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top