在R:图例和线条中用线密度代替颜色绘制地图

时间:2013-09-04 08:24:03

标签: r maps maptools

我有关于意大利各省相对生产力的数据。我根据生产力水平建立了5组。最后,我想使用意大利省份的地图来表示这样的场景,因为我不能使用颜色,因为地图的打印将是灰度级。我使用了以下内容:

library(spdep)
library(spectralGP)
library(maptools)
library(gstat)
library (RColorBrewer)

plot(submap.a,col="beige",border="Black",axes=T, xlim=c(7,20), ylim=c(36,48))
plot(submap.b,col="darkgrey",border="Black",add=T)
plot(submap.c,col="black",border="Black",add=T,density=24)
plot(submap.d, col="grey30",border="Black",add=T)
plot(submap.e,col="grey13",border="Black", add=T)

其中,为简单起见,五个组是a,b,c,d,e

结果在这里http://s9.postimg.org/m5co5g3nz/Rplot.png

我想再做两件我无法弄清楚的事情。

首先我需要添加图例,我尝试了

legend_map <- c("a", "b","c", "d", "e")
legend(17,47,legend=legend_map,fill=c("white","darkgrey", ??,"grey30","grey13"),bty="n",cex=0.6)

我无法找到一种方法来插入组(c)的代码来代替??。我试过

"black"[density=24] 
"black"$density=24 

但他们不工作

其次,为了让事情看起来更清楚,我可能希望用(c)组相同的样式填充(e)省,但是线条朝着相反方向或甚至垂直方向。即使在这种情况下,我也无法处理它。

谢谢

1 个答案:

答案 0 :(得分:2)

您可以在图例中指定densityangle,如下所示:

legend(17,47,legend= legend_map, fill=c("white","darkgrey", "black","grey30","grey13"), density = c(NA,NA,24,NA,24), angle = c(NA,NA,30,NA,110), bty="n",cex=0.6)