如何从包映射中更改map.scale的行宽?

时间:2015-08-20 13:22:49

标签: r maps

我正在使用包map.scale()中的maps在地图中创建比例。以下代码创建了我正在寻找的示例:

library(maps)
png("example.png", width = 6000, height = 6000)
map(database = "world", regions = 'Brazil',fill = T)
map.scale(-43, -30, 
          ratio = F, 
          cex = 9, 
          lheight= 1, 
          pos =1,
          offset = 1)
dev.off()

由于我正在创建高分辨率png图像,因此生成的比例尺的线宽不合适。您可以通过放大地图的右下角来检查它。

我是否缺少任何增加比例宽度的参数?

1 个答案:

答案 0 :(得分:5)

您无法修改线宽的原因(它应该是您要查找的lwd参数,而不是此处的线高)是因为它未应用于{ {1}}功能并传递给map.scale()调用该部分的比例。但是,我们可以通过以下方式以编程方式将此功能添加到函数中:

lines()

您可以修改library(maps) t <- capture.output(map.scale) ## Strip trailing text: t <- t[-length(t)] ## Find lines() call and add in a line width argument: t <- gsub("(lines\\(linexy)", "\\1, lwd=lwd", t) t <- gsub("(\\.\\.\\.)", "\\1, lwd=10", t) t <- paste(t, collapse="\n") eval( parse(text=paste0( "map.scale.new <- ", t )) ) ## Use our new map.scale.new() function with lwd= parameter: png("example.png", width = 6000, height = 6000) map(database = "world", regions = 'Brazil',fill = T) map.scale.new( -43, -30, ratio = F, cex = 9, lwd= 10, pos =1, offset = 1 ) dev.off() 以适合您的想象。

enter image description here