欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?pyecharts?Map地圖數(shù)據(jù)不顯示的原因及完美解決

 更新時(shí)間:2023年12月14日 08:30:49   作者:_考不上研究生不改名  
這篇文章主要給大家介紹了關(guān)于Python?pyecharts?Map地圖數(shù)據(jù)不顯示的原因及解決辦法,pyecharts是一款將python與echarts結(jié)合的強(qiáng)大的數(shù)據(jù)可視化工具,文中通過圖文以及代碼示例介紹的非常詳細(xì),需要的朋友可以參考下

項(xiàng)目場景

Python數(shù)據(jù)可視化,使用 Pyecharts.charts 模塊中的Map,并導(dǎo)入數(shù)據(jù)來構(gòu)建全國疫情熱力地圖

問題描述

本人在學(xué)習(xí)該章節(jié)課程時(shí),代碼和視頻中的代碼是完全一致的,但是生成的地圖卻和視頻中不一樣,生成結(jié)果中,不顯示地圖熱力和數(shù)據(jù),問題代碼及運(yùn)行結(jié)果如下:

import json
from pyecharts.charts import Map
from pyecharts.options import *

# 讀取數(shù)據(jù)文件
f = open("C:\\Users\\18379\\Desktop\\可視化案例數(shù)據(jù)\\地圖數(shù)據(jù)\\疫情.txt", "r", encoding="UTF-8")
data = f.read()
# 關(guān)閉文件
f.close()

# 將字符串json轉(zhuǎn)換為python的字典
data_dict = json.loads(data)

# 從字典中取出省份的數(shù)據(jù)
province_data_list = data_dict["areaTree"][0]["children"]

# 組裝每個省份和確診人數(shù)為元組,并各個省的數(shù)據(jù)都封裝入列表內(nèi)
data_list = []
for province_data in province_data_list:
    province_name = province_data["name"]
    province_confirm = province_data["total"]["confirm"]
    data_list.append((province_name, province_confirm))

# 創(chuàng)建地圖對象
map = Map()

# 添加數(shù)據(jù)
map.add("各省份確診人數(shù)", data_list, "china")

# 設(shè)置全局配置,定制分段的視覺映射
map.set_global_opts(
    title_opts=TitleOpts(title="全國疫情地圖"),
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
            {"min": 1, "max": 99, "lable": "1~99人", "color": "#CCFFFF"},
            {"min": 100, "max": 999, "lable": "100~9999人", "color": "#FFFF99"},
            {"min": 1000, "max": 4999, "lable": "1000~4999人", "color": "#FF9966"},
            {"min": 5000, "max": 9999, "lable": "5000~99999人", "color": "#FF6666"},
            {"min": 10000, "max": 99999, "lable": "10000~99999人", "color": "#CC3333"},
            {"min": 100000, "lable": "100000+", "color": "#990033"},
        ]
    )
)

# 繪圖
map.render("全國疫情地圖.html")

運(yùn)行結(jié)果:

原因分析

在代碼和所使用數(shù)據(jù)完全一致的情況下,仍然得不到正確的結(jié)果,所以只能去考慮是不是pyecharts版本問題,該視頻上傳時(shí)間是在2022年8月,時(shí)隔一年很可能是pyecharts版本進(jìn)行了更新,導(dǎo)致代碼出現(xiàn)bug,此時(shí)我們再仔細(xì)觀察視頻中生成的地圖,與自己生成的地圖進(jìn)行對比,能夠發(fā)現(xiàn)一些問題,對比如下:

通過以上對比很明顯能夠發(fā)現(xiàn),兩者省份名稱不對應(yīng),所以可以大膽猜測,是不是從文本數(shù)據(jù)中提取出的省份信息與Map中內(nèi)置的省份名稱不對應(yīng)所導(dǎo)致的數(shù)據(jù)不能正常顯示呢?下面我們來驗(yàn)證一下自己的想法。

解決方案

第一步:

我們通過for循環(huán)從文本中提取各省份對應(yīng)數(shù)據(jù),得到 data_list 后先打印一下其中的內(nèi)容看一眼,顯然列表中的省份名稱與視頻中生成地圖的省份名稱是對應(yīng)的,而與我們生成地圖中的省份名稱不對應(yīng)。

第二步:

嘗試更改 data_list 中省份名稱,使其與Map中省份名稱對應(yīng),在for循環(huán)體中增加如下代碼,來處理省份不匹配問題。

注意:23個省 + 5個自治區(qū) + 4個直轄市 +2個特別行政區(qū)

# 組裝每個省份和確診人數(shù)為元組,并各個省的數(shù)據(jù)都封裝入列表內(nèi)
data_list = []
for province_data in province_data_list:
    province_name = province_data["name"]
    province_confirm = province_data["total"]["confirm"]
    
    #處理省份不匹配問題
    if province_name == "新疆":
        province_name = "新疆維吾爾自治區(qū)"
    elif province_name == "廣西":
        province_name = "廣西壯族自治區(qū)"
    elif province_name == "寧夏":
        province_name = "寧夏回族自治區(qū)"
    elif province_name in ["內(nèi)蒙古","西藏"]:
        province_name = province_name + "自治區(qū)"
    elif province_name in ["北京","天津","重慶","上海"]:
        province_name = province_name + "市"
    elif province_name in ["香港","澳門"]:
        province_name = province_name + "特別行政區(qū)"
    else:
        province_name = province_name + "省"
        
    data_list.append((province_name, province_confirm))
print(data_list)

第三步:

