2016-11-11 16 views
3

FigureWie Jitter/entfernen Überlappung für geom_text Etiketten

In der Figur ist es möglich, die Zustandsabkürzung Etiketten ein wenig zu zittern, so dass sie sich nicht überlappen? Wenn ich check_overlap = TRUE verwende, dann entfernt es einige Beobachtungen, die sich überschneiden, und das will ich nicht. Ich möchte auch nicht die geom_label_repel, da sie die Etiketten durchhalten hat und über die 45-Grad-Linie bewegen I enthalten (was ich will nicht passieren) ist

Hier ist der relevante Teil meines Code als Referenz:

ggplot(df, aes(x = huff_margin_dem, y = margin16dem_state, label = abbrev)) + 
    geom_abline(intercept = 0) + 
    geom_text(fontface = "bold") 
+0

Ohne [reproduzierbaren Code] zu manipulieren (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproduzierbares Beispiel) es ist unmöglich, Dir direkt zu helfen. Sie sollten jedoch 'greppel' genauer prüfen, um nach der Kontrolle der Etikettenbewegung zu suchen. –

Antwort

4

Haben Sie versucht position=position_jitter()? Sie können die width und height nach Ihren Wünschen einstellen.

ggplot(df, aes(x = huff_margin_dem, y = margin16dem_state, label = abbrev)) + 
    geom_abline(intercept = 0) + 
    geom_text(fontface = "bold",position=position_jitter(width=1,height=1)) 

EDIT Ein Beispiel nur eine bestimmte Label

+geom_text(fontface = "bold", 
position=position_jitter(width=ifelse(df$abbrev=='KS',1,0), 
     height=ifelse(df$abbrev=='KS',1,0))) 

oder multiple Etiketten

df$jit<-with(df, ifelse(abbrev == "KS" | abbrev == "LA", 1, 2)) 

+geom_text(fontface = "bold", 
    position=position_jitter(width=df$jit,height=df$jit)) 
+0

Vielen Dank dafür! Wissen Sie zufällig, ob es einen Weg gibt, bestimmte Texte zu zittern und nicht nur alle? Gibt es zum Beispiel im obigen Bildbeispiel eine Möglichkeit, die Beobachtungen mit dem Text "KS" und "LA" zu zittern, aber nicht mit den anderen Beobachtungen? –

+0

Die Bearbeitung kann helfen ...? –

Verwandte Themen