2015-05-07 3 views
6

I ein XTS-Objekt von Daten durch Zeit haben:Ich brauche einige 2D-Daten durch die Zeit plotten (also 3d)

> head(vixData[,2:8], 5) 
       F1 F2 F3 F4 F5 F6 F7 
2009-06-08 30.25 32.00 31.70 31.75 31.65 30.85 29.95 
2009-06-09 29.10 30.95 30.95 31.15 31.10 30.40 29.45 
2009-06-10 29.10 31.20 31.30 31.45 31.50 30.75 29.95 
2009-06-11 28.10 30.60 30.75 30.90 31.00 30.20 29.25 
2009-06-12 28.35 29.95 30.10 30.45 30.50 29.90 29.05 

Der F1-F7 wird eine Kurve bilden, wie unten:

plot(1:7, vixData[399,2:8], type = 'o', pch = 6) 

enter image description here

ich möchte dies im Laufe der Zeit tun. Die Zeilen des xts-Objekts sind die Werte für jeden Tag, die die Kurve generieren. Ich suche etwas zu erzeugen:

enter image description here

Ich versuche Plot3D zu verwenden, und surf3D, aber ich kann die Dokumentation nicht verstehen, oder wie den Datenrahmen in konvertieren, was surf3D will. Irgendwelche Ideen oder bessere Paketvorschläge?

Ich habe versucht, Gitter zu verwenden :: Drahtgitter wie in den Kommentaren vorgeschlagen, aber ich habe folgende:

curveData <- vixData[-(1:100),2:8, drop = FALSE] 
wireframe(t(as.matrix(curveData)), shade = TRUE, scales = list(arrows = FALSE), 
     aspect = c(0.65, 0.25), drape = TRUE, 
     zlab = "Level", xlab = "Contract", ylab = "Time", panel.aspect = .75) 

enter image description here

Das sieht ziemlich nah dran !! Aber - ich hoffe, ich könnte das Bild vielleicht drehen und etwas entlang der "Zeitachse" verlängern, um bessere Klarheit zu geben. Gibt es dafür Parameter? Ich kann es in der Dokumentation nicht finden.

+1

Was haben Sie genau das versuchen und was nicht funktioniert hat? Scheint, als würde man nur in Matrix umwandeln, würde mit wireframe arbeiten: 'gitter :: wireframe (als.matrix (vixData), drapieren = TRUE)' – MrFlick

+0

Ich habe versucht, plot3D zu verwenden. Ich werde Gitter versuchen, ich hatte davon noch nichts gehört. – lukehawk

+0

Sie können auch einen flachen 2D-Graphen mit Datum auf der X-Achse und F1: 7 auf der Y-Achse mit der Farbe darstellen, die zur Darstellung Ihrer Werte verwendet wird. Sie müssen Ihre Daten in eine Matrix konvertieren und dann image() verwenden. – MikeRSpencer

Antwort

3

Die Quelldatei von chartSeries3d sollte helfen. Außerdem können Sie in dem

source("http://www.quantmod.com/examples/chartSeries3d/chartSeries3d.alpha.R") 
library("xts") 
data("sample_matrix") 
chartSeries3d0(as.xts(sample_matrix), col=c("lightblue","blue")) 

TimeSeriesPlot

-1

Excel 3D-Oberflächendiagramm Interesse ist die beste Wahl für Sie. sogar Excel 2007 hat dieses Diagramm. Sie Achse drehen kann, Farben ändern leicht

click volcano data example

+1

Nein. Das ist R. Verschwinde mit diesem Excel-Unsinn. – lukehawk