首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从R中的修补包中使用inset_element()函数嵌入映射

如何从R中的修补包中使用inset_element()函数嵌入映射
EN

Stack Overflow用户
提问于 2020-12-08 23:54:37
回答 1查看 748关注 0票数 3

我正在尝试使用修补程序包中的inset_element()函数在大地图上生成一个小地图。

当我试图嵌入一个地图时,我会得到这个错误:

代码语言:javascript
运行
复制
Error in seq.default(design$t[i], design$b[i]) : 
  'from' must be a finite number

以下是一个例子:

代码语言:javascript
运行
复制
library(patchwork)
library(sf)
library(ggplot2)
library(rnaturalearth)
world <- rnaturalearth::ne_countries(scale='medium',returnclass = 'sf')
p1 <- ggplot()+
  geom_sf(data= world)

p2 <- ggplot() + 
  geom_point(data = iris, aes(x= Petal.Width, y = Petal.Length))

# 2 maps = fail
p1 + inset_element(p1, left =0.75, right =0.95, bottom = 0.75, top =0.95)

# 1 map as "main" = success
p1 + inset_element(p2, left =0.75, right =0.95, bottom = 0.75, top =0.95)


# 1 map as "inset" = fail
p2 + inset_element(p1, left =0.75, right =0.95, bottom = 0.75, top =0.95)

packageVersion("patchwork")

EN

Stack Overflow用户

回答已采纳

发布于 2020-12-09 00:52:35

inset_element似乎是修补程序中的一个新特性,我认为您已经发现了一个带有受影响的其他用户的bug。错误将在这条线set_panel_dimensions中引发,只有在尝试打印(而不是创建)此修补程序对象时才会调用该错误:

代码语言:javascript
运行
复制
fail <- p2 + inset_element(p1, left =0.75, right =0.95, bottom = 0.75, top =0.95)

fail
#> Error in seq.default(design$t[i], design$b[i]) : 
#>   'from' must be a finite number

但是,我们现在可以通过将patches对象的布局高度和宽度设置为1来解决此错误:

代码语言:javascript
运行
复制
fail$patches$layout$widths  <- 1
fail$patches$layout$heights <- 1

fail

我在上面提到的补丁github问题线程中引用了这个答案。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65208689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档