1. 在FAO下载数据

2. 把数据导入到RStudio

3. 画图

> library(ggplot2)
> library(dplyr)
> world <- map_data('world') %>% filter(region != "Antarctica") %>% fortify #dplyr的%>%相当于管道符
> head(world,6)long      lat group order region subregion
1 -69.89912 12.45200     1     1  Aruba      <NA>
2 -69.89571 12.42300     1     2  Aruba      <NA>
3 -69.94219 12.43853     1     3  Aruba      <NA>
4 -70.00415 12.50049     1     4  Aruba      <NA>
5 -70.06612 12.54697     1     5  Aruba      <NA>
6 -70.05088 12.59707     1     6  Aruba      <NA>
> View(tomato) #View()是因为这个csv数据有点多
> names(tomato)[1] "Domain Code"      "Domain"           "Area Code"       [4] "Area"             "Element Code"     "Element"         [7] "Item Code"        "Item"             "Year Code"
[10] "Year"             "Unit"             "Value"
[13] "Flag"             "Flag Description"
#只需要Area Value
> new_tomato <- tomato[,c(4,12)]
> names(new_tomato) <- c("region","value") #将FAO的国家names改成和world里的名称一致
> unique(world$region) #发现world里有251个国家
> unique(new_tomato$region) #发现FAO数据中有169个国家
> tomato_map <- merge(new_tomato,world,by='region',all=TRUE) #对2个数据集进行全连接,因为FAO中的国家名字和world数据集中的国家名字有时候可能有所不同,当两个数据集的名称有差异时,会在lon和lat中产生NA,因此需要进一步手工校对国家的名字,这里就不进行演示了
> unique(tomato_map$value)[order(unique(tomato_map$value))]#观察数值范围
[1]        0       10       37       59      112      146      233[8]      274      275      351      398      460      494      495[15]      510      525      558      598      680      767      936[22]     1113     1183     1186     1338     1731     1960     2460[29]     3447     3648     3730     3979     4750     5147     6444[36]     6572     6602     6800     8684     8765     9010     9339[43]     9840    10620    11311    11710    11760    14329    16140[50]    16173    16900    16947    18372    18844    19454    19539[57]    22020    22850    24545    26108    28034    28270    28309[64]    31591    31921    34947    35560    37351    37891    38199[71]    40450    42129    43700    44235    49926    51099    52984[78]    58330    60034    60893    62600    66144    70319    72357[85]    74008    77916    82636    94036   104794   105359   105758[92]   106690   111639   124944   128887   145010   148000   152348[99]   158784   159977   176505   180930   182654   201293   202242
[106]   218358   223294   240734   261604   270140   272488   274700
[113]   297910   298996   299669   310946   329188   332101   332608
[120]   356809   387653   395755   420573   436550   480300   490286
[127]   491024   496216   542686   555485   556692   561293   619543
[134]   627788   628191   658106   676623   697817   708467   709280
[141]   714600   771649   790501   808670   910000   917800  1020331
[148]  1050626  1215466  1300000  1347085  1477878  1544380  2120120
[155]  2224440  3015010  3816009  3917967  4271914  5000560  5248904
[162]  5252690  6751856 10858990 12841990 19007000 62764671 62869502
[169]       NA
> tomato_map <- tomato_map %>% mutate(grade = case_when(value > 100000000 ~ '5',value > 10000000 ~ '4',value > 1000000 ~ '3', value > 100000 ~ '2' , value <= 100000 ~ '1',is.na(value)~'0')) #按照value进行分级
> tomato_map2 <- tomato_map[order(tomato_map$order),] #把顺序排回来,不然画图会只显示部分地区
> ggplot() +geom_polygon(data = tomato_map2,aes(x=long, y = lat, group = group,fill =factor(grade)),color="white",size=0.1) +scale_fill_manual(labels = c("No data","<=100000.0","<=1000000.0","<=10000000.0","<=100000000.0",">100000000.0"),values = c('grey','#fdfdb8', '#fccf6b','#fb974e','#f14046','#c20b2b')) +theme(panel.grid = element_blank(),panel.background = element_blank(),panel.border = element_rect(linetype = "solid", fill = NA),axis.text = element_blank(),axis.ticks = element_blank(),axis.title = element_blank(),plot.title = element_text(hjust = 0.5,vjust=0,size=22))+coord_quickmap()+labs( fill = "")+ggtitle("Production quantities of Totatoes by country\n")

效果图如下,注意像美国、俄罗斯这些地区没有信息是因为world和FAO中的国家名称不一致,可以自己修改

4. AI提高图片分辨率

