2017-07-08 50 views
1

我想繪製日期,x和y在R中的3D圖中(使用RStudio 0.99.903),R(3.3.2),scatterplot3d(0.3-40),rgl( 0.98.1)在3D圖中繪製日期R

dates = c("2016-11-10","2016-11-20","2016-12-01","2016-12-15","2016-12-30") 

x = rnorm(5,0,1) 

y = rnorm(5,1,2) 

A = data.frame(dates, x, y) 

A$dates = as.Date(A$dates,"%yyyy-%mm-%dd") 

library(scatterplot3d) 

with(data=A, scatterplot3d(x=x,y=y,z=dates)) 

This plots the dates as integers 

I also tried the rgl package, but get the same result. 

library(rgl) 

plot3d(x=A$x,y=A$y,z=A$dates) 
+0

'A $ dates = as.Date(A $ dates,「%Y-%m-%d」)' – Masoud

+0

歡迎來到StackOverflow!請確保你包含一個特定的問題。 –

回答

1

閱讀關於如何使用as.Date。你需要適當日期格式,你會得到你所希望的描繪:

 dates = c("2016-11-10","2016-11-20","2016-12-01","2016-12-15","2016-12-30") 
    x = rnorm(5,0,1) 
    y = rnorm(5,1,2) 
    A = data.frame(dates, x, y) 

    A$dates = as.Date(A$dates,"%Y-%m-%d") 

    library(scatterplot3d) 

    scatterplot3d(x=A$x, y=A$y, z=A$dates) 

劇情會是什麼樣子:

enter image description here

要糾正Z軸,你可以參考這個page

爲了避免這些錯誤,您可以使用anytime package by Dirk Eddelbuettel

library(anytime) 
A$dates <- anytime(A$dates) 
0

馬蘇德向您展示瞭如何將字符串轉換爲日期。爲了獲得漂亮的日期標籤rgl,你需要自己做一些額外的工作:它不知道日期。例如,

dates = c("2016-11-10","2016-11-20","2016-12-01","2016-12-15","2016-12-30") 
x = rnorm(5,0,1) 
y = rnorm(5,1,2) 
A = data.frame(dates, x, y) 


A$dates = as.Date(A$dates,"%Y-%m-%d") 

ticks <- pretty(A$dates) 
plot3d(A$x, A$y, A$dates, axes = FALSE) 
box3d() 
axes3d(c("x", "y")) # default axis labels here 
axis3d("z", at = ticks, 
    labels = format(ticks, format = "%b %d")) # see ?strptime for formats 

我不確定這些標籤是否可能在scatterplot3d

+0

這個效果很好 - 謝謝!任何時候圖書館似乎都沒有工作。 – Susan