Pyecharts繪制可視化地球?qū)崿F(xiàn)示例
正文
今天我們使用 Pyecharts 制作一個(gè)地球可視化項(xiàng)目,一起來(lái)看看吧
Let’s go!
數(shù)據(jù)處理
這里我們使用全球新冠感染人數(shù)的數(shù)據(jù)集作為我們的測(cè)試數(shù)據(jù),先來(lái)看看數(shù)據(jù)的整體情況
import pandas as pd
df = pd.read_csv("owid-covid-data.csv")
df_0608 = df[df['date'] == '2022-06-08']
df_new = df_0608[pd.isna(df_0608['continent']) == False]
df_new
Output:

我們選取0608這一天的數(shù)據(jù),可以看到 total_cases 字段就是國(guó)家當(dāng)前的累計(jì)總確診人數(shù)
下面就提取國(guó)家和確診人數(shù)
covid_data = df_new[['location', 'total_cases']].values.tolist()
Output:

Pyecharts 繪圖
通過(guò) Pyecharts 繪制地球圖,在官網(wǎng)上有很詳細(xì)的例子,我們直接套用即可
首先導(dǎo)入相關(guān)庫(kù)
import pyecharts.options as opts from pyecharts.charts import MapGlobe
定義地球圖函數(shù)并繪制
data = [x for _, x in covid_data]
low, high = min(data), max(data)
c = (
MapGlobe()
.add_schema()
.add(
maptype="world",
series_name="World Covid Data",
data_pair=covid_data,
is_map_symbol_show=False,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
min_=low,
max_=high,
range_text=["max", "min"],
is_calculable=True,
range_color=["lightskyblue", "yellow", "orangered"],
)
)
)
c.render_notebook()
這樣我們得到如下全球各國(guó)新管確診人數(shù)分布圖

部署為 Web 服務(wù)
當(dāng)前我們所有的代碼都是運(yùn)行在 Jupyter 當(dāng)中的,如果要分享給其他人,并不是十分的方便,我們可以將整體代碼部署成一個(gè) Web 服務(wù),這樣其他人就可以方便的通過(guò)瀏覽器來(lái)查看該地球圖了
我們先創(chuàng)建項(xiàng)目目錄,命名為 flask_map,再將本地安裝的 Pyecharts 目錄下的 templates 文件夾拷貝到該目錄下,同時(shí)再創(chuàng)建 data 文件夾和 main.py 文件,Pyecharts 模板位置如下:
pyecharts.render.templates
我們將數(shù)據(jù)集 owid-covid-data.csv 放到 data 文件夾下,再編寫(xiě) main.py 文件
# coding = utf-8
"""
======================
@author:luobo
@time:2022/7/2:14:32
@email:
@File: main.py
======================
"""
from flask import Flask, render_template
from jinja2 import Markup, Environment, FileSystemLoader
from pyecharts.globals import CurrentConfig
# 關(guān)于 CurrentConfig,可參考 [基本使用-全局變量]
CurrentConfig.GLOBAL_ENV = Environment(loader=FileSystemLoader("./templates"))
from pyecharts import options as opts
from pyecharts.charts import MapGlobe
import pandas as pd
df = pd.read_csv("data/owid-covid-data.csv")
df_0608 = df[df['date'] == '2022-06-08']
df_new = df_0608[pd.isna(df_0608['continent']) == False]
covid_data = df_new[['location', 'total_cases']].values.tolist()
app = Flask(__name__, static_folder="templates")
def Map_base():
data = [x for _, x in covid_data]
low, high = min(data), max(data)
c = (
MapGlobe()
.add_schema()
.add(
maptype="world",
series_name="World Covid Data",
data_pair=covid_data,
is_map_symbol_show=False,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
min_=low,
max_=high,
range_text=["max", "min"],
is_calculable=True,
range_color=["lightskyblue", "yellow", "orangered"],
)
)
)
return c
@app.route("/")
def index():
c = Map_base()
c.render('templates/Map.html')
return render_template("Map.html")
if __name__ == "__main__":
app.run()
這樣,當(dāng)我們啟動(dòng) Flask 服務(wù)器之后,只需要訪問(wèn)根目錄(/),就會(huì)在 templates 目錄下生成 Map.html 文件,也會(huì)在瀏覽器正常展示地球圖了

tup2
至于如何將本地 Web 應(yīng)用部署到公網(wǎng)上,我們?cè)诤竺娴奈恼轮性俳榻B吧!
更多關(guān)于Pyecharts繪制可視化地球的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python實(shí)現(xiàn)加密的方式總結(jié)
這篇文章主要介紹了python實(shí)現(xiàn)加密的方式總結(jié),文中給大家提到了python中加密的注意點(diǎn),通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
Python:一行代碼,導(dǎo)入Python所有庫(kù)
在本篇內(nèi)容里小編給大家分享如何用一行代碼,導(dǎo)入Python所有庫(kù),有需要的朋友們可以學(xué)習(xí)下,希望能夠給你帶來(lái)幫助2021-10-10
基于Pygame實(shí)現(xiàn)簡(jiǎn)單的貪吃蛇游戲
Pygame是一個(gè)專門用來(lái)開(kāi)發(fā)游戲的Python模塊,主要用于開(kāi)發(fā)、設(shè)計(jì)?2D?電子游戲。本文主要為大家介紹了通過(guò)Pygame制作一個(gè)簡(jiǎn)單的貪吃蛇游戲,感興趣的同學(xué)可以關(guān)注一下2021-12-12
Python實(shí)現(xiàn)暴力匹配算法(字符串匹配)
本文主要介紹了Python實(shí)現(xiàn)暴力匹配算法,其主要思想是逐個(gè)字符地比較文本串和模式串,從文本串的每個(gè)可能的起始位置開(kāi)始,依次檢查是否有匹配的子串,下面就來(lái)介紹 一下如何實(shí)現(xiàn)2023-09-09
聊聊通過(guò)celery_one避免Celery定時(shí)任務(wù)重復(fù)執(zhí)行的問(wèn)題
Celery Once 也是利用 Redis 加鎖來(lái)實(shí)現(xiàn), Celery Once 在 Task 類基礎(chǔ)上實(shí)現(xiàn)了 QueueOnce 類,該類提供了任務(wù)去重的功能,今天通過(guò)本文給大家介紹通過(guò)celery_one避免Celery定時(shí)任務(wù)重復(fù)執(zhí)行的問(wèn)題,感興趣的朋友一起看看吧2021-10-10
Python區(qū)塊鏈創(chuàng)建Block Class教程
這篇文章主要為大家介紹了Python區(qū)塊鏈創(chuàng)建Block Class教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

