消除外边距 (Ggplot2 / geom_sf)

2024-02-03

我一直想知道是否可以避免 Ggplot2 包含这个外部边距(绘图区域周围黑框之外的空白区域[我认为又名绘图边距])。下面是我的代码,我可以很好地控制绘图边距,但我尝试了不同的方法来减少外部边距,但到目前为止没有任何效果。

我还想澄清一下,我知道在执行 ggsave 时可以通过宽度和高度选项来控制它。但是,我想使用类似的东西:

grid.newpage()
pushViewport(viewport(layout = grid.layout(2, 2)))

define_region <- function(row, col){viewport(layout.pos.row = row, layout.pos.col = col)}

print(Map1, vp = define_region(1, 1:2)) +
print(Map2, vp = define_region(2, 1)) +
print(Map3, vp = define_region(2, 2))

所以我想在保存过程之前去掉这些空格。

预先非常感谢,乔治。

ggplot() + 
  geom_sf(data = FRO, fill = "#fff5f0", color = "black") +
  geom_sf(data = Coords_FRO_sf, aes(fill = Class_Article), size = 5, alpha = 0.9, show.legend = "point", shape = 21, colour = "black") +
  coord_sf(xlim = c(-8, -5.75), ylim = c(61.35, 62.45)) +
  geom_label_repel(data = Coords_FRO, colour = "black",
                   size = 4.5, force = 3,
                   nudge_x = 0.05, nudge_y = 0.075, segment.curvature = 1,
                   fontface = "bold",
                   aes(x = Longitude, y = Latitude, label = Location, fill = Class_Article, family = "Helvetica"), show.legend = FALSE) +
  annotation_north_arrow(location = "br", which_north = "false", style = north_arrow_fancy_orienteering,
                         pad_x = unit(0.25, "in"), pad_y = unit(0.25, "in")) +
  annotation_scale(location = 'br', line_width = 2, text_cex = 1.35, style = "ticks") +
  theme(panel.background = element_rect(fill = "#f7fbff"),
        panel.border = element_rect(colour = "black", size = 0.5, fill = NA),
        panel.grid.major = element_line(color = "#d9d9d9", linetype = "dashed", size = 0.00005),
        plot.background = element_rect(fill="transparent"),
        panel.margin = unit(c(4, 4, 4 , 4), "cm"), complete = TRUE) +
  guides(color = "none", fill = "none") +
  theme(axis.text.x = element_text(color = "black", size = 13, family = "Helvetica"),
        axis.text.y = element_text(color = "black", size = 13, family = "Helvetica"),
        axis.title = element_blank()) +
  theme(axis.ticks = element_line(color ="black", size = 0.5))

ggsave(file = "FO.jpg", width = 26, height = 16, scale = 0.65, limitsize = FALSE, dpi = 300)

我想看看 X 消失的空白区域。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

消除外边距 (Ggplot2 / geom_sf) 的相关文章

