2016-05-04 4 views
0

Der Titel ist wahrscheinlich nicht der beste Weg, um auszudrücken, was ich versuche zu tun. Ich versuche, Daten für jede von 12 Ausgaben eines Buches zu zeichnen, ungefähr alle 5 Jahre (aber die letzten zwei sind unterschiedliche Intervalle). Ich möchte, dass es die markierten Ausgabejahre plottet, aber es zeichnet sich als 5-Jahres-Intervalle ab. Hier die Daten:Liniendiagramm von kategorischen Zeitdaten mit x Kategorien

x <- c(1960, 1965, 1970, 1975, 1980, 1985, 1990, 1995, 2000, 2004, 2008, 2014) 
y1 <- c(43, 58, 75, 72, 76, 86, 102, 107, 112, 83, 82, 73) 
y2 <- c(42, 63, 70, 74, 76, 77, 78, 78, 78, 78, 78, 78) 
y3 <- c(10, 15, 17, 23, 27, 29, 34, 36, 37, 37, 37, 38) 

plot(x, y1, ylim=c(0, 120), xlab="Edition", type = "b") 
lines(x, y1) 
lines(x, y3) 

Ich versuche dies und es ist fast da, aber nicht jedes Etikett zeigt: plot (x, y1, ylim = c (0, 120), xlab = "Edition", type = "b", xaxt = "n") Achse (1, at = c (1960, 1965, 1970, 1975, 1980, 1985, 1990, 1995, 2000, 2004, 2008, 2014), Label = c ("1960 "1965", "1970", "1975", "1980", "1985", "1990", "1995", "2000", "2004", "2008", "2014"))

Antwort

1

Wenn Sie Achsenmarkierungen an ganz bestimmten Stellen zeichnen wollen, sollten Sie sich selbst um die Zeichnung kümmern. Hier schalten wir die Standardachse x aus und teilen R mit, wo Markierungen explizit gezeichnet werden sollen.

plot(x, y1, ylim=c(0, 120), xlab="Edition", type = "b", xaxt="n") 
axis(1, at=x) 
#lines(x, y1) 
lines(x, y3) 

enter image description here

+0

Danke, ich dachte nur darüber aus. Ich bekomme nicht bei jeder Ausgabe ein Label wie du, nur alle anderen. Fragen, warum? – JuanTamad

+0

Stellen Sie sicher, dass Ihre Grafiken breit genug sind, damit sich die Beschriftungen nicht überschneiden. R druckt keine überlappenden Etiketten. – MrFlick

+0

Strecken Sie es aus, um die Etiketten (duh) zu bekommen. Vielen Dank. – JuanTamad