我正在使用'persp'来生成3D-Plot。这是结果:
persp(TestMatrix ,theta = 30, phi = 30, expand = 0.19,scale=FALSE,shade=0.4,border=NA,box=FALSE)
在我的图表中。我想将颜色从蓝色连续变为红色。
我该怎么办?
更新
答案 0 :(得分:2)
如果您只需要阴影红色曲线,请尝试在persp函数中添加col
参数:
persp(TestMatrix,
theta = 30, phi = 30, expand = 0.19, scale=FALSE,
shade=0.4, col="red", border="blue",
box=FALSE)
编辑: 感谢您的编辑,我不确定您需要一个双色情节。这里有一个关于这个问题的问题: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)