随机推荐

  • React router 4 不会更新链接上的视图,但会在刷新时更新

    我正在使用以下简单的导航代码
  • NSWindowController:loadWindow从nib加载窗口但showWindow:不执行任何操作

    我有一个 NSWindowController 子类 名为 PreferencesWindowController通过以下实施 synthesize window id init self super initWithWindowNibNa
  • 将 TPL 与 ConcurrentDictionary 和“addValueFactory”一起使用有什么风险? MSDN暗示线程问题

    MSDN 是这么说的 http msdn microsoft com en us library ee378675 aspx关于多线程环境下的addValueFactory Remarks 如果在不同线程上同时调用 AddOrUpdate
  • 在 Flutter 中禁用 firestore 上的缓存

    如何禁用从 firestore 上的缓存获取 流数据 我看到了这篇文章 该功能默认启用启用持久性 https cloud google com firestore docs manage data enable offline 这样是不是就
  • 高效创建可观察对象,从可观察集合中过滤特定项目

    我有一个 RxJS 主题 用于发布对集合的更改 每次集合发生变化时 主题都会将新内容作为数组发布 例如 let collectionSubject new Rx BehaviourSubject collectionSubject onNe
  • Chart.js 图表上的叠加线

    我想知道是否可以在 Chart js 图表上叠加一条线 例如折线图 例如 在 x 轴上 将在图表中的值 20 处绘制一条水平线 我创建了一个称为叠加图表的东西 并将其添加到我的 Chart js 分支中 https github com l
  • Angular 9 BaseComponent 与 @Injectable()

    在 Angular 8 中 我能够使用 Injectable 属性创建基本组件 继承实际组件的类 Angular 9 编译器告诉我 组件 YourComponent 从 BaseComponent 继承其构造函数 但后者没有自己的 Angu
  • 一州内的县等值区域地图

    我正在努力定制并找到正确的代码来构建分区统计图 我正试图通过特定州的县来获取企业的利润 到目前为止 我所做的是能够绘制我的代码 尽管使用了我不想要的调色板和不希望出现的中断 library choroplethr library ggplo
  • 同步 android gradle appcompat 27.0.1

    我是 android studio 的新手 不确定 gradle 设置 我已经下载了 Android API 27 这是我得到的错误 错误 无法解决 app debug compileClasspath 的依赖关系 无法解析 com and
  • WebGL 中的透明纹理行为

    环境 WebGL Chrome 当使用透明 png 作为模型纹理时 我有以下行为 图像 A 树将建筑物隐藏在其后面 我看到了世界框纹理 它也隐藏自己 后面的分支不可见 同时 图像 B 工作正常 窗口是透明的 我可以看到后面的内容 A B 两
  • 如何匹配Python中封装在列表中的两个字典的键?

    我有两本词典 位于列表中 该列表如下所示 10 1 1 0 1 10 1 1 1 2 10 1 1 0 3 10 1 1 1 4 我需要的是相同的键 即匹配的 ip 我想要相应的数字或值 因此示例输出如下所示 10 1 1 0 1 10 1
  • 优雅地停止 Docker 容器

    我无法理解当容器停止时如何进行一些清理 为了方便起见 我准备了一个示例来重现该问题 以下是我的文件的内容 Dockerfile FROM opensuse latest Install tcsh non interactive mode R
  • 如何使用MACROS(VBA)获取Excel中最后一个非空单元格的地址

    我想获取 Excel 工作表中最后一个非空单元格的单元格地址 基本上我想要最后一个非空单元格的行号和列号 名称 我发现很少有答案可以找出最后一个非空单元格中的值 但我需要单元格地址而不是内容 对于这样的数据 大多数人都希望找到Blue ce
  • 如何在默认的 Eclipse XML 编辑器中显示拼写建议列表?

    我启用了默认的 Eclipse 拼写检查器 当我在 Java 编辑器中工作时检测到拼写错误时 我可以使用Ctrl 1显示建议的拼写更正列表 然而 当我使用默认的 XML 编辑器时 Ctrl 1似乎不起作用 拼写错误的单词 主要是在评论中 正
  • preg_split 意外行为

    I use 预分割 http php net manual en function preg split php如下
  • 无法推送到 Google 容器注册表(无法访问存储库)

    每当我尝试从本地计算机将容器推送到 Google 容器注册表时 都会收到以下错误 被拒绝 无法访问存储库 请检查您是否有权访问它 如果我打开 Cloud Shell 我可以毫无问题地推送容器 我曾多次尝试执行 gcloud auth log
  • 如何使用 EclipseLink 和 Spring 配置动态编织?

    如何使用 EclipseLink 和 Spring 配置动态编织 现在我正在尝试让它与 Junit 测试一起工作 但稍后我必须让它与 Tomcat 一起工作 我的部门已经标准化它大约 10 年了 我遇到两个主要问题 1 Spring需要一个
  • 矩阵中元素的频率 - Matlab

    从我在 matlab 中运行的函数中我得到一个 225x400 矩阵 我想计算这个矩阵中每个元素的频率 这意味着我需要计算每个元素在矩阵上出现的次数 我的矩阵名称是 Idiff 我在用 B unique Idiff 找到 Idiff 矩阵中
  • Android TV以编程方式切换HDMI输入端口

    我想问一下经验丰富的程序员 是否有一种方法可以通过直接安装在电视 Sony Bravia 上的应用程序以编程方式切换 HDMI 输入端口 比方说 在应用程序启动时 电视将其输入切换为 HDMI3 Android 中有通用的 API 还是特定
  • 消除外边距 (Ggplot2 / geom_sf)

    我一直想知道是否可以避免 Ggplot2 包含这个外部边距 绘图区域周围黑框之外的空白区域 我认为又名绘图边距 下面是我的代码 我可以很好地控制绘图边距 但我尝试了不同的方法来减少外部边距 但到目前为止没有任何效果 我还想澄清一下 我知道在