2017-03-13 10 views
1

Ich bin auf der Suche nach einer Möglichkeit, (möglicherweise vertikale) Text auf eine Abline in XTS, aber es scheint, ich kann nicht definieren, wo der Text (aber ich kann die Abline definieren) :vertikalen Text für abline in xts

require(xts) 
data(sample_matrix) 
sample.xts <- as.xts(sample_matrix, descr='my new xts object') 


for (i in 1:dim(sample.xts)[2]){ 
    cat(paste("\n",i)) 
    plot((tail(sample.xts[,i],10)), main=paste("column" ,i)) 
    print(lines(x = tail(sample.xts[,i],10), col = "darkgreen", lty=2, on=1)) 
    abline(v=.index(last(sample.xts[-dim(sample.xts)[1],])), col="red",lty=3) 
    # text(here possibly some vertical text) 
} 

bearbeitet: der Code ist jetzt reproduzierbar. Ich brauche einen Weg, um den Text mit dem Zeitindex, nicht mit einer Nummer zu platzieren (oder um die richtige Nummer herauszufinden) Irgendwelche Vorschläge? Vielen Dank im Voraus!

+0

Welche Version von xts verwenden Sie? –

+0

Ich benutze Version 0.9.874, aber ich könnte auf den neuesten Stand bringen, wenn es hilft. – 4554888

+0

Auf WIndos ist es 0.9-7. – 4554888

Antwort

0

Die xts Version auf CRAN ist derzeit 0.9-7. Bei Verwendung dieser Version müssen Sie text() und den Parameter srt verwenden, um Text hinzuzufügen und zu drehen. Wenn Sie Probleme beim Definieren des Standorts haben, können Sie die Maus mit der Funktion locator() interaktiv suchen.

# Using xts 0.9-7 
require(xts) 
data(sample_matrix) 
x <- tail(as.xts(sample_matrix, dateFormat = "Date"), 10)[,1] 

plot(x) 
lines(x, col = "darkgreen", lty=2) 
v <- last(.index(x)[-nrow(x)]) 
abline(v = v, col = "red", lty = 3) 
text(v, max(x), "label", pos = 2, srt = 90) 

enter image description here

+0

Danke Joshua! Für andere: Die untere Bezeichnung lautet: text (v, min (Endstück (x, 10)), "xxx", pos = 3, srt = 90) – 4554888

0

Da Ihr Code nicht reproduzierbar ist, verwende ich einen eingebauten Datensatz. Für eine 90 Grad Drehung können Sie folgendes verwenden:

attach(mtcars) 
plot(mpg ~ hp) 
abline(v = 170) 
text(x = 180, y = 25, label = "Your text here!", srt = 90)