使用 persp 的彩色绘图

Kaj*_*aja 2 plot r

我正在使用“persp”来生成 3D 绘图。结果是:

persp(TestMatrix ,theta = 30, phi = 30, expand = 0.19,scale=FALSE,shade=0.4,border=NA,box=FALSE)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

在我的图表中。我想将颜色连续从蓝色更改为红色。

我该怎么办?

更新

我想生成这样的图表: 在此处输入图片说明

小智 6

如果您只需要一条红色阴影曲线,请尝试col在您的 persp 函数中添加一个参数:

persp(TestMatrix, 
      theta = 30, phi = 30, expand = 0.19, scale=FALSE,
      shade=0.4, col="red", border="blue",
      box=FALSE)
Run Code Online (Sandbox Code Playgroud)

使用 ?persp 示例数据的图形

编辑: 感谢您的编辑,我不确定您是否需要双色图。这里有一个关于这个问题的问题:根据 Z 轴创建 3D Plot Colored。您需要一个颜色矩阵来指定表面每个面的颜色。subtil 点是计算每个刻面中间的高度(z),即网格的四个顶点的平均值(对应于 z 值)。调整图表的答案,解决方案可能是这样的:

# Color palette (100 colors)
col.pal<-colorRampPalette(c("blue", "red"))
colors<-col.pal(100)
# height of facets
z.facet.center <- (z[-1, -1] + z[-1, -ncol(z)] + z[-nrow(z), -1] + z[-nrow(z), -ncol(z)])/4
# Range of the facet center on a 100-scale (number of colors)
z.facet.range<-cut(z.facet.center, 100)

persp(x, y, z, 
  theta = 30, phi = 30, expand = 0.19, scale=FALSE,
  shade=NA, col=colors[z.facet.range], border="grey80",
  box=FALSE)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明