全球疫情图绘制(静态)

简介: 即中国疫情图之后,又来了一个小作业,作业要求是使用R平台相关绘图工具绘制全国疫情热力图

即中国疫情图之后,又来了一个小作业,作业要求是使用R平台相关绘图工具绘制全国疫情热力图(10分)。


library(maps)library(ggplot2)library(RColorBrewer)library(plyr)


按照做中国疫情图的思路,先把全球数据模板进行导入(来源:张杰《R语言数据可视化之美 》)然后在和自己的数据进行匹配,用plyr包中的join函数。整理好的数据如下所示:

colormap<-c(rev(brewer.pal(9,"Greens")[c(4,6)]), brewer.pal(9,"YlOrRd")[c(3,4,5,6,7,8,9)])mydata1<-read.csv("Country_Data.csv",stringsAsFactors=FALSE)#这个是全球数据names(mydata1)=c("Country","Scale") #重新命名mydata2 =  read.csv("world_data.csv",header=TRUE)  #我们的数据(疫情)#将两个表格匹配mydata <- join(mydata1, mydata2, type="full")

image.gif

该数据包含某一日(具体哪天忘记了)全球各个国家的累计确认人数的数据,数据集包含地理位置(度:long,纬度:lat),累计确诊人数ratio。该数据已放到github中,如果想尝试实现以,可通过文末阅读原文获取资料。注意的是:我们的数据(mydata2)和模板数据(mydata1)是用country合并的。接下来把ratio参数设置成分类型,以便于好绘制。


mydata$fan<-cut(mydata$ratio,breaks=c(min(mydata$million,na.rm=TRUE),0,1000,5000,10000,50000,200000,500000,2000000,max(mydata$ratio,na.rm=TRUE)),labels=c(" <=0","0~1000","1000~5000","5000~10000","10000~50000","50000~200000","200000~500000","500000~2000000"," >=2000000"),order=TRUE)#定义地图用全球的world_map <- map_data("world")#绘图ggplot()+geom_map(data=mydata,aes(map_id=Country,fill=fan),map=world_map)+geom_path(data=world_map,aes(x=long,y=lat,group=group),colour="black",size=.2)+scale_y_continuous(breaks=(-3:3)*30) +scale_x_continuous(breaks=(-6:6)*30) +scale_fill_manual(name="Ratio",values= colormap,na.value="grey75")+guides(fill=guide_legend(reverse=TRUE)) +theme_minimal()


绘制结果如下:


7C3ABQZ(]9$_3XB2H~_T$]X.png



目录
相关文章
|
存储 前端开发 Java
SpringBoot使用云端资源url下载文件的接口写法
在Spring Boot中实现从云端资源URL下载文件的功能可通过定义REST接口完成。示例代码展示了一个`FileDownloadController`,它包含使用`@GetMapping`注解的方法`downloadFile`,此方法接收URL参数,利用`RestTemplate`下载文件,并将文件字节数组封装为`ByteArrayResource`返回给客户端。此外,通过设置HTTP响应头,确保文件以附件形式下载。这种方法适用于从AWS S3或Google Cloud Storage等云服务下载文件。
998 7
|
11月前
|
数据可视化 数据挖掘 BI
探索企业年度报表背后的秘密
企业年度报表不仅是过去一年经营成果的反映,更是未来战略规划的基石。本文从编制原则、关键指标解读、数据可视化优化及工具推荐等方面,为企业提供全面的年度报表分析与优化框架,助力企业在复杂多变的商业环境中精准把握市场动态,优化资源配置,提升决策效率。
|
12月前
|
Java
smartupload文件上传!
使用 `smartupload.jar` 实现文件上传和下载。首先将 `smartupload.jar` 添加到项目中,然后创建上传页面,确保表单使用 `POST` 方法并设置 `enctype=&quot;multipart/form-data&quot;`。接着在服务器端通过 `SmartUpload` 对象处理文件上传,保存文件到指定目录,并获取表单中的其他数据。最后,实现文件下载功能,设置响应头以触发浏览器下载文件。
195 0
|
传感器 算法 安全
嵌入式工程师需要掌握哪些技术?
嵌入式系统是科技核心,涉及生活多领域。入行需掌握C/C++编程,理解硬件基础如电路与处理器架构,熟悉RTOS及操作系统原理,掌握通信协议如UART、I2C,擅长调试与领域知识,如汽车、医疗。综合软硬件、设计、算法、网络、安全及团队协作能力,方能胜任嵌入式开发。
272 7
|
机器学习/深度学习 供应链 监控
ERP系统中的供应链可视化与智能预测解析
【7月更文挑战第25天】 ERP系统中的供应链可视化与智能预测解析
539 5
|
存储 算法 C++
C++一分钟之-扁平化映射与unordered_map
【7月更文挑战第5天】C++的STL `unordered_map`是键值对的快速查找容器,基于哈希表。常见问题包括哈希函数选择、键类型限制、内存管理和迭代顺序不确定性。要避免问题,需优化哈希函数,确保自定义类型支持哈希和比较操作,合理管理内存,不依赖迭代顺序。提供的代码示例展示了如何为自定义类型定义哈希函数并操作`unordered_map`。正确使用能提升代码效率。
265 0
C++一分钟之-扁平化映射与unordered_map
|
存储 Kubernetes 负载均衡
在K8S中,kube-proxy ipvs 和 iptables 有何异同?
在K8S中,kube-proxy ipvs 和 iptables 有何异同?
|
SQL 监控 Oracle
Oracle SQL性能优化全面指南
在数据库管理领域,Oracle SQL性能优化是确保数据库高效运行和数据查询速度的关键
1481 6
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
1835 5
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的网上服装销售系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的网上服装销售系统附带文章和源代码部署视频讲解等
92 0