我有一个三元组数据集(X,Y,Z点),我想用R来绘制.

我想从数据中创建一个曲面图,并在曲面图上叠加一个等高线图,以便创建等高线图是曲面图的"阴影"或投影的印象.等高线图将显示在曲面图下方.

我的数据集看起来有点像这样:

Axis  |  Data Type
-------------------
X     |  Date value
Y     |  Float value
Z     |  Float value

我怎样才能做到这一点?

推荐答案

Edit:

我刚刚看到你指出你的一个维度是约会.在这种情况下,have a look at Jeff Ryan's chartSeries3d是用来绘制三维时间序列的.在这里,他展示了yield 率随时间的变化曲线:

chartSeries example

Original Answer:

据我所知,你想要一张countour map 作为3D曲面图下方平面上的投影.我不相信有一个简单的方法可以做到这一点,除了创造两个情节,然后结合他们.你可以find the spatial view helpful for this美元.

3D绘图有两个主要的R软件包:100(也可以使用相关的misc3d软件包)和102.

rgl

rgl软件包使用OpenGL创建交互式3D绘图(read more on the rgl website).下面是使用surface3d函数的示例:

library(rgl)
data(volcano)
z <- 2 * volcano # Exaggerate the relief
x <- 10 * (1:nrow(z)) # 10 meter spacing (S to N)
y <- 10 * (1:ncol(z)) # 10 meter spacing (E to W)
zlim <- range(z)
zlen <- zlim[2] - zlim[1] + 1
colorlut <- terrain.colors(zlen,alpha=0) # height color lookup table
col <- colorlut[ z-zlim[1]+1 ] # assign colors to heights for each point
open3d()
rgl.surface(x, y, z, color=col, alpha=0.75, back="lines")

alpha参数使该曲面部分透明.现在你有了一个交互式的3D曲面图,你想在下面创建一个countour map .rgl允许向现有图像添加更多绘图:

colorlut <- heat.colors(zlen,alpha=1) # use different colors for the contour map
col <- colorlut[ z-zlim[1]+1 ] 
rgl.surface(x, y, matrix(1, nrow(z), ncol(z)),color=col, back="fill")

在这个曲面中,我将高度设为1,这样我们就在另一个曲面下面有一个平面.最后看起来像这样,可以用鼠标旋转:

3D surface plot

scatterplot3d

scatterplot3d与R(read the vignette)中的其他绘图功能更相似.下面是一个简单的例子:

temp <- seq(-pi, 0, length = 50)
x <- c(rep(1, 50) %*% t(cos(temp)))
y <- c(cos(temp) %*% t(sin(temp)))
z <- c(sin(temp) %*% t(sin(temp)))
scatterplot3d(x, y, z, highlight.3d=TRUE,
 col.axis="blue", col.grid="lightblue",
 main="scatterplot3d - 2", pch=20)

在这种情况下,需要覆盖图像.R-Wiki has a nice post on creating a tanslucent background image.

R相关问答推荐

如何使用ggplot重新绘制LASO回归图?

卸载安装了BRM的模型发出的警告

提取R中值和列名的所有可能组合

如何使用stat_extract_all正确提取我的目标值?

更改绘图上的x轴断点,而不影响风险?

为什么st_join(ob1,ob2,left = True)返回具有比ob1更多功能的sf对象?

如何计算R数据集中每个女性的子元素数量?

在for循环中转换rabrame

使用sf或terra的LINESTRAING的累积长度

计算时间段的ECDF(R)

如何在R中使用hmm TMB提前一步预测观察到的状态?

在R中,如何从一系列具有索引名的变量快速创建数据帧?

为什么在写入CSV文件时Purrr::Pwalk不起作用

我是否可以使用多个变异项来构建顺序列(标记多个问题)

仅当后续值与特定值匹配时,才在列中回填Nas

SHILINY中DT列的条件着色

填充图例什么时候会有点?

TidyVerse中长度不等的列结合向量

Data.table::Shift type=允许扩展数据(&Q;LAG&Q;)

排序R矩阵的行和列