我有一个由 x、y 和 z 值(19,268 个值)组成的矩阵,它们排列成一个表面。我使用以下方法绘制了表面:
rgl::surface3d(mat$x, mat$y, mat$z, color="grey")
但是,我希望颜色随高度(我的 Z 值)而变化。 z 值范围从 -1.377385 到 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)
这给每个颜色变化带来了相当粗糙的边缘;您可以通过使用更精细的网格或更多颜色来改进它。
关于r - rgl 曲面图的颜色随高度 (z) 变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50914631/