2017-07-08 152 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