gpt4 book ai didi

r - 如何从包 map 更改map.scale的线宽?

转载 作者:行者123 更新时间:2023-12-02 09:05:26 24 4
gpt4 key购买 nike

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

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 图像时,生成的比例线宽不合适。您可以通过放大 map 右下角来查看。

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

最佳答案

您无法修改线宽的原因(您应该在此处查找的是 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= 以适合您的喜好。

enter image description here

关于r - 如何从包 map 更改map.scale的线宽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32119454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com