我正在使用R lattice()
制作3D线框图。表面的色标范围为-0.6至+0.2。我创建了一个蓝白红色渐变方案:
bwr.colors <- colorRampPalette(c("blue, "white", "red"))
我正在创建这样的情节:
gca_plot <- wireframe(dev ~ col*row, data=gca,
xlab = "col",
xlim = c(1, 24),
ylab = "row",
ylim = c(9, -6),
zlim=c(-0.6, 0.2),
main = "GCA",
drape = TRUE,
colorkey = TRUE,
at=do.breaks(c(-0.6,0.2),100),
scales = list(arrows=FALSE,cex=.5, tick.number = 10, z = list(arrows=F), distance =c(1.5, 1.5, 1.5)),
col.regions = bwr.colors(100),
screen = list(z = 30, x = -60))
问题在于我希望将颜色(白色)置于零,因为这是偏差图。我想要红色值&gt; 0和蓝色&lt; 0.
我知道让我的刻度从-0.6运行到+0.6会解决这个问题,但这会占用z轴的一个太小的部分。我也知道scale_colour_gradient2()
函数可以达到我想要的效果(它允许你设置中点值),但是ggplot2()
函数和我在lattice()
中的函数因为ggplot2()
没有像这样做三维表面(除非我错过了一些东西)。
这是我的情节的样子。它被设计在框架的角落里 - 它是一个13x9的字段,将与包含24x16字段的不同地块进行比较。