一、获取全球疫情数据

1)获取API

使用用友提供的新冠肺炎实时数据,登录注册之后可以免费使用。

2)点击用户信息

这里的AIPCODE,复制并保存,用于后续的使用。

3)API的使用

用友有提供一个 eclipse 的使用说明。

本文采用 IDEA 搭建 Maven 进行使用

1. 首先配置 maven 环境

可以参考 Maven 环境配置,按照配置很简单,记住按照路径即可,方便后续使用

2. 使用 IDEA 新建一个 Maven 项目





3. 在 setting 里更改maven的设置

选为更改下载的 maven 的路径,可能需要安装什么,等待他安装完成即可。

4. 打开Project Structure

更改为本地的JDK,否则可能会提示版本问题。





5. 引入 Jar 包

在 pom.xml 中引入,点击Import Changes,等待安装完成

  <dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180130</version>
</dependency>
</dependencies>

6. 新建一个 JAVA Class

将用友提供的疫情全球代码复制进去。

7. 更改APICODE,运行

这里更改为刚刚保存的 API 码即可。

如果代码有错误提示,根据 IDEA 提供的更改建议进行更改。就一处错误。然后运行。

成功获取到数据。

如果出现版本错误,再按刚刚的步骤看一下哪个版本没有更改。

8. 编写一个函数,将获取到的数据进行保存。

在getRequest函数中进行调用。

再次运行,就会发现获得了一个 Cov2019.json 文件

private static void saveDataToFile(String data) {
BufferedWriter writer = null;
File file = new File("cov2019.json");
//如果文件不存在,则新建一个
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
//写入
try {
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,false), "UTF-8"));
writer.write(data);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(writer != null){
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("文件写入成功!");
}

二、数据处理

数据处理使用 PyCharm 进行。

1. 新建一个项目

2. 搭建一个环境

更改 python 的环境

3. 新建一个 py 文件,并观察 cov2019.json 文件

json 文件主要是层级递进的关系,我们需要的是 country 部分

所以我们可以使用 Json 库进行处理。

在处理的过程中会发现,每个洲其实都有一个 country 部分

所以我们需要先去除每个洲,然后再提取美国国家数据。

4. 编写代码

处理成方便后续可视化的格式。

# -*- coding = utf-8 -*-
# @Time :2021-02-19 0:31
# @Author: LinJH
# @File : DealData.py
# @Software: PyCharm import json def DealFile():
with open('../GetData/cov2019.json', 'r', encoding="utf-8")as f:
data = json.load(f)
# print(data)
DealDate(data) # 初步提取数据
def DealDate(data):
data = data["data"]["continent"]
Asia = data[0]["country"]
Europe = data[1]["country"]
NorthAmerica = data[2]["country"]
SouthAmerica = data[3]["country"]
Africa = data[4]["country"]
Oceania = data[5]["country"]
country = Asia + Europe + NorthAmerica + SouthAmerica + Africa + Oceania DealCountry(country) # 数据格式进行处理
def DealCountry(country):
for i in range(len(country)):
name = country[i]["provinceName"]
value = country[i]["confirmedCount"]
ChangeDate(name, value) countryList = [] LList=[]
def ChangeDate(name, value):
# 读取国家名称中文转英文数据
with open('countryC2E.json', 'r', encoding='utf-8') as f:
c2e = json.load(f) try:
countryDict = {}
countryDict["name"] = c2e[name]
countryDict["value"] = value
countryList.append(countryDict) except:
LList.append(name) # 数据保存
def SaveDate(country):
# DataDict={}
# DataDict["data"] = country
with open("cov2019_deal.json", 'w', encoding="utf-8") as f:
json.dump(country, f)
print("保存成功!") if __name__ == '__main__':
DealFile()
SaveDate(countryList)

源码地址

三、数据可视化

1)使用模板,直接引入

没做动态加载的,单一视图。

参考资料

GitHub

World Population (2010)

怎么引入org.json的依赖?

