在 R 中绘制世界地图

2023-12-01

我正在尝试使用 R 可视化世界地图上国家/地区的一些数据ggplot2。我正在使用以下代码(示例):

WorldData <- map_data('world')
df <-data.frame(region=c('Hungary','Lithuania','Argentina'),value=c(4,10,11))
Total <- merge(WorldData,df,by='region')

并使用 ggplot 进行绘图:

p <- ggplot()
p <- p + geom_polygon(data=Total, aes(x=long, y=lat, group = group,fill=Total$value),colour="white") + 
         scale_fill_continuous(low = "thistle2", high = "darkred", guide="colorbar")
P1 <- p + theme_bw()  + labs(fill = "legend" ,title = "Title", x="", y="")
P1 + scale_y_continuous(breaks=c()) + scale_x_continuous(breaks=c()) + theme(panel.border =  element_blank())

输出是这样的:

enter image description here

I believe that the problem is in the merge because when I change the data option in geom_polygon to WorldData and the fill option to 1 I have the following result: enter image description here

发生这种情况是因为我没有来自所有国家/地区的数据吗?df?我怎样才能超越它?

编辑:我想要的是绘制整个地图。 (我的描述没有说清楚)


您还可以像其他 GIS 环境那样在“图层”中工作(这也将允许您不合并数据)。这可以通过多种方式实现,但我喜欢使用geom_map:

library(ggplot2)
library(dplyr)

WorldData <- map_data('world') %>% filter(region != "Antarctica") %>% fortify

df <- data.frame(region=c('Hungary','Lithuania','Argentina'), 
                 value=c(4,10,11), 
                 stringsAsFactors=FALSE)

p <- ggplot() +
    geom_map(data = WorldData, map = WorldData,
                  aes(x = long, y = lat, group = group, map_id=region),
                  fill = "white", colour = "#7f7f7f", size=0.5) + 
    geom_map(data = df, map=WorldData,
                  aes(fill=value, map_id=region),
                  colour="#7f7f7f", size=0.5) +
    coord_map("rectangular", lat0=0, xlim=c(-180,180), ylim=c(-60, 90)) +
    scale_fill_continuous(low="thistle2", high="darkred", guide="colorbar") +
    scale_y_continuous(breaks=c()) +
    scale_x_continuous(breaks=c()) +
    labs(fill="legend", title="Title", x="", y="") +
    theme_bw()
p 

enter image description here

这也有一个投影(通过coord_map)这样你将获得一致的输出并摆脱南极洲。

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

