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

Pau*_*Mor 4 maps r

我正在使用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()
Run Code Online (Sandbox Code Playgroud)

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

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

For*_*ens 5

你不能修改线宽的原因(这是lwd你应该寻找的不是行高的参数)是它没有应用在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()
Run Code Online (Sandbox Code Playgroud)

您可以修改lwd=现在适合您的喜好.

在此输入图像描述