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

相關文章
相關標籤/搜索