如何在 ggplot2 中将地图与复杂的点显示结合起来?

2023-11-22

我正在尝试用非洲背景地图绘制研究地点的点。我可以独立创建这两个,但我很难将它们叠加在一起。

我使用的非洲地图是来自 maplibrary.org 的 Esri shapefile。它可以从我的保管箱中获得:https://www.dropbox.com/s/etqdw3nky52czv4/Africa%20map.zip。我将这些点保存在文本文件中,也可以从我的投递箱中获取。https://www.dropbox.com/s/scvymytjsr5pvaf/SPM-437-22Nov12.txt。他们指的是疟原虫分子耐药性的研究。我想将它们绘制出来,颜色是具有耐药基因标记的寄生虫的比例,大小是测试的寄生虫的数量。

独立绘制点:

qplot(Longitude, Latitude, data = d.spm.437, colour = Frc437, size = Tot437)

绘制非洲地图:

library(maptools)
africa = readShapePoly("Africa.shp")
africa.map = fortify(africa, region="COUNTRY")
qplot(long, lat, data = africa.map, geom="path", group=group)

任何将这两者放在一起同时保留点显示的帮助将不胜感激。


尝试这样的事情。似乎对我有用。我认为你的一些经纬度坐标是错误的。这fill颜色为geom_point目前设置为Tot437所以你可能想改变这一点。

map

library(ggplot2)
library(rgdal)

africa <- readOGR("c:/test", layer = "Africa")
africa.map = fortify(africa, region="COUNTRY")

africa.points = read.table("c:/test/SPM-437-22Nov12.txt", header = TRUE, sep = ",")
names(africa.points)[which(names(africa.points) == 'Longitude')] <- 'long' # rename lat and long for consistency with shp file
names(africa.points)[which(names(africa.points) == 'Latitude')] <- 'lat'

ggplot(africa.map, aes(x = long, y = lat, group = group)) +
    geom_polygon(colour = "black", size = 1, fill = "white", aes(group = group)) +
    geom_point(data = africa.points, aes(x = long, y = lat, fill = Tot437, group = NULL), size = 4, shape = 21, colour = "black", size = 3)

顺便说一句,查看地图时,您可能很难获得各个区域的详细视图,因此解决这个问题的一种方法是通过子集化,在本例中使用数据框。你可以这样做:

africa.map <- africa.map[africa.map$id == 'Madagascar', ]
africa.points <- africa.points[africa.points$Country == 'Madagascar', ]
ggplot(africa.map, aes(x = long, y = lat, group = group)) +
    geom_polygon(colour = "black", size = 1, fill = "white", aes(group = group)) +
    geom_point(data = africa.points, aes(x = long, y = lat, fill = Tot437, group = NULL), size = 2, shape = 21, colour = "black", size = 2)

...这应该会给你类似的东西:

madagascar

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