重新運(yùn)行并打印 data_list ,此時(shí)省份名稱已更改,查看地圖,熱力和數(shù)據(jù)正常顯示,問題解決!

完整代碼

import json
from pyecharts.charts import Map
from pyecharts.options import *

# 讀取數(shù)據(jù)文件
f = open("C:\\Users\\18379\\Desktop\\可視化案例數(shù)據(jù)\\地圖數(shù)據(jù)\\疫情.txt", "r", encoding="UTF-8")
data = f.read()
# 關(guān)閉文件
f.close()

# 將字符串json轉(zhuǎn)換為python的字典
data_dict = json.loads(data)

# 從字典中取出省份的數(shù)據(jù)
province_data_list = data_dict["areaTree"][0]["children"]

# 組裝每個省份和確診人數(shù)為元組,并各個省的數(shù)據(jù)都封裝入列表內(nèi)
data_list = []
for province_data in province_data_list:
    province_name = province_data["name"]
    province_confirm = province_data["total"]["confirm"]
    
    #處理省份不匹配問題
    if province_name == "新疆":
        province_name = "新疆維吾爾自治區(qū)"
    elif province_name == "廣西":
        province_name = "廣西壯族自治區(qū)"
    elif province_name == "寧夏":
        province_name = "寧夏回族自治區(qū)"
    elif province_name in ["內(nèi)蒙古","西藏"]:
        province_name = province_name + "自治區(qū)"
    elif province_name in ["北京","天津","重慶","上海"]:
        province_name = province_name + "市"
    elif province_name in ["香港","澳門"]:
        province_name = province_name + "特別行政區(qū)"
    else:
        province_name = province_name + "省"
        
    data_list.append((province_name, province_confirm))
print(data_list)

# 創(chuàng)建地圖對象
map = Map()

# 添加數(shù)據(jù)
map.add("各省份確診人數(shù)", data_list, "china")

# 設(shè)置全局配置,定制分段的視覺映射
map.set_global_opts(
    title_opts=TitleOpts(title="全國疫情地圖"),
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
            {"min": 1, "max": 99, "lable": "1~99人", "color": "#CCFFFF"},
            {"min": 100, "max": 999, "lable": "100~9999人", "color": "#FFFF99"},
            {"min": 1000, "max": 4999, "lable": "1000~4999人", "color": "#FF9966"},
            {"min": 5000, "max": 9999, "lable": "5000~99999人", "color": "#FF6666"},
            {"min": 10000, "max": 99999, "lable": "10000~99999人", "color": "#CC3333"},
            {"min": 100000, "lable": "100000+", "color": "#990033"},
        ]
    )
)

# 繪圖
map.render("全國疫情地圖.html")

總結(jié)

到此這篇關(guān)于Python pyecharts Map地圖數(shù)據(jù)不顯示的原因及完美解決的文章就介紹到這了,更多相關(guān)pyecharts Map地圖數(shù)據(jù)不顯示內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python Selenium 設(shè)置元素等待的三種方式

    Python Selenium 設(shè)置元素等待的三種方式

    這篇文章主要介紹了Python Selenium 設(shè)置元素等待的三種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Pyqt5如何讓QMessageBox按鈕顯示中文示例代碼

    Pyqt5如何讓QMessageBox按鈕顯示中文示例代碼

    這篇文章主要給大家介紹了關(guān)于Pyqt5如何讓QMessageBox按鈕顯示中文的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Pyqt5具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 圖鄰接矩陣可視化解析

    圖鄰接矩陣可視化解析

    這篇文章主要介紹了基于圖鄰接矩陣可視化解析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 實(shí)例講解python中的序列化知識點(diǎn)

    實(shí)例講解python中的序列化知識點(diǎn)

    本篇文章通過代碼實(shí)例給大家詳細(xì)分享了關(guān)于python中的序列化知識點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2018-10-10
  • Python利用splinter實(shí)現(xiàn)瀏覽器自動化操作方法

    Python利用splinter實(shí)現(xiàn)瀏覽器自動化操作方法

    今天小編就為大家分享一篇Python利用splinter實(shí)現(xiàn)瀏覽器自動化操作方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python中import學(xué)習(xí)備忘筆記

    python中import學(xué)習(xí)備忘筆記

    python中的import語句是用來導(dǎo)入模塊的,在python模塊庫中有著大量的模塊可供使用,要想使用這些文件需要用import語句把指定模塊導(dǎo)入到當(dāng)前程序中。下面這篇文章主要給大家介紹了python中import學(xué)習(xí)的相關(guān)資料,需要的朋友可以參考借鑒。
    2017-01-01
  • Pycharm關(guān)閉控制臺多余窗口的解決辦法

    Pycharm關(guān)閉控制臺多余窗口的解決辦法

    這篇文章主要介紹了Pycharm關(guān)閉控制臺多余窗口的解決辦法,文中通過圖文結(jié)合的方式講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-12-12
  • 利用Python模擬登錄pastebin.com的實(shí)現(xiàn)方法

    利用Python模擬登錄pastebin.com的實(shí)現(xiàn)方法

    這篇文章主要介紹了利用Python模擬登錄pastebin.com的實(shí)現(xiàn)方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • Python使用chrome配置selenium操作詳解

    Python使用chrome配置selenium操作詳解

    這篇文章主要為大家詳細(xì)介紹了chrome配置selenium操作的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • tensorflow 大于某個值為1,小于為0的實(shí)例

    tensorflow 大于某個值為1,小于為0的實(shí)例

    這篇文章主要介紹了tensorflow 大于某個值為1,小于為0的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06

最新評論