r - 将两个 R maps() 并排放置
问题描述
是否可以在一个 png 图像中并排获得这两张具有相同高度的地图?这两个图像应由最小但适当的空间分隔,如下所示。我接受其他解决方案,尤其是ggmap.
我尝试par(mar=...
(并且mai
)减少边距大小,但这似乎并没有影响两个地图之间的大小或空间。我还在cex = 1.8
第二个 par() 函数(用于状态)中使用了它,它使两个地图的高度相似,但它们之间的距离更远。
当我将文件另存为 PDF 时,我会在单独的页面上获取每张地图。当我尝试 png 时,我只得到密苏里州地图。
MWE:
library(maps)
op <- par(mfrow=c(1,2))
png(file = "maps.png", width = 1000, height = 400)
par(mar=c(0,0,0,0))
map('state')
map('state', 'missouri', add = TRUE, fill = TRUE)
map('state', c('mississippi', 'alabama', 'north carolina', 'florida'), add = TRUE, fill = TRUE, col = "gray")
par(mar=c(0,0,0,0))
map('county', 'missouri')
map('county', 'missouri,scott', add=TRUE, fill=TRUE)
dev.off()
par(op)
解决方案
这些par
选项特定于当时活动的“图形设备”。展示:
试试这个,从“正常”(非文件)图形开始。
par(mfrow=1:2)
par('mfrow')
# [1] 1 2
png("maps.png")
par('mfrow')
# [1] 1 1
dev.off()
# windows
# 2
par('mfrow')
# [1] 1 2
我没有关闭之前的纯图形窗口,所以一旦我关闭png
设备,之前活动的窗口就会再次激活。它还在思考mfrow=1:2
。
所以我认为你的答案是这样的,唯一的变化是 , 的png
顺序par(mfrow=1:2)
。
png(file = "maps.png", width = 1000, height = 400)
op <- par(mfrow=c(1,2))
par(mar=c(0,0,0,0))
map('state')
map('state', 'missouri', add = TRUE, fill = TRUE)
map('state', c('mississippi', 'alabama', 'north carolina', 'florida'), add = TRUE, fill = TRUE, col = "gray")
par(mar=c(0,0,0,0))
map('county', 'missouri')
map('county', 'missouri,scott', add=TRUE, fill=TRUE)
dev.off()
par(op)
推荐阅读
- c# - 方法“CommonCreateArrayTypeSymbol”没有实现
- javascript - 使用firebase在点击时显示详细信息
- google-bigquery - 具有数组字段的 bigquery 表中的不同行
- c - 执行这个程序时会创建多少个子进程?
- python - jupyter实验室单元中循环内的输入
- c# - 需要在 MessageBox 中显示一个数组,其中包含作业名称的行和学生姓名的列
- .net - 在 Visual Studio 中生成纯 GUID
- javascript - iframe 上的“ScrollBy”可生成无限循环的嵌入式网页
- ruby-on-rails - 我的 rails 应用程序不使用 gem geocoder 显示地图
- c++ - 如果我的班级正确管理资源,那么拥有智能指针有什么意义?