如何在 ggplot2 中将地图与复杂的点显示结合起来? 的相关文章

  • 如何生成向量的所有组合[重复]

    这个问题在这里已经有答案了 假设我有 3 个绿球 2 个橙球和 8 个黄球 我想订购它们 鉴于所有相同颜色的球都是相同的 如何生成所有可能的序列 在 R 中 使用gregmisc 我可以 balls lt c orange orange g
  • 如何使用 r 中的 caret 包在最佳调整超参数的 10 倍交叉验证中获得每次折叠的预测?

    我试图使用 R 中的插入符包使用 10 倍交叉验证和 3 次重复来运行 SVM 模型 我想使用最佳调整的超参数获得每次折叠的预测结果 我正在使用以下代码 Load packages library mlbench library caret
  • R从列表中提取数据框,列名中没有前缀

    我在列表中放置了一个数据框 然后 当尝试将其提取回来时 我得到了该数据帧的所有以列表键为前缀的列名称 有没有办法完全按照最初传递的方式提取数据帧 cols lt c column1 Column2 Column3 df1 lt data f
  • R 中的 NA 替换函数

    我正在尝试替换矩阵中的 NA mat 零 我在用着mat is na mat lt 0 当我有 18946 个变量的 94531 个观察值或更小的矩阵时 效果很好 但我在 22752 个变量的 112039 个观察值的矩阵上尝试它 R 显示
  • 用于清除工作空间和转储存储的 R 全局函数

    我希望创建一个全局函数来清除我的工作区并转储我的内存 我将我的函数称为 cleaner 并希望它执行以下代码 remove list ls gc 我尝试在全局环境中创建该函数 但是当我运行它时 控制台仅打印该函数的文本 在我要获取的函数文件
  • 分离并重新附加“tools:rstudio”

    又名玩火 以下不起作用 rstd obj lt as environment tools rstudio detach tools rstudio attach rstd obj name tools rstudio 好吧 它似乎有效 但随
  • R-了解 akima::interp 结果中的 NA 值

    我有以下数据框 ref dat k Intensity Slope 1 0 021467214 33 16 2 0 012444759 33 8 3 0 006079156 33 4 4 0 003792025 33 2 5 0 02276
  • 在函数内部调用 clusterApply 时,性能会下降

    我遇到了一个奇怪的问题clusterApply 我已经能够尽可能地隔离它 如下所示 首先 我从全局环境运行以下代码 require parallel cl lt makeCluster rep localhost 20 SOCK xl lt
  • 如何更新条件公式?

    让我直接进入示例 考虑以下等式 frml lt formula y a b x z 使用这样的公式规范 例如和AER ivreg 我想更新这个公式 使其显示为 frml2 lt y a b c x z w 但是 我不确定如何更新条件标志之前
  • 使用 dplyr:group_by 将数据帧分成多个子集?

    有没有办法根据 group by 组使用 dplyr 将一个数据帧拆分为数据帧的子集 mtcars gt group by cyl gear gt codes 非常感谢 好吧 并不是你真的想要 但你可以这样做tidyr 即nearly一样的
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • 将函数应用于 3d 数组的每一层,返回一个数组

    假设您有一个包含行 列和层的 3 维数组 A lt array 1 27 c 3 3 3 想象你有一个函数 它接受一个矩阵作为输入并返回一个矩阵作为输出 就像t 如何将该函数应用于数组的每一层 返回与第一层大小相同的另一个数组 我觉得我应该
  • 解析,用三点参数替换

    让我们考虑一个典型的deparse substitute R call f1 lt function u x y print deparse substitute x varU vu varX vx varY vy f1 u varU x
  • 比较 R 中的两个字符向量

    我有两个 ID 字符向量 我想比较这两个字符向量 特别是我对以下数字感兴趣 A和B各有多少个ID 有多少个ID在A中但不在B中 有多少个ID在B但不在A 我还想画维恩图 以下是一些可以尝试的基础知识 gt A c Dog Cat Mouse
  • b'从 ANSI 1252 重新编码为 UTF-8 失败,并出现错误:“参数无效”。'巨熊猫 蟒蛇

    我正在尝试将 shapefile 读入 GeoDataFrame 通常我只是这样做并且它有效 import pandas as pd import geopandas as gpd from shapely geometry import
  • glmnet 未从 cv.glmnet 收敛 lambda.min

    我跑了20倍cv glmnet套索模型以获得 lambda 的 最佳 值 但是 当我尝试重现结果时glmnet 我收到一个错误 内容如下 Warning messages 1 from glmnet Fortran code error c
  • 如何计算嵌套函数中的粘合表达式?

    我正在尝试嵌套一个函数 该函数将两个字符串粘合在一起 该函数使用组合字符串来命名数据帧的列 然而 问题似乎是粘合表达式没有足够早地评估为字符串 我可以 并且应该 强制在将表达式作为参数传递给另一个函数之前对其进行求值吗 library ti
  • R:将 JSON 时间格式转换为 POSIX

    我有一个 JSON 字符串 并将其放入数据框中 我能够做到这一点 但我在使用 apply 函数之一将所有时间字符串转换为 POSIX 格式时遇到问题 See here https stackoverflow com questions 90
  • 16 位以上整数的计算

    我有两个大整数 两者都超过 16 位 确切地说是 20 位 而且我知道由于双精度浮点运算 我在使用这些数字进行计算甚至将它们存储在变量中 独立于编程语言 时受到限制 不过 我想也许gmp图书馆应该处理它们 但不幸的是它没有 可以计算更大的整
  • 使用predictNLS围绕R中的拟合值创建置信区间?

    我想使用 R 中 propogate 包中的 PredictNLS 围绕一大组拟合值构建置信区间 作为示例 我将使用它们在函数描述中引用的数据集 https rdrr io github anspiess propagate man pre

