R - 将颜色图例添加到多边形图(使用预定义颜色)

时间:2015-01-08 14:58:36

标签: r plot polygon legend

我想在我用多边形创建的绘图中添加色阶图例,其中每个多边形的填充颜色是预先确定的。

下面的图片是我的多边形,下面的代码就是我用来生成我的绘图的代码(如果有更好的代码编写方法,请告知)。

enter image description here

plot(alldata[alldata[,3]==forceIds[50],1:2], col="orange", type='l', xlim=range(alldata[,1]),ylim=range(alldata[,2]))
for(i in 1:length(forceIds)){
  polygon(x=alldata[alldata[,3]==forceIds[i],1],y=alldata[alldata[,3]==forceIds[i],2], col=A3$Key2[i])
}

alldata是包含所有多边形的数据集,forceIds是多边形的唯一列表,A3是具有我预定义颜色的表格(从早期热图中输出颜色)。

我想在每个图表的底部添加一个色标图例,标记为" Good - Bad"?

感谢。

1 个答案:

答案 0 :(得分:1)

也许这可以帮助你入门。您需要使用A3表格颜色替换颜色渐变。

# create a 6 plot layout, with a tall top row and narrow bottom row
layout(mat=matrix(data = 1:6, nrow = 2, byrow=T), heights=c(3,1))

# standard left, bottom, top and right margins
par(mar=c(5,4,4,2)+0.1)
for (i in 1:3) { plot(1:3) }

# reduce the size of the top margin so the plots and colour bars are closer
par(mar=c(5,4,1,2)+0.1)

# create a matrix coding the values 1 (Bad) to 10 (Good)
m = matrix(data = 1:10, ncol = 1)

# plot 3 colour bars and add custom axis
for (i in 1:3) {
    image(x = 1:10, y = 1, z = m,
          col=colorRampPalette(c('orange', 'red'))(10),
          axes=F, xlab='', ylab='')
    axis(3, at=c(1,10), labels = c('Bad', 'Good'))
}