R x-Achse Datum label nur einen Wert
Ich bin momentan dabei, ein Grundstück in R mit Daten, die als die x-Achse. Mein Rahmen hat dates, kein problem. Ich bin mit custom date range " - einer, der schneidet einige der ersten Daten durch die Verwendung eines festen start-und erstrecken sich geringfügig über die neuesten Daten durch eine Ende-bestimmt von einigen anderen code. Die Reichweite ist ~47 Tage. Das ist alles fein arbeiten.
Mein problem ist, dass die x-Achse Etikett enthält nur ein einzelnes Etikett, "Feb", aber ich möchte mindestens 3 labels, wenn nicht 5.
starttime <- strptime("20110110", "%Y%m%d")
endtime <- strptime("20110226 1202", "%Y%m%d %H%M") #This is actually determined programmatically, but that's not important
xrange <- c(starttime, endtime)
yrange <- c(0, 100)
par(mar=par()$mar+c(0,0,0,7),bty="l")
plot(xrange, yrange, type="n", xlab="Submission Time", ylab="Best Score", main="Top Scores for each team over time")
#More code to loop and add a bunch of lines(), but it's not really relevant
Das resultierende Diagramm sieht wie folgt aus:
Ich soll wirklich nur bessere Beschriftung. Ich bin nicht allzu besorgt über genau das, was Sie sind, sondern etwas mit Monat + Tag, und mindestens 3 von Ihnen.
- werfen Sie einen Blick auf die Achse()
- Ok, wie es scheint, Achse(1) oder axTicks(1) könnte es tun, etwas automatisch. Ich muss nur herausfinden, wie es zu ändern, aus der wissenschaftlichen notation, die Sie verwenden wollen, in so etwas wie "Feb 26"...
- Auch möchten Sie vielleicht zu betrachten
matplot(..., type='s')
, statt Sie mit einer leerenplot()
gefolgt von einzelnen Aufrufelines()
. - Vielen Dank für diese Frage, denn es antwortete mir: Mittels dummy-plot-Aufruf zum festlegen der Grenzen ist die einzige Möglichkeit, die ich gefunden habe, das funktioniert mit Datumsbereiche / temporale Daten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen. Ich änderte Ihren plot () - Anweisung ein wenig und fügte zwei Linien.
by=(endtime-starttime)/4
zu generieren 5 gleichmäßig verteilte Punkte, egal wie groß es ist. Das wird eine bessere Skalierung bei 147 Tagen, anstelle von 47 Tagen.len=N
argument zu bekommenN
Punkte---seq()
kann schon tun, was Sie annähernd hier.Darüber hinaus betrachten
axis.Date()
, die nicht ein S3 generischen, kann aber helfen, die extra Etiketten, die Sie wollen. Ich schrieb einen patch für diese Funktion, hab incorporated verschiedene R-Versionen her, die es erlaubte, Achsen ohne Beschriftungen. Hier ist ein Beispiel, genommen von?axis.Date
:produziert:
Gibt es auch
Axis.Date()
die ist ein S3 generisch, so kann aufgerufen werden überAxis(dates.vec, ....)
wodates.vec
ist die x-Achse-Vektor, der die Termine.at
usw. können ebenfalls angegeben werden.Können Sie das von hand machen, wenn Sie unterdrückt die x-Achsen-Beschriftung in dem Aufruf
plot()
und verwenden Sie dannaxis()
mit manuell angegebenen Punkte und Etiketten:verwenden eine Reihe von Indizes
axis.ind
wählt von x-Werte formatiert und labels. Sie könnenstrftime()
für fast alles, z.B.'%d %b'
sollte produzieren Tag und lesbare kurze Monate imaxis(1, at=starttime, labels=strftime(starttime, "%d %b"))
?xlim
Grenzen helfen. Wir können nicht sagen, wie Sie geliefert, keine (Pseudo -) Daten machen diese reproduzierbar.