Echarts制作一张全球疫情图的更多相关文章

  1. 全球疫情统计APP图表形式展示

    全球疫情统计APP图表展示: 将该任务分解成三部分来逐个实现: ①爬取全球的疫情数据存储到云服务器的MySQL上 ②在web项目里添加一个servlet,通过参数的传递得到对应的json数据 ③设计A ...

  2. 全球疫情爬取APP版

    全球疫情统计APP图表展示: 将该任务分解成三部分来逐个实现: ①爬取全球的疫情数据存储到云服务器的MySQL上 ②在web项目里添加一个servlet,通过参数的传递得到对应的json数据 ③设计A ...

  3. 使用chart和echarts制作图表

      前  言 chart.js是一个简单.面向对象.为设计者和开发者准备的图表绘制工具库.它可以帮你用不同的方式让你的数据变得可视化.每种类型的图表都有动画效果,并且看上去非常棒,即便是在retina ...

  4. python绘制疫情图

    python中进行图表绘制的库主要有两个:matplotlib 和 pyecharts, 相比较而言: matplotlib中提供了BaseMap可以用于地图的绘制,但是个人觉得其绘制的地图不太美观, ...

  5. 用Python绘制全球疫情变化地图

    目前全球疫情仍然比较严重,为了能清晰地看到疫情爆发以来至现在全球疫情的变化趋势,我绘制了一张疫情变化地图,完整代码共 230 行,需要的朋友在公众号回复关键字 疫情地图 即可. 废话不多说,先上图 下 ...

  6. Python 绘制全球疫情地图

    国内疫情得到控制后,我就没怎么再关心过疫情,最近看到一条新闻,全球疫情累计确诊人数已经突破 500w 大关,看到这个数字我还是有点吃惊的. 思来想去,还是写一篇全球疫情的分析的文章,本文包括网络爬虫. ...

  7. 页面制作部分之PS切图

    页面制作部分之PS切图 <--本标签下,通过页面制作.页面架构.javascript程序设计.DOM编程艺术.产品前端架构五部分来分享总结笔记,总结笔记会陆续分享--> 网页设计在技术层面 ...

  8. 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

    原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快来看此文吧! ---------------------------- ...

  9. 如何用 Python 绘制玫瑰图等常见疫情图

    新冠疫情已经持续好几个月了,目前,我国疫情已经基本控制住了,而欧美国家正处于爆发期,我们会看到很多网站都提供了多种疫情统计图,今天我们使用 Python 的 pyecharts 框架来绘制一些比较常见 ...

随机推荐

  1. php中两个函数可能导致的sql注入

    sprintf https://www.php.net/manual/zh/function.sprintf.php 漏洞demo: <?php $name = addslashes($_GET ...

  2. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...

  3. KVM (虚拟机创建及管理,存储管理)

    创建KVM虚拟机 1.图形化界面创建 第一步:查看软件包组 yum grouplist 第二步:下载GUI界面的软件包组 yum groupinstall "Server with GUI& ...

  4. 2019牛客暑期多校训练营(第七场)F-Energy stones(思维+树状数组)

    >传送门< 题意:有n块能量石,每秒钟会增加Li的能量,但是一旦增长到了Ci它就不会增长了,它初始的能量为Ei. 现在有若干个时刻ti,会选择下标在[Si,Ti]的能量石吸取它们的能量,这 ...

  5. 2019 Multi-University Training Contest 7 Kejin Player(期望)

    题意:给定在当前等级升级所需要的花费 每次升级可能会失败并且掉级 然后q次询问从l到r级花费的期望 思路:对于单次升级的期望 我们可以列出方程: 所以我们可以统计一下前缀和 每次询问O1回答 #inc ...

  6. Educational Codeforces Round 89 (Rated for Div. 2) C Palindromic Paths

    题目链接:Palindromic Paths 题意: 给你一个n行m列的矩阵,这个矩阵被0或者1所填充,你需要从点(1,1)走到点(n,m).这个时候会有很多路径,每一条路径对应一个01串,你可以改变 ...

  7. 牛客编程巅峰赛S1第5场 - 青铜&白银 B.完全平方数的尾巴 (暴力)

    题意:有一个数\(x\),判断其是否能有某个完全平方数$mod$1000得到. 题解:直接写个for判断一下就好了,因为对1000取模,所以枚举到1000即可. 代码: class Solution ...

  8. 数据可视化 -- Python

    前提条件: 熟悉认知新的编程工具(jupyter notebook) 1.安装:采用pip的方式来安装Jupyter.输入安装命令pip install jupyter即可: 2.启动:安装完成后,我 ...

  9. codeforces 5E(非原创)

    E. Bindian Signalizing time limit per test 4 seconds memory limit per test 256 megabytes input stand ...

  10. Linux 驱动框架---驱动中的阻塞

    描述和API 阻塞IO和非阻塞IO的应用编程时的处理机制是不同的,如果是非阻塞IO在访问资源未就绪时就直接返回-EAGAIN,反之阻塞IO则会使当前用户进程睡眠直到资源可用.从应用场景来说两种方式分别 ...