Echarts制做一张全球疫情图

1、获取全球疫情数据

1)获取API

使用用友提供的新冠肺炎实时数据,登陆注册以后能够无偿使用。html

2)点击用户信息

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

3)API的使用

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

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

1. 首先配置 maven 环境

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

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



3. 在 setting 里更改maven的设置

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

4. 打开Project Structure

更改成本地的JDK,不然可能会提示版本问题。


json

5. 引入 Jar 包

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

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

6. 新建一个 JAVA Class

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

7. 更改APICODE,运行

这里更改成刚刚保存的 API 码便可。echarts

若是代码有错误提示,根据 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("文件写入成功!");
    }

2、数据处理

数据处理使用 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)

源码地址

3、数据可视化

1)使用模板,直接引入

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

参考资料

GitHub
World Population (2010)
怎么引入org.json的依赖?

相关文章
相关标签/搜索