在 R 中绘制世界地图 的相关文章

  • 删除颜色的透明度但保留颜色本身

    我想删除颜色的透明度 但保留颜色本身 例如 我喜欢绿色的透明版本 但我想要这种不透明的颜色 library scales show col green alpha green 0 3 gt nice green show col nice
  • 在 data.table 中进行浅复制

    我在一个 SO 主题中读到 Matt Dowle 关于一个问题的回答shallow函数进行浅拷贝data table 然而 我再也找不到话题了 data table没有任何调用的导出函数shallow 有一个内部的 但没有记录 我可以安全地
  • 逐对计算行相似度百分比并将其添加为新列

    我有一个像这个示例一样的日期框架 我想找到相似的行 不重复 并逐个计算相似度 我发现这个解决方案 https stackoverflow com questions 52650932 how to calculate the similar
  • 如何限制 viridis 色标的范围?

    我有两组数据 我想使用带有 viridis 色标的热图来呈现它们 对于第一个数据集 我的值范围从 0 到 1 2 我可以轻松看到我想要看到的差异 然而 我的第二个数据集有一些异常值 导致范围从 0 到 2 现在很难看出 0 和 1 之间有趣
  • 如何在 R 中导入并绘制三角形网格?

    我想在 R 中绘制我的模型输出 它是格式为的三角形网格 x1 y1 z1 x2 y2 z2 x3 y3 z3 value 每行代表一个三角形 我想用以下方法绘制这些三角形value作为规模 mymesh lt structure c 0 9
  • 根据 r 中另一个数据帧中的列填充数据帧中的列

    我有一个评论数据框 如下所示 df1 Comments Apple laptops are really good for work we should buy them Apple Iphones are too costly we ca
  • 如何在 RSM (R) 中填充轮廓颜色并写入轴名称

    我有以下数据 ct lt structure list Conc c 50L 100L 150L 50L 100L 150L 50L 100L 150L 100L 100L 100L kGy c 10L 10L 10L 15L 15L 15
  • 使用 Eclipse 和 Rserve 从 Java 调用 R 的简单程序

    我的应用程序必须执行 R 操作 例如 m matrix sample 0 1 100 rep T ncol 10 结果应该可供 Java 应用程序使用 The 预留套餐 http www rforge net Rserve 将 R 与其他语
  • ggplot `facet_grid` 标签被切断

    In ggplot 当使用facet grid space free y 如果组内的点数较少 则分面标题会被截断 例如 library tidyverse d lt tibble x factor 1 40 y rnorm 40 g c r
  • 在 r 中导出矩阵

    我想在 R 中导出一个矩阵 并保留行和列的名称 当我使用 write table 或 write csv 时 我得到一个带有新列的矩阵 我该如何使用这个功能 感谢您的帮助 您不会获得新列 行名称将保存为文本文件中的第一列 因此 您可以指定在
  • 计算一列中正数和负数的数量

    我想计算数据帧的一列中正值和负值的数量 我在 R 中该怎么做 例如 这里是数据框 logFC logCPM LR PValue FDR Bra15066 5 630822 5 184586 73 79927 8 647868e 18 4 0
  • LaTex 中与 knit 和 xtable 交叉引用的问题

    我目前正在与 R Studio 合作 使用 LaTex 中的 R knitr 生成 PDF 文档 在这些文档中 我想在文本中引用的表格中展示我的部分结果 我使用 R 中的 xtable 包生成这些表 它运行良好并为我提供了正确的表 到目前为
  • 使用 R Shiny 从 XLConnect 下载 Excel 文件

    有没有人尝试过使用 R Shiny 中的下载处理程序通过 XLConnect 下载新创建的 Excel 文件 在 ui R 中有一行不起眼的行 downloadButton downloadData Download 在 server R
  • 如何提取与 R 中主题 ID 列表匹配的行?

    我有一个包含许多主题 ID 的数据框 每个主题都有重复观察 我还有一个单独的数据框 其中只有一个主题 ID 列表 我想从更大的数据框中匹配和提取 如何以允许我引用不同数据帧中的SubjectID列表的方式编写代码 不确定我是否完全理解这个问
  • 基于另一个数据集获取数据集的子集

    假设我有一个数据集 即 dat1 ID block plot SPID TotHeight 1 1 1 4 44 5 2 1 1 4 51 3 1 1 4 28 7 4 1 1 4 24 5 5 1 1 4 27 3 6 1 1 4 20
  • 如何在 ggplot 中保持配色方案,同时删除每个图中未使用的级别?

    我想比较一个图中的数据的一些子组和另一图中的一些其他子组 如果我绘制一个图 其中绘制了所有子组 那么这个数字将是巨大的 并且每个单独的比较都会变得困难 我认为如果给定的子组在所有图中都具有相同的颜色 这对读者来说会更有意义 这是我尝试过的两
  • 是否可以通过扫描从控制台读取而不回显字符?

    这是一个示例函数 passwordEntry lt function cat Enter your password pwd lt scan n 1 what character quiet TRUE invisible pwd 并测试该功
  • 计算每个唯一值出现的次数

    假设我有 v rep c 1 2 2 2 25 现在 我想计算每个唯一值出现的次数 unique v 返回唯一值是什么 但不返回它们的数量 gt unique v 1 1 2 我想要一些能给我的东西 length v v 1 1 25 le
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab

随机推荐