如何使用ggplot2在地图上添加经度和纬度线?

2024-04-29

我现在正在使用绘制加拿大地图ggplot2。因为默认的投影方式是“aea”(阿尔伯斯等积),所以地图上的经度和纬度都是直线。我想知道如何在地图上以“110W,100W,90W”和“50N,60N,70N”的形式显示经度和纬度。它们应该是曲线。多谢。

The arcgis shapfile is downloaded from https://www.arcgis.com/home/item.html?id=dcbcdf86939548af81efbd2d732336db https://www.arcgis.com/home/item.html?id=dcbcdf86939548af81efbd2d732336db enter image description here

library(ggplot2)
library(rgdal)
countries<-readOGR("Canada.shp", layer="Canada")
ggplot()+geom_polygon(data=countries,aes(x=long,y=lat,group=group),fill='white',color = "black")

The final result should be like this. enter image description here


您可以使用coord_mapggplot 的参数记录在这里 http://docs.ggplot2.org/current/coord_map.html

这使用投影来改变坐标网格。曲线将包括等距离投影,但你应该看看here http://www.inside-r.org/packages/cran/mapproj/docs/mapproject获取所有允许的投影的列表。您选择哪一个是一种偏好。

Using azequidistant(我认为这是方位等距投影 https://en.wikipedia.org/wiki/Azimuthal_equidistant_projection),并手动添加标签:

axis_labels <- rbind(
                  data.frame(long = rep(-140,5),lat = seq(40,80,10), labels = seq(40,80,10)), # x axis labels
                  data.frame(long = seq(-140,-60,40),lat = rep(85,3), labels = seq(140,60,-40))  # y axis labels
)

   ggplot() +
  geom_polygon(data=countries,aes(x=long,y=lat,group=group),fill='white',color = "black") + 
  coord_map("azequidistant") +
  scale_x_continuous(breaks = seq(-140,60, by = 20))+
  scale_y_continuous(breaks = seq(40,80, by = 10)) +
  geom_text(data = axis_labels, aes(x = long, y = lat, label = labels)) +
  theme_bw() +
  theme(panel.grid.major = element_line(colour = "grey"),
        panel.border = element_blank(),
        axis.text = element_blank())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用ggplot2在地图上添加经度和纬度线? 的相关文章

  • 修复 ggplot 中构面中的数据顺序

    我在使用 ggplot 绘制数据时遇到问题 我无法使每个方面内的数据正确排序 我的样本数据是 data lt structure list Parameter c 0 1 0 7 0 0 0 2 0 2 0 7 0 0 0 1 0 3 0
  • R Data.Table 创建带有条件的变量

    我需要在下面的数据集中创建一个新变量 A X a 1 b 2 c 3 d 4 e 5 f 6 g 7 h 8 i 9 j 10 The newvar如果X等于 2 5 7 或 9 否则 newvar应该是 0 Code dt1 lt dat
  • 在嵌套 tibbles 上应用 ntile

    我正在尝试申请ntile在一些嵌套的小标题上 但我似乎无法让它工作 你能看出我错在哪里吗 data iris iris gt group by Species gt mutate quintile ntile Petal Length 5
  • 如果条件长度 > 1 并且仅使用第一个元素,为什么我会在 R 中收到此警告

    我有下面的源代码 这if is na monthData 用于检查是否monthData is NA 如果是 则为其分配一个初始值 monthData lt NA if category QUARTER for m in c rep 1 4
  • 使用 stargazer 分析包含时间序列的数据帧

    我有一个面板数据集共 10 个观测值和 3 个变量 观测值 30 的数量 10 行 国家 地区 2 列 迁移参数 相应年份的 1 列 可以这么说 我的数据框由 3 个年度数据框组成 我该如何申请观星者考虑到它是一个面板数据集 所以最大 N
  • 建模前减少因子水平数量

    我有一个 2600 个级别的因子 我想在建模之前将其减少到 10 我想我可以通过这样的操作来做到这一点 如果一个因素列出的次数少于 x 次 则应将其放入名为 其他 的存储桶中 这是一些示例数据 df lt data frame colour
  • 抑制 R 中的错​​误消息

    我正在 R 中运行模拟研究 有时 我的模拟研究会产生错误消息 当我在函数中实现模拟研究时 当出现此错误消息时模拟停止 我知道抑制错误是不好的做法 但此时对我来说 除了抑制错误然后继续下一个模拟 直到达到我喜欢运行的模拟总数为止 没有其他选择
  • 在ggplotly散点图中添加自定义数据标签

    我想显示Species对于每个数据点 当光标位于该点上方而不是 x 和 y 值时 我用iris数据集 另外 我希望能够单击数据点以使标签持久存在 并且当我在图中选择新位置时标签不会消失 如果可能的话 最基本的是标签 持久性问题是一个优点 这
  • 从 R 到 C 处理列表并访问它

    我想使用从 R 获得的 C 列表 我意识到这个问题与此非常相似 使用 call 在 R 和 C 之间传递数据帧 https stackoverflow com questions 6658168 passing a data frame f
  • 使用starts_with() 将 NA 替换为 0

    我正在尝试替换我的一组特定列的 NA 值tibble 这些列都以相同的前缀开头 所以我想知道是否有一种简洁的方法来使用starts with 函数从dplyr包可以让我做到这一点 我已经看到了有关 SO 的其他几个问题 但是它们都需要使用特
  • 使用 data.table 进行分组并选择最短日期

    My Data df1 lt structure list ID c A A A B B C c1 1 6 c2 1 6 myDate c 01 01 2015 02 02 2014 03 01 2014 09 09 2009 10 10
  • 具有动态变量数的公式

    假设有一些 data framefoo data frame想要找到目标列的回归Y由其他一些专栏 为此目的 通常使用一些公式和模型 例如 linear model lt lm Y FACTOR NAME 1 FACTOR NAME 2 fo
  • R:编写抛硬币的随机采样程序

    假设我们有以下情况 有一枚硬币 如果它正面朝上 那么下一次抛掷正面的概率是 0 6 如果是反面 那么下一次抛掷反面的概率也是 0 6 一个班有100名学生 每个学生随机抛掷硬币几次 Student n 的最后一次抛硬币不会影响 Studen
  • 从向量中删除元素在 R 中出现的时间量

    我想从一个向量中删除元素在另一个向量中出现的时间 就像我要减去它们一样 鉴于我想要删除的元素向量中的每个元素也存在于我想要从中删除的主向量中 a lt c A B B C C C b lt c A B C C a a in b return
  • 如何从R中的日期中提取月份

    我正在使用lubridate封装并应用month从日期中提取月份的函数 我在日期字段上运行了 str 命令 得到了 Factor w 9498 levels 01 01 1979 01 01 1980 5305 1 1 1 1 1 1 1
  • 使用 readHTMLTable 从 https 网页读取表格

    我安装了 R 3 3 1 并使用 RStudio 0 99 903 我正在尝试从以下 URL 将表格读入 R https www fantasypros com nfl rankings consensus cheatsheets php
  • 将日期时间字符串转换为 Date 类

    我有一个带有日期时间字符列的数据框 当我使用as Date 除了少数实例之外 我的大多数字符串都被正确解析 下面的示例有望向您展示发生了什么 my attempt to parse the string to Date uses the s
  • R:如何找到向量的模式[重复]

    这个问题在这里已经有答案了 下面是我的data frame我想知道每个内存类别 1 到 8 的模式是什么 gt dput d structure list MEMORY1 c 5 5 7 1 5 6 4 5 4 5 5 4 1 5 5 2
  • stat_function 从函数生成平线

    我有以下代码 library ggplot2 f lt function x if x gt 2 1 x 0 3 else 0 graph lt ggplot data frame x c 0 10 aes x graph lt graph
  • R闪亮主面板显示样式和字体

    我正在学习闪亮的应用程序 并且有一些关于调整布局的基本问题 特别是样式和字体 希望得到指点或明确的答案 谢谢 考虑一个基本的输入输出应用程序 用户在 sidebarPanel 中输入数据 然后在 mainPanel 中反应性地输出结果 如何

随机推荐

  • jQuery 动画,不流畅

    你知道动画猫如何才能移动得更流畅吗 很卡顿 不知道如何让它变得更流畅 jQuery fx interval 没有帮助 http christianhaller com jquery animate img html http christi
  • LibUsb 声明接口访问被拒绝 Java

    我希望能够从 USB 计步器读取数据 我正在 Java 中尝试此操作 并且使用 LibUsb 和 Usb4Java 库 我似乎无法认领 USB 管道或类似的东西 我正在使用的代码 final Context context new Cont
  • VB.NET 使用 system.net.tcpclient 编写 telnet 客户端

    当我连接到我的Solaris盒子时这对我不起作用 服务器正在回传 有谁知道我做错了什么 Imports System Net Imports System Net Sockets Imports System Text Public Cla
  • 添加滑动删除UITableViewCell

    我正在制作一个清单应用程序UITableView 我想知道如何添加滑动删除UITableViewCell 这是我的 ViewController swift import UIKit class ViewController UIViewC
  • itunesconnect 应用程序 - 恢复到以前的版本

    我发布了我的应用程序的更新并获得批准 尽管它包含一个严重的本地化错误 大多数用户都得到了错误的语言 但它还是获得了批准 有什么方法可以快速恢复到以前的版本 暂停当前版本的当前下载 或者其他任何可能有助于解决此问题的方法 我几年前确实读过以下
  • nodejs 强大的改变 uploadDir

    我有一个项目正在努力完成我想上传图像 我可以上传图像 但不能上传应该上传的空中图像 好的 让我们编写代码 app post register function req res var form new formidable Incoming
  • Android 中客户端服务器通信的选项

    我目前正处于论文项目的研究阶段 我的项目是一个针对移动设备的订票系统 我选择以 Android 为目标 我预计需要带有中央服务器的客户端 服务器架构 因此目前正在研究 Android 如何与这样的服务器进行通信 服务器将授予客户端访问票务信
  • 观察嵌套对象的属性

    小提琴示例 http emberjs jsbin com aviyUnA 9 edit html js 输出 http emberjs jsbin com aviyUnA 9 edit html js output 这是我的模型 name
  • 使用参与者模型进行基于时间的模拟

    我们有一个单线程应用程序 可以模拟数十万个对象随着时间的推移与共享内存模型的交互 显然 它无法在多 CPU 硬件上进行扩展 在阅读了一些有关基于代理的建模和函数式编程 参与者模型的内容后 我正在考虑使用消息传递范例进行重写 这个想法非常简单
  • 为开发/QA/产品配置 Java EE 6

    我有一个使用 Maven 构建的 Java EE 6 应用程序 在 NetBeans 7 中编写代码并部署在 GlassFish 3 1 2 上 当我接近完成时 我发现自己正在部署演示版本 问题是我没有任何非常简单的方法来构建不同的环境 例
  • ModemManager:mmcli 获取信号强度

    我无法检索 Sierre Wireless MC7304 上的信号强度 另外通过 mmcli 发送 AT 命令似乎不起作用 sudo mmcli m org freedesktop ModemManager1 Modem 0 signal
  • jquery 切换兄弟元素的可见性

    我在一个页面上有几个 div 每个 div 都有一个标题 我可以单击该标题来切换相应 div 的可见性 div 设置为display none默认情况下 我用过 ids在每个 div 的点击功能中 但是因为我在同一页面上有多个 div 我想
  • Typescript:声明与另一个变量具有相同类型的变量

    有没有办法用另一个变量的类型来声明一个变量 例如 我声明一个具有某种类型的类成员 然后我想在同一类型的函数中声明另一个变量 但我不想修改原来的声明 也不想重复它 看起来你应该能够做类似的事情 class Foo bar key string
  • 如何从扩展服务工作人员创建网络工作人员

    我将首先解释我想要实现的目标 我想创建一个扩展程序 可以在不同 chrome 窗口上的选项卡之间切换 并显示每个选项卡 X 时间 我发现了一个类似的扩展 但它是使用manifest V2完成的 并且不支持多个窗口 我想通过为每个窗口创建一个
  • Nestjs拦截并修改传出的http请求

    所以我可能错过了一些东西或者做错了一些事情 我有一个 NestJS 应用程序正在尝试向外部 API 发出 http 请求 我希望能够拦截此传出请求并在执行之前修改其标头 我尝试使用拦截器 但没有成功 传入的 http 请求被拦截 但传出的请
  • 由于权限被拒绝,无法绑定到某些端口

    在过去 3 个月左右的时间里 我遇到了随机错误 无法绑定身份服务器在本地开发工作站上运行的特定端口 起初我以为是我的机器坏了 所以我重置了所有东西 这在两个月内解决了这个问题 现在它又回来了 与此同时 其他开发人员也看到了同样的问题 我们所
  • Eclipse 调试器 - 跳转到或仅显示挂起的线程

    我有一个带有很多线程的 Java 应用程序 在调试时 当一个线程中的执行被断点停止时 在所有线程之间滚动以查找挂起的线程是非常烦人的 有没有办法 按钮 快捷键等 跳转到挂起的线程 或者更好 隐藏所有未挂起的线程 我同意这很烦人 而且答案非常
  • Python Pandas 检查某个值在同一天内是否出现多次

    我有一个 Pandas 数据框 如下所示 我想做的是检查一个电台是否有变量yyy以及同一天的任何其他变量 如station1 如果这是真的 我需要删除包含的整行yyy 目前我正在使用iterrows 并循环搜索该变量出现的日期 将变量更改为
  • django redis celery 和 celerybeats 的正确设置

    我一直在尝试设置 django celery redis celery beats 但它给我带来了麻烦 文档非常简单 但是当我运行 django 服务器 redis celery 和 celerybeats 时 没有打印或记录任何内容 我所
  • 如何使用ggplot2在地图上添加经度和纬度线?

    我现在正在使用绘制加拿大地图ggplot2 因为默认的投影方式是 aea 阿尔伯斯等积 所以地图上的经度和纬度都是直线 我想知道如何在地图上以 110W 100W 90W 和 50N 60N 70N 的形式显示经度和纬度 它们应该是曲线 多