【发布时间】:2018-06-18 17:24:44
【问题描述】:
我有一个由 x、y 和 z 值(19,268 个值)组成的矩阵,它们排列为一个表面。我使用以下方法绘制了曲面:
rgl::surface3d(mat$x, mat$y, mat$z, color="grey")
但是,我希望颜色随高度(我的 Z 值)而变化。 z 值范围为 -1.377385 to 29.93678。
如何使我的绘图颜色随高度变化?
【问题讨论】:
我有一个由 x、y 和 z 值(19,268 个值)组成的矩阵,它们排列为一个表面。我使用以下方法绘制了曲面:
rgl::surface3d(mat$x, mat$y, mat$z, color="grey")
但是,我希望颜色随高度(我的 Z 值)而变化。 z 值范围为 -1.377385 to 29.93678。
如何使我的绘图颜色随高度变化?
【问题讨论】:
你还没有给出一个可重现的例子,所以我不知道这些结果是否会令人满意,但总体思路是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)
这为每种颜色变化提供了相当粗糙的边缘;您可以通过使用更精细的网格或更多颜色来改进它。
【讨论】: