如何从包映射中更改 map.scale 的线宽?
How to change line width of map.scale from package maps?
我正在使用包 maps
中的 map.scale()
在地图中创建比例尺。以下代码创建了一个我正在寻找的示例:
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 图像,因此生成的比例线宽不合适。您可以通过放大地图右下角来查看。
是否缺少任何参数来增加刻度的宽度?
你不能修改线宽的原因(你应该寻找的是 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()
您现在可以修改 lwd=
以符合您的喜好。
我正在使用包 maps
中的 map.scale()
在地图中创建比例尺。以下代码创建了一个我正在寻找的示例:
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 图像,因此生成的比例线宽不合适。您可以通过放大地图右下角来查看。
是否缺少任何参数来增加刻度的宽度?
你不能修改线宽的原因(你应该寻找的是 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()
您现在可以修改 lwd=
以符合您的喜好。