Pyecharts繪制可視化地球?qū)崿F(xiàn)示例
正文
今天我們使用 Pyecharts 制作一個地球可視化項目,一起來看看吧
Let’s go!
數(shù)據(jù)處理
這里我們使用全球新冠感染人數(shù)的數(shù)據(jù)集作為我們的測試數(shù)據(jù),先來看看數(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 字段就是國家當(dāng)前的累計總確診人數(shù)
下面就提取國家和確診人數(shù)
covid_data = df_new[['location', 'total_cases']].values.tolist()
Output:
Pyecharts 繪圖
通過 Pyecharts 繪制地球圖,在官網(wǎng)上有很詳細(xì)的例子,我們直接套用即可
首先導(dǎo)入相關(guān)庫
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()
這樣我們得到如下全球各國新管確診人數(shù)分布圖
部署為 Web 服務(wù)
當(dāng)前我們所有的代碼都是運行在 Jupyter 當(dāng)中的,如果要分享給其他人,并不是十分的方便,我們可以將整體代碼部署成一個 Web 服務(wù),這樣其他人就可以方便的通過瀏覽器來查看該地球圖了
我們先創(chuàng)建項目目錄,命名為 flask_map
,再將本地安裝的 Pyecharts
目錄下的 templates
文件夾拷貝到該目錄下,同時再創(chuàng)建 data
文件夾和 main.py
文件,Pyecharts 模板位置如下:
pyecharts.render.templates
我們將數(shù)據(jù)集 owid-covid-data.csv
放到 data
文件夾下,再編寫 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)我們啟動 Flask 服務(wù)器之后,只需要訪問根目錄(/),就會在 templates
目錄下生成 Map.html
文件,也會在瀏覽器正常展示地球圖了
tup2
至于如何將本地 Web 應(yīng)用部署到公網(wǎng)上,我們在后面的文章中再介紹吧!
更多關(guān)于Pyecharts繪制可視化地球的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python如何實現(xiàn)轉(zhuǎn)換URL詳解
這篇文章主要介紹了Python如何實現(xiàn)轉(zhuǎn)換URL詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07提升Python Scrapy庫數(shù)據(jù)采集速度實現(xiàn)高效爬蟲
Scrapy是一個強(qiáng)大而靈活的Python爬蟲框架,被廣泛用于數(shù)據(jù)采集、網(wǎng)站抓取和網(wǎng)絡(luò)爬蟲開發(fā),本文將深入介紹Scrapy的功能和用法,并提供豐富的示例代碼,幫助更好地理解和應(yīng)用2023-11-11關(guān)于PyTorch源碼解讀之torchvision.models
今天小編就為大家分享一篇關(guān)于PyTorch源碼解讀之torchvision.models,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08django 文件上傳功能的相關(guān)實例代碼(簡單易懂)
這篇文章主要介紹了django 文件上傳功能的相關(guān)實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01python GUI庫圖形界面開發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細(xì)使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5 MDI(多文檔窗口)QMidArea詳細(xì)使用方法與實例,需要的朋友可以參考下2020-03-03pycharm實現(xiàn)在虛擬環(huán)境中引入別人的項目
這篇文章主要介紹了pycharm實現(xiàn)在虛擬環(huán)境中引入別人的項目,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03