Python pyecharts實(shí)現(xiàn)繪制中國(guó)地圖的實(shí)例詳解
實(shí)例演示
先給大家看下效果圖哈。
1.pyecharts 1.9.1 版本安裝與數(shù)據(jù)準(zhǔn)備
首先需要安裝 pyecharts 庫(kù),直接 pip install pyecharts 就好了。
新版本的話不需要單獨(dú)安裝地圖,如果是 0.5 版本是需要單獨(dú)安裝的,目前演示的是當(dāng)前最新版本 1.9.1
地圖數(shù)據(jù)如下:
因?yàn)槭侵袊?guó)地圖,所以對(duì)標(biāo)的省份,我設(shè)置了 2 組,里面的數(shù)據(jù)是隨機(jī)生成的。
# -*- coding:utf-8 -*- # 2022-1-14 # 作者:小藍(lán)棗 # pyecharts地圖 # 需要引用的庫(kù) from pyecharts import options as opts from pyecharts.charts import Map import random # 設(shè)置奧特曼所存在的相關(guān)省份,并設(shè)置初始數(shù)量為0 ultraman = [ ['四川', 0], ['臺(tái)灣', 0], ['新疆', 0], ['江西', 0], ['河南', 0], ['遼寧', 0], ['西藏', 0] ] # 設(shè)置怪獸存在的相關(guān)省份,并設(shè)置初始數(shù)量為0 monster = [ ['廣東', 0], ['北京', 0], ['上海', 0], ['江西', 0], ['湖南', 0], ['浙江', 0], ['江蘇', 0] ] def data_filling(array): ? ? '''? ? ? ?作用:給數(shù)組數(shù)據(jù)填充隨機(jī)數(shù) ? ? ''' ? ? for i in array: ? ? ? ? # 隨機(jī)生成1到1000的隨機(jī)數(shù) ? ? ? ? i[1] = random.randint(1,1000) ? ? ? ? print(i) data_filling(ultraman) data_filling(monster)
2.添加數(shù)據(jù)項(xiàng),默認(rèn)中國(guó)地圖顯示
首先演示下添加一組數(shù)據(jù),運(yùn)行后會(huì)生成一個(gè) html 文件,打開后就可以查看生成的地圖了。
def create_china_map(): ''' 作用:生成中國(guó)地圖 ''' ( Map() .add( series_name="怪獸", data_pair=monster, maptype="china", ) # 設(shè)置標(biāo)題 .set_global_opts(title_opts=opts.TitleOpts(title="中國(guó)地圖")) # 生成本地html文件 .render("中國(guó)地圖.html") )
然后演示下添加兩組數(shù)據(jù),只要再加個(gè) add() 函數(shù)就好了,非常方便。
def create_china_map(): ''' 作用:生成中國(guó)地圖 ''' ( Map() .add( series_name="奧特曼", data_pair=ultraman, maptype="china", ) .add( series_name="怪獸", data_pair=monster, maptype="china", ) # 設(shè)置標(biāo)題 .set_global_opts(title_opts=opts.TitleOpts(title="中國(guó)地圖")) # 生成本地html文件 .render("中國(guó)地圖.html") )
常用配置項(xiàng)及參數(shù)解析
1.設(shè)置是否默認(rèn)選中
默認(rèn)是選中的,添加 is_selected=False 參數(shù)可以設(shè)置默認(rèn)不顯示。
def create_china_map(): ? ? '''? ? ? ?作用:生成中國(guó)地圖 ? ? ''' ? ? ( ? ? ? ? Map() ? ? ? ? .add( ? ? ? ? ? ? series_name="奧特曼",? ? ? ? ? ? ? data_pair=ultraman,? ? ? ? ? ? ? maptype="china",? ? ? ? ? ? ? # 是否默認(rèn)選中 ? ? ? ? ? ? is_selected=False ? ? ? ? ) ? ? ? ? .add( ? ? ? ? ? ? series_name="怪獸",? ? ? ? ? ? ? data_pair=monster,? ? ? ? ? ? ? maptype="china",? ? ? ? ? ) ? ? ? ? # 設(shè)置標(biāo)題 ? ? ? ? .set_global_opts(title_opts=opts.TitleOpts(title="中國(guó)地圖")) ? ? ? ? # 生成本地html文件 ? ? ? ? .render("中國(guó)地圖.html") ? ? ) create_china_map()
可以看到默認(rèn)只顯示了怪獸的數(shù)據(jù)。
2.設(shè)置地圖顏色類型是否分段顯示
視覺映射配置項(xiàng) visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True) 可以設(shè)置為地圖顏色類型分段顯示,max_ 的值對(duì)應(yīng)的是數(shù)據(jù)的范圍,參數(shù) is_piecewise=True 表示為分段顯示。
def create_china_map(): ''' 作用:生成中國(guó)地圖 ''' ( Map() .add( series_name="奧特曼", data_pair=ultraman, maptype="china", # 是否默認(rèn)選中 is_selected=True ) .add( series_name="怪獸", data_pair=monster, maptype="china", ) .set_global_opts( # 設(shè)置標(biāo)題 title_opts=opts.TitleOpts(title="中國(guó)地圖"), # 設(shè)置分段顯示 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True) ) # 生成本地html文件 .render("中國(guó)地圖.html") )
分段顯示效果圖:
def create_china_map(): ''' 作用:生成中國(guó)地圖 ''' ( Map() .add( series_name="奧特曼", data_pair=ultraman, maptype="china", # 是否默認(rèn)選中 is_selected=True ) .add( series_name="怪獸", data_pair=monster, maptype="china", ) .set_global_opts( # 設(shè)置標(biāo)題 title_opts=opts.TitleOpts(title="中國(guó)地圖"), # 設(shè)置標(biāo)準(zhǔn)顯示 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False) ) # 生成本地html文件 .render("中國(guó)地圖.html") )
這是參數(shù)為 is_piecewise=False 的標(biāo)準(zhǔn)顯示。
3.縮放平移配置
參數(shù) is_roam=False 會(huì)控制不可進(jìn)行鼠標(biāo)縮放和平移。
def create_china_map(): ''' 作用:生成中國(guó)地圖 ''' ( Map() .add( series_name="奧特曼", data_pair=ultraman, maptype="china", # 是否默認(rèn)選中,默認(rèn)為True is_selected=True, # 是否啟用鼠標(biāo)滾輪縮放和拖動(dòng)平移,默認(rèn)為True is_roam=False ) .add( series_name="怪獸", data_pair=monster, maptype="china", ) .set_global_opts( # 設(shè)置標(biāo)題 title_opts=opts.TitleOpts(title="中國(guó)地圖"), # 設(shè)置標(biāo)準(zhǔn)顯示 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False) ) # 生成本地html文件 .render("中國(guó)地圖.html") )
參數(shù)啟用時(shí)鼠標(biāo)滾輪可以放大縮小圖像。
鼠標(biāo)可以左右拖動(dòng)使地圖平移。
優(yōu)先級(jí)聲明: a 數(shù)據(jù)設(shè)置為 False,b 數(shù)據(jù)設(shè)置為 True,不選中 a 數(shù)據(jù),也可以進(jìn)行縮放和平移拖動(dòng)。
4.啟用和關(guān)閉圖形標(biāo)記
參數(shù) is_map_symbol_show=False 可以關(guān)閉圖形標(biāo)記,關(guān)閉就不顯示點(diǎn)了。
def create_china_map(): ''' 作用:生成中國(guó)地圖 ''' ( Map() .add( series_name="奧特曼", data_pair=ultraman, maptype="china", # 是否默認(rèn)選中,默認(rèn)為True is_selected=True, # 是否啟用鼠標(biāo)滾輪縮放和拖動(dòng)平移,默認(rèn)為True is_roam=True, # 是否顯示圖形標(biāo)記,默認(rèn)為True is_map_symbol_show=False ) .add( series_name="怪獸", data_pair=monster, maptype="china", ) .set_global_opts( # 設(shè)置標(biāo)題 title_opts=opts.TitleOpts(title="中國(guó)地圖"), # 設(shè)置標(biāo)準(zhǔn)顯示 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False) ) # 生成本地html文件 .render("中國(guó)地圖.html") )
可以看到奧特曼相關(guān)區(qū)域的點(diǎn)已經(jīng)沒有了。
5.關(guān)閉標(biāo)簽名稱顯示
系列配置項(xiàng)的參數(shù) label_opts=opts.LabelOpts(is_show=False) 可以關(guān)閉標(biāo)簽名稱顯示。
def create_china_map(): ''' 作用:生成中國(guó)地圖 ''' ( Map() .add( series_name="奧特曼", data_pair=ultraman, maptype="china", # 是否默認(rèn)選中,默認(rèn)為True is_selected=True, # 是否啟用鼠標(biāo)滾輪縮放和拖動(dòng)平移,默認(rèn)為True is_roam=True, # 是否顯示圖形標(biāo)記,默認(rèn)為True is_map_symbol_show=False ) .add( series_name="怪獸", data_pair=monster, maptype="china", ) # 全局配置項(xiàng) .set_global_opts( # 設(shè)置標(biāo)題 title_opts=opts.TitleOpts(title="中國(guó)地圖"), # 設(shè)置標(biāo)準(zhǔn)顯示 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False), ) # 系列配置項(xiàng) # 關(guān)閉標(biāo)簽名稱顯示 .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 生成本地html文件 .render("中國(guó)地圖.html") )
可以看到省份的名稱不顯示了。
6.顏色設(shè)置:標(biāo)簽顏色、區(qū)域顏色、邊框顏色
系列配置項(xiàng)里的標(biāo)簽加上 color="bule" 參數(shù)可設(shè)置標(biāo)簽顏色為藍(lán)色。
圖元樣式配置的 areaColor 為區(qū)域顏色, borderColor 為邊框顏色,
其中 normal 為常規(guī)模式下的,emphasis 為強(qiáng)調(diào)樣式下的,即鼠標(biāo)移動(dòng)到區(qū)域上的顯示。
# 圖元樣式配置 itemstyle_opts={ # 常規(guī)顯示 "normal": {"areaColor": "white", "borderColor": "red"}, # 強(qiáng)調(diào)顏色 "emphasis": {"areaColor": "rgba(0,0,0,1)"} }
可以看到我鼠標(biāo)移動(dòng)到新疆顯示的為我設(shè)置的黑色,透明度為 1。
def create_china_map(): ''' 作用:生成中國(guó)地圖 ''' ( Map() .add( series_name="奧特曼", data_pair=ultraman, maptype="china", # 是否默認(rèn)選中,默認(rèn)為True is_selected=True, # 是否啟用鼠標(biāo)滾輪縮放和拖動(dòng)平移,默認(rèn)為True is_roam=True, # 是否顯示圖形標(biāo)記,默認(rèn)為True is_map_symbol_show=False, # 圖元樣式配置 itemstyle_opts={ # 常規(guī)顯示 "normal": {"areaColor": "white", "borderColor": "red"}, # 強(qiáng)調(diào)顏色 "emphasis": {"areaColor": "rgba(0,0,0,1)"} } ) .add( series_name="怪獸", data_pair=monster, maptype="china", ) # 全局配置項(xiàng) .set_global_opts( # 設(shè)置標(biāo)題 title_opts=opts.TitleOpts(title="中國(guó)地圖"), # 設(shè)置標(biāo)準(zhǔn)顯示 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False) ) # 系列配置項(xiàng) .set_series_opts( # 標(biāo)簽名稱顯示,默認(rèn)為True label_opts=opts.LabelOpts(is_show=True, color="blue") ) # 生成本地html文件 .render("中國(guó)地圖.html") )
以上就是Python pyecharts實(shí)現(xiàn)繪制中國(guó)地圖的實(shí)例詳解的詳細(xì)內(nèi)容,更多關(guān)于Python pyecharts繪制中國(guó)地圖的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
numpy給array增加維度np.newaxis的實(shí)例
今天小編就為大家分享一篇numpy給array增加維度np.newaxis的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2018-11-11python使用requests庫(kù)提交multipart/form-data請(qǐng)求的方法詳解
multipart/form-data的基礎(chǔ)是post請(qǐng)求,即基于post請(qǐng)求來(lái)實(shí)現(xiàn)的 ,下面這篇文章主要給大家介紹了關(guān)于python使用requests庫(kù)提交multipart/form-data請(qǐng)求的相關(guān)資料,需要的朋友可以參考下2023-01-01Python 語(yǔ)言實(shí)現(xiàn)六大查找算法
本文給大家分享Python 語(yǔ)言實(shí)現(xiàn)六大查找算法,針對(duì)每種算法通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-06-06Python: tkinter窗口屏幕居中,設(shè)置窗口最大,最小尺寸實(shí)例
這篇文章主要介紹了Python: tkinter窗口屏幕居中,設(shè)置窗口最大,最小尺寸實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-03-03Python基于FTP模塊實(shí)現(xiàn)ftp文件上傳操作示例
這篇文章主要介紹了Python基于FTP模塊實(shí)現(xiàn)ftp文件上傳操作,結(jié)合實(shí)例形式分析了Python引入ftp模塊及相關(guān)設(shè)置、文件傳輸?shù)炔僮骷记?需要的朋友可以參考下2018-04-04Python實(shí)現(xiàn)的監(jiān)測(cè)服務(wù)器硬盤使用率腳本分享
這篇文章主要介紹了Python實(shí)現(xiàn)的監(jiān)測(cè)服務(wù)器硬盤使用率腳本分享,本文腳本適應(yīng)windows和linux系統(tǒng),需要的朋友可以參考下2014-11-11使用gunicorn部署django項(xiàng)目的問題
這篇文章主要介紹了使用gunicorn部署django項(xiàng)目,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12