使用persp的彩色情节

时间:2016-08-24 08:10:17

标签: r plot

我正在使用'persp'来生成3D-Plot。这是结果:

persp(TestMatrix ,theta = 30, phi = 30, expand = 0.19,scale=FALSE,shade=0.4,border=NA,box=FALSE)

enter image description here

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

我该怎么办?

更新

我想生成这样的图表: enter image description here

1 个答案:

答案 0 :(得分:2)

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

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

Graph using ?persp exemple datas

编辑: 感谢您的编辑,我不确定您需要一个双色情节。这里有一个关于这个问题的问题:Create 3D Plot Colored According to the Z-axis。您需要一个颜色矩阵来指定曲面每个面的颜色。 subtil点是计算每个facet中间的高度(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)

enter image description here