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

R - Adding a color legend to a plot of polygons (with predefined colors)

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

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

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 是 table 具有我预定义的颜色(早期热图的颜色输出)。

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

谢谢。

也许这可以帮助您入门。您需要将颜色渐变替换为 A3 table 颜色。

# 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'))
}