2016-10-20 4 views
1

Dies zu einem gegebenen earlier postggplot Timeline - würden Daten wie angezeigt vertikal

Das Beispiel bezieht sich der amerikanischen und deutschen Präsidenten ist.

Wenn ich meine eigene Zeitleiste mit ggplot erstellen. Die Timeline-Tags überschneiden sich. Bitte helfen Sie. Ich möchte entweder den Abstand entlang der X-Achse (ich habe Ereignisse, die nur einen Tag auseinander liegen) oder die Tags abwechselnd über und unter den horizontalen Linien oder Tags, die um 45 Grad geneigt sind, mögen.

Hier ist, was ich habe:

x <- data.frame(Entity = rep(c("Samsung", "Consumer", "Other"), each=3), 
       event = c("Note7 unveiled", "Sales in 10 markets", 
          "First battery fire", "Delay of Note7 shipped", 
          "Note7 China sales", "Global recall", 
          "FAA warns passengers", "Formal recall", 
          "Samsung being sued re burns"), 
       Year2016 = as.Date(c("2016-08-02", "2016-08-19", "2016-08-24", 
            "2016-08-31", "2016-09-01", "2016-09-02", 
            "2016-09-08","2016-09-15", "2016-09-16"))) 
library(ggplot2) 

ggplot(x, aes(x=Year2016, y=Entity)) + 
geom_line() + 
geom_point() + 
geom_text(aes(label=event), hjust=0, vjust=0) + 
xlim(c(min(x$Year2016), max(x$Year2016)+10*0.25)) 

Und hier ist die Handlung: enter image description here

Vielen Dank für Ihre Hilfe im Voraus.

+1

Werfen Sie einen Blick auf die 'ggrepel' Paket – hrbrmstr

Antwort

1

Wie hrbrmstr vorgeschlagen, kann das grepelpaket in diesem Fall gut funktionieren. Du willst so etwas ausprobieren.

library(ggplot2) 
library(ggrepel) 

ggplot(x, aes(x=Year2016, y=Entity)) + 
geom_line() + 
geom_point() + 
geom_text_repel(aes(label = event), 
       segment.size = 0.5, 
       size = 2, 
       arrow = arrow(length = unit(0.02, 'npc')), 
       nudge_x = -1, 
       nudge_y = 0.5) + 
xlim(c(min(x$Year2016), max(x$Year2016)+10*0.25)) 

enter image description here

+0

Sie so viel jazzurro und hrbmstr danken. Sehr hilfreich. – KMO

Verwandte Themen