ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Echarts制作一张全球疫情图

2021-02-19 03:33:29  阅读:231  来源: 互联网

标签:name 疫情 更改 新建 country data json 制作 Echarts


目录

前言

效果图:

一、获取全球疫情数据

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的依赖?

标签:name,疫情,更改,新建,country,data,json,制作,Echarts
来源: https://www.cnblogs.com/Lin1031/p/14414215.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有