fille.contour3中的自定义图例

时间:2014-04-09 12:22:58

标签: r data-visualization legend contour

我正在尝试使用fill.contour3的服装传奇,就像在这个例子中一样:

colorRampPalette(c('white','blue','green','yellow','red','darkmagenta','darkviolet'))(15)

当我将filled.contour3与预定义的图例(例如,terrain.colors)一起使用时,它可以正常工作。 但是,如果我尝试添加服装图例(例如,terrain.colors(10)),我会收到一条错误消息:

Error in .filled.contour(as.double(x), as.double(y), z, as.double(levels),  : 
could not find function "color.palette"

以下是示例代码:

#Generate some fake data
x = rep(c(10,11,12),length = 9)
y = rep(c(1,2,3),each = 3)
z = runif(n=9,min = 0,max = 1)
xcoords = unique(x)
ycoords = unique(y)
surface.matrix = matrix(z,nrow=length(xcoords),ncol=length(ycoords),byrow=T)

#this works:
filled.contour3(xcoords,ycoords,surface.matrix,color=terrain.colors,xlab = "",ylab = "",xlim = c(min(xcoords),max(xcoords)),ylim = c(min(ycoords),max(ycoords)),zlim = c(min(surface.matrix),max(surface.matrix)))

#this doesn't work:
filled.contour3(xcoords,ycoords,surface.matrix,color=terrain.colors(10),xlab = "",ylab = "",xlim = c(min(xcoords),max(xcoords)),ylim = c(min(ycoords),max(ycoords)),zlim = c(min(surface.matrix),max(surface.matrix)))

我在Win7 64上使用R 3.0.3 谢谢 ,Ilik

1 个答案:

答案 0 :(得分:1)

?filled.contour有两个设置颜色的选项:

color.palette :用于在图中指定颜色的调色板功能

col :在绘图中使用的显式颜色。此参数会覆盖任何调色板功能规范。颜色应该比水平少一个

您正在向color提供颜色矢量,其被解释为color.palette。如果要提供预定义的颜色矢量,请改用col

cols = colorRampPalette(c('white','blue','green','yellow','red','darkmagenta','darkviolet'))(15)
filled.contour(xcoords,ycoords,surface.matrix,col=cols,xlab = "",ylab = "",xlim = c(min(xcoords),max(xcoords)),ylim = c(min(ycoords),max(ycoords)),zlim = c(min(surface.matrix),max(surface.matrix)))