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'))
}
我想在我用多边形创建的绘图中添加色标图例,其中每个多边形的填充颜色都是预先确定的。
下图是我的多边形,下面的代码是我用来生成绘图的代码(如果有更好的编码方法请告知)。
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'))
}