我正在尝试创建并保存具有透明背景的地图,而不是使用R软件包tmap
的白色(或任何其他颜色(。
除了下面的示例中,我尝试在tmap_options
和tm_layout
中使用bg.color = "transparent"
,bg.color = NA
和bg.color = NULL
。
版本信息:
-
tmap
:2.2 -
tmaptools
:2.0-1
library(tmap)
data("World")
tmap_options (bg.color = "#00000000", basemaps.alpha = 0)
map <- tm_shape(World) +
tm_polygons("HPI") +
tm_layout (frame = FALSE, bg.color = "#00000000")
tmap_save (map, filename = "~/test.png")
我是在做错事,还是仅仅是包装的限制?非常感谢!
我找到了一个技巧!
我正在寻找相同的功能,以绘制Indesign中的一堆地图,其中r,tmap的输出,我需要背景是透明的。
在这里我的解决方案,给定您的代码:
library(tmap)
data("World")
par(bg=NA)
map <- tm_shape(World) +
tm_polygons("HPI") +
tm_layout (frame = FALSE, bg.color = "transparent")
tmap_save (map, filename = "~/test.eps", bg="transparent") # Note the eps extension
caveat :使用不同的输出格式对此进行测试,我意识到它与png
或jpg
不起作用。
您必须将png
函数指定为device
参数。png
文档说
png
支持透明背景:使用bg = "transparent"
。(并非所有PNG观众都正确地呈现透明度。(当在type = "Xlib"
变体中使用透明度时,将非常浅灰色用作背景,因此如果在图中使用,则将看起来像透明。如示例中,这允许使用不透明的白色。type = "cairo"
,type = "cairo-png"
和type = "quartz"
变体允许半透明颜色,包括在透明或半透明的背景上。
因此,您只需要像这样更改tmap_save呼叫(假定您已编译了开罗支持(。
tmap_save (map, filename = "~/test.png",
device = png, bg = "transparent", type = 'cairo')