您的位置:首页 > 其它

Echarts制作一张全球疫情图

2021-02-19 03:01 1116 查看
ad8

目录
  • 二、数据处理
  • 三、数据可视化
  • 四、源码地址
  • 参考资料
  • 前言

    效果图:

    一、获取全球疫情数据

    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

    参考资料

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

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: