首页 > 解决方案 > rgl 曲面图的颜色随高度 (z) 变化

问题描述

我有一个排列为表面的 x、y 和 z 值(19,268 个值)矩阵。我使用以下方法绘制了表面:

rgl::surface3d(mat$x, mat$y, mat$z, color="grey")

但是,我希望颜色随高度(我的 Z 值)而变化。z 值范围为-1.377385 to 29.93678.

如何使我的绘图颜色随高度变化?

标签: rrgl

解决方案


您还没有给出可重现的示例,所以我不知道这些结果是否令人满意,但总体思路是,color参数可以是与 形状相同的数组z,并且将在相应的位置使用这些颜色。

例如,

library(rgl)
x <- y <- seq(-1, 1, len=20)
x <- x + 0.5 # to distinguish it from y
z <- outer(x, y, function(x,y) x^2 + y^2)
col <- rainbow(10)[cut(z, breaks = 10)]
surface3d(x, y, z, color = col)

在此处输入图像描述

这为每种颜色变化提供了相当粗糙的边缘;您可以通过使用更精细的网格或更多颜色来改进它。


推荐阅读