ggplot画全球番茄产量热图相关推荐

  1. R语言用EnhancedVolcano和ggplot画同一数据的火山图

    getwd() #下载方式有很多,挑自己能下载的办法下载好几个包就好,我们用自带的数据就好 install.packages("SeuratData") devtools::ins ...

  2. R语言ggplot画双坐标-柱状图、折线图

    ggplot一般不用来画双坐标,有些图双坐标结合起来看比较好,比方说条形图和柱状图. 1.画双坐标要用到函数scale_y_continuous,这个函数规定次坐标与主坐标的换算关系,用 sec_ax ...

  3. distinct group by一起用_用ggplot2来画带有对角线的热图。

    最近有人在群里提问,下面的热图该怎么画. 这张热图,在每一个格子里面用对角线一分为二,呈现了两类信息.图片来自于这篇文章的图1D. 通常,遇到这种需求,我都会直接检索,看看有没有现成的R包可用.可以提 ...

  4. R语言ggplot画世界地图并根据条件给国家上色

    期末结束,来分享一下 Exploration Data Analysis这门课我做的一个图. 语言依旧是 R, 用的Rstudio,这玩意儿真的拉闸,作为一个数据分析主要语言的软件,我数据量一大它就各 ...

  5. 使用ggplot2画 点图、箱线图、小提琴图、蜂窝图、云雨图

    使用ggplot2画 点图.箱线图.小提琴图.蜂窝图.云雨图 加载包 library(tidyverse) library(cowplot) library(ggrepel) library(ggsc ...

  6. 不需要懂得编程,但却可以使用ggplot2画出论文级别的图?

    你有没有遇到过这样的烦恼,你需要画一些论文级别的图,并且你知道R中的ggplot2是一个很好的选择,可以画出符合你要求的图.但是由于你不熟悉ggplot2的使用,你需要上网倒弄一番,了解与你图相关的代 ...

  7. python怎么画多重饼状图_Python通过matplotlib画双层饼图及环形图简单示例

    (1) 饼图(pie),即在一个圆圈内分成几块,显示不同数据系列的占比大小,这也是我们在日常数据的图形展示中最常用的图形之一. 在python中常用matplotlib的pie来绘制,基本命令如下所示 ...

  8. python画最简单的折线图,推荐origin画图软件

    1.因实际需要,需要画一些简单的折线图,详细代码见下: import matplotlib.pyplot as plt import numpy as nplist1=[1,2,3,4,5,6,7,8 ...

  9. 续航超1000km,极氪成为宁德时代麒麟电池全球量产首发品牌 | 美通社头条

    美通社消息:8月27日,宁德时代新能源科技股份有限公司(宁德时代)与极氪智能科技有限公司(极氪)共同宣布极氪是麒麟电池的全球量产首发的品牌.极氪009为麒麟电池首发车型,而极氪001将成为全球首款搭载 ...

最新文章

  1. 使用command-privilege给H3C、华为设备的用户帐号授权
  2. LeetCode: 13. Roman to Integer
  3. vuex结合php,vuex中store的使用介绍(附实例)
  4. 解读服务器虚拟化的十大误区
  5. 开发常见错误解决(7)连接到SQL Server 2005出错
  6. subList生成的列表和原列表的对比
  7. selenium实现登录百度(自动识别简单验证码)
  8. usb serial port 驱动_tty初探 — uart驱动框架分析
  9. 演示IPFS的一个完整的流程以及针对部分概念的详解
  10. discuz手机客户端java,Discuz!7.2让高级搜索更全面
  11. 一起Polyfill系列:让Date识别ISO 8601日期时间格式
  12. Linq to xml 示例分析
  13. JSON有关的一道题
  14. Mybatis 传参问题
  15. 水经注下载的地图版权_如何使用水经注万能地图下载器下载谷歌卫星地图
  16. 从阿里投资B站看动漫IP,二次元市场蕴含了怎样的价值?
  17. C++模板编程(18)---模板实例化instantiation
  18. crmeb知识付费二开文档
  19. 判断一个数是不是奇数
  20. 上网代理设置会被自动清空_代理服务器上网(代理服务器老是自动打开)

热门文章

  1. 前端开发之从零开始的uniapp(1):创建uni-app项目
  2. SCons教程 (2) SConstruct 文件介绍
  3. 常见的BlockingQueue有哪些
  4. Request和response的用法总结
  5. 整理了643个计算机夏令营预推免招生项目,特点如下:
  6. 项目十大管理之成本管理
  7. lwip系列一之数据的收发
  8. java dozer,MapStruct相当于提示(Dozer)?
  9. 内核文件ntoskrnl.exe, ntkrnlpa.exe, ntkrnlmp.exe, ntkrpamp.exe到底有什么区别
  10. IOS NDDictionary使用中value遇到no summary如何判断为NULL