随机推荐

  • 文件对话框中设置的 tkinter 文件模式

    为了在文件对话框中获取具有给定扩展名的预期文件集 我在几个地方看到了这样的写入模式 label pattern 模式位于一个字符串中 然而以下不起作用 from tkinter import filedialog as fd fd asko
  • 需要带有背景图像的空 Div 来强制高度并且必须具有响应能力

    我需要以下内容 空 div 没有内容 背景图片设置到div中 背景图像在调整大小时流畅 响应灵敏 我无法设置固定 div 上的尺寸 我尝试的所有方法都无法强制打开 div 以支持背景图像的大小 任何帮助是极大的赞赏 http www eve
  • 如何在没有插件的情况下搜索选择标签html的选项

    我用 html 制作了选择标签 其中包含所有国家 地区的名称 我想使用搜索栏搜索它们的值 而不需要任何插件或附加组件 这可能吗 Answer 是的 您可以首先在此处查看它的实际效果demo 如果您喜欢所看到的内容 请执行以下操作 HTML
  • 充分使用“if”语句或“try/catch”块?

    给我一些你的想法 关于哪种是更好的编码实践 使代码更高效 看起来更漂亮 无论如何 增加和提高你使用 if 语句来预测和捕获潜在问题的能力 或者只是充分利用 try catch 假设这是针对 Java 的 如果重要的话 Edit 我目前正在摆
  • 自动为所有 SQL Server 作业创建脚本

    目前 我正在尝试为 MS SQL2005 服务器的所有 SQL 作业自动生成创建脚本 我发现的一种方法已经完成 手动http msdn microsoft com en us library ms191450 aspx 我发现第二种方法可以
  • 始终保留n个最佳元素的数据结构

    我需要一个始终保存n迄今为止插入的最大项目 排名不分先后 So if n是 3 我们可以进行以下会话 其中我插入一些数字并且容器的内容发生变化 now insert 1 1 now insert 0 1 0 now insert 4 1 0
  • 寻找 A* 算法的启发式有哪些好方法?

    您有一张方形图块地图 您可以在其中向 8 个方向中的任意方向移动 鉴于您有名为的函数cost tile1 tile2 它告诉您从一个相邻图块移动到另一个图块的成本 您如何找到既可接受又一致的启发式函数 h y goal 给定此设置 寻找启发
  • python 中的端口转发以允许套接字连接

    我使用套接字启动服务器并希望允许客户端连接到它 self sock bind 0 0 0 0 0 0 0 0 0 will allow all connections and port 0 gt os chooses a open port
  • 如何在不传递变量的情况下获取当前异常?

    我正在寻找一种方法来检索当前异常 而不必将其作为变量传递 假设下面的代码 public void MakeItFail try throw new FailException catch Yes I m aware that this sh
  • ng-grid 自动调整列宽

    我正在使用 AngularJS ng grid 并尝试制作它 1 根据列内容自动调整列宽 2 当显示的列较少时 使最后一列宽度自动调整大小以填充空白区域 例如 我有 8 列 每列宽度 100 整个 ng grid 宽度为 800 然后如果我
  • 查找消息的作者

    如果有人写 name arg 我希望我的机器人说消息的作者 你的名字是 arg 我找不到该消息的作者 though client command async def name their name await client say 0 yo
  • Elastic Search 上可以创建的索引数量有限制吗?

    我正在使用 AWS 提供的 Elastic Search 我的网站上以及每次注册时都有一个注册页面 为新用户创建一个新索引 稍后由他的工作组使用 这意味着索引的数量不断增长 现在达到大约 4 5k 我的问题是 索引数量有性能限制吗 为每个新
  • 模板c++的模板?

    我已经成功地创建了一些 preperty 类 其中包含我们期望的所有内容 我的意思是 使用它时 您不需要仅使用来调用函数operator 将完成所有工作 但我想只有一件事如果我们能解决就好了 template
  • 将 javascript 添加到 ASP.NET 文本框控件的 OnBlur 属性

    有没有办法指定一些 JavaScript 在 ASP NET 文本框的 OnBlur 事件上执行 在我看来 如果我向 TextBox 对象添加任何事件处理程序 它们只会导致回发到服务器 而不是执行我想要的操作 基本上 我只想能够在 HTML
  • 如何使用 Jquery 在午夜使 Cookie 过期?

    我这样做了 cookie ultOS i expires 1 但它只会在第二天到期 如何让 cookie 在午夜过期 这会起作用吗 var date new Date var midnight new Date date getFullYe
  • 如何使用 \x1b[2j 清除屏幕?

    我们如何实施clrscr 谷歌搜索我发现 x1b 2j可以用来清屏 但是我们如何使用它呢 标准 C 库不提供清除屏幕的方法 为此 您需要一个依赖于操作系统的库 在 DOS 和 Windows 下 对于在 DOS 或 Windows 控制台中
  • 分发时隐藏swift框架中的源代码

    我创建了一个快速框架来分发给私人客户 这是我第一次创建 iOS 框架 所以我对很多事情都一无所知 我的源代码是否有可能被隐藏 我已经到处搜索 但找不到正确的答案 我不确定我是否解释得很彻底 但为了简化起见 我不希望开发人员能够修改或查看我的
  • ChartJS:数据标签:显示饼图中的百分比值

    我有一个带有四个标签的饼图 var data data 50 55 60 33 labels India China US Canada backgroundColor 4b77a9 5f255f d21243 B27200 borderC
  • CoffeeScript:使用instanceof与Class.constructor.name

    如果我有课 class Haha constructor lolAmount 1 gt alert lolAmount 我想检查一个对象是否属于正确的类 使用它是否总是安全的constructor name haha new Haha un
  • 如何在 ggplot2 中将地图与复杂的点显示结合起来?

    我正在尝试用非洲背景地图绘制研究地点的点 我可以独立创建这两个 但我很难将它们叠加在一起 我使用的非洲地图是来自 maplibrary org 的 Esri shapefile 它可以从我的保管箱中获得 https www dropbox