使用 pyecharts 繪制中國地圖實體詳解
- 第一章:實體演示
- ① pyecharts 1.9.1 版本安裝與資料準備
- ② 添加資料項,默認中國地圖顯示
- 第二章:常用配置項及引數決議
- ① 設定是否默認選中
- ② 設定地圖顏色型別是否分段顯示
- ③ 縮放平移配置
- ④ 啟用和關閉圖形標記
- ⑤ 關閉標簽名稱顯示
- ⑥ 顏色設定:標簽顏色、區域顏色、邊框顏色
第一章:實體演示
先給大家看下效果圖哈,

① pyecharts 1.9.1 版本安裝與資料準備
首先需要安裝 pyecharts 庫,直接 pip install pyecharts 就好了,
新版本的話不需要單獨安裝地圖,如果是 0.5 版本是需要單獨安裝的,目前演示的是當前最新版本 1.9.1
地圖資料如下:
因為是中國地圖,所以對標的省份,我設定了 2 組,里面的資料是隨機生成的,
# -*- coding:utf-8 -*-
# 2022-1-14
# 作者:小藍棗
# pyecharts地圖
# 需要參考的庫
from pyecharts import options as opts
from pyecharts.charts import Map
import random
# 設定奧特曼所存在的相關省份,并設定初始數量為0
ultraman = [
['四川', 0],
['臺灣', 0],
['新疆', 0],
['江西', 0],
['河南', 0],
['遼寧', 0],
['西藏', 0]
]
# 設定怪獸存在的相關省份,并設定初始數量為0
monster = [
['廣東', 0],
['北京', 0],
['上海', 0],
['江西', 0],
['湖南', 0],
['浙江', 0],
['江蘇', 0]
]
def data_filling(array):
'''
作用:給陣列資料填充亂數
'''
for i in array:
# 隨機生成1到1000的亂數
i[1] = random.randint(1,1000)
print(i)
data_filling(ultraman)
data_filling(monster)
② 添加資料項,默認中國地圖顯示
首先演示下添加一組資料,運行后會生成一個 html 檔案,打開后就可以查看生成的地圖了,

def create_china_map():
'''
作用:生成中國地圖
'''
(
Map()
.add(
series_name="怪獸",
data_pair=monster,
maptype="china",
)
# 設定標題
.set_global_opts(title_opts=opts.TitleOpts(title="中國地圖"))
# 生成本地html檔案
.render("中國地圖.html")
)

然后演示下添加兩組資料,只要再加個 add() 函式就好了,非常方便,
def create_china_map():
'''
作用:生成中國地圖
'''
(
Map()
.add(
series_name="奧特曼",
data_pair=ultraman,
maptype="china",
)
.add(
series_name="怪獸",
data_pair=monster,
maptype="china",
)
# 設定標題
.set_global_opts(title_opts=opts.TitleOpts(title="中國地圖"))
# 生成本地html檔案
.render("中國地圖.html")
)

第二章:常用配置項及引數決議
① 設定是否默認選中
默認是選中的,添加 is_selected=False 引數可以設定默認不顯示,
def create_china_map():
'''
作用:生成中國地圖
'''
(
Map()
.add(
series_name="奧特曼",
data_pair=ultraman,
maptype="china",
# 是否默認選中
is_selected=False
)
.add(
series_name="怪獸",
data_pair=monster,
maptype="china",
)
# 設定標題
.set_global_opts(title_opts=opts.TitleOpts(title="中國地圖"))
# 生成本地html檔案
.render("中國地圖.html")
)
create_china_map()
可以看到默認只顯示了怪獸的資料,

② 設定地圖顏色型別是否分段顯示
視覺映射配置項 visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True) 可以設定為地圖顏色型別分段顯示,max_ 的值對應的是資料的范圍,引數 is_piecewise=True 表示為分段顯示,
def create_china_map():
'''
作用:生成中國地圖
'''
(
Map()
.add(
series_name="奧特曼",
data_pair=ultraman,
maptype="china",
# 是否默認選中
is_selected=True
)
.add(
series_name="怪獸",
data_pair=monster,
maptype="china",
)
.set_global_opts(
# 設定標題
title_opts=opts.TitleOpts(title="中國地圖"),
# 設定分段顯示
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=True)
)
# 生成本地html檔案
.render("中國地圖.html")
)
分段顯示效果圖:

def create_china_map():
'''
作用:生成中國地圖
'''
(
Map()
.add(
series_name="奧特曼",
data_pair=ultraman,
maptype="china",
# 是否默認選中
is_selected=True
)
.add(
series_name="怪獸",
data_pair=monster,
maptype="china",
)
.set_global_opts(
# 設定標題
title_opts=opts.TitleOpts(title="中國地圖"),
# 設定標準顯示
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False)
)
# 生成本地html檔案
.render("中國地圖.html")
)
這是引數為 is_piecewise=False 的標準顯示,

③ 縮放平移配置
引數 is_roam=False 會控制不可進行滑鼠縮放和平移,
def create_china_map():
'''
作用:生成中國地圖
'''
(
Map()
.add(
series_name="奧特曼",
data_pair=ultraman,
maptype="china",
# 是否默認選中,默認為True
is_selected=True,
# 是否啟用滑鼠滾輪縮放和拖動平移,默認為True
is_roam=False
)
.add(
series_name="怪獸",
data_pair=monster,
maptype="china",
)
.set_global_opts(
# 設定標題
title_opts=opts.TitleOpts(title="中國地圖"),
# 設定標準顯示
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False)
)
# 生成本地html檔案
.render("中國地圖.html")
)
引數啟用時滑鼠滾輪可以放大縮小影像,

滑鼠可以左右拖動使地圖平移,
優先級宣告: a 資料設定為 False,b 資料設定為 True,不選中 a 資料,也可以進行縮放和平移拖動,

④ 啟用和關閉圖形標記
引數 is_map_symbol_show=False 可以關閉圖形標記,關閉就不顯示點了,
def create_china_map():
'''
作用:生成中國地圖
'''
(
Map()
.add(
series_name="奧特曼",
data_pair=ultraman,
maptype="china",
# 是否默認選中,默認為True
is_selected=True,
# 是否啟用滑鼠滾輪縮放和拖動平移,默認為True
is_roam=True,
# 是否顯示圖形標記,默認為True
is_map_symbol_show=False
)
.add(
series_name="怪獸",
data_pair=monster,
maptype="china",
)
.set_global_opts(
# 設定標題
title_opts=opts.TitleOpts(title="中國地圖"),
# 設定標準顯示
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False)
)
# 生成本地html檔案
.render("中國地圖.html")
)
可以看到奧特曼相關區域的點已經沒有了,

⑤ 關閉標簽名稱顯示
系列配置項的引數 label_opts=opts.LabelOpts(is_show=False) 可以關閉標簽名稱顯示,
def create_china_map():
'''
作用:生成中國地圖
'''
(
Map()
.add(
series_name="奧特曼",
data_pair=ultraman,
maptype="china",
# 是否默認選中,默認為True
is_selected=True,
# 是否啟用滑鼠滾輪縮放和拖動平移,默認為True
is_roam=True,
# 是否顯示圖形標記,默認為True
is_map_symbol_show=False
)
.add(
series_name="怪獸",
data_pair=monster,
maptype="china",
)
# 全域配置項
.set_global_opts(
# 設定標題
title_opts=opts.TitleOpts(title="中國地圖"),
# 設定標準顯示
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False),
)
# 系列配置項
# 關閉標簽名稱顯示
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 生成本地html檔案
.render("中國地圖.html")
)
可以看到省份的名稱不顯示了,

⑥ 顏色設定:標簽顏色、區域顏色、邊框顏色
系列配置項里的標簽加上 color="bule" 引數可設定標簽顏色為藍色,
圖元樣式配置的 areaColor 為區域顏色, borderColor 為邊框顏色,
其中 normal 為常規模式下的,emphasis 為強調樣式下的,即滑鼠移動到區域上的顯示,
# 圖元樣式配置
itemstyle_opts={
# 常規顯示
"normal": {"areaColor": "white", "borderColor": "red"},
# 強調顏色
"emphasis": {"areaColor": "rgba(0,0,0,1)"}
}
可以看到我滑鼠移動到新疆顯示的為我設定的黑色,透明度為 1,

def create_china_map():
'''
作用:生成中國地圖
'''
(
Map()
.add(
series_name="奧特曼",
data_pair=ultraman,
maptype="china",
# 是否默認選中,默認為True
is_selected=True,
# 是否啟用滑鼠滾輪縮放和拖動平移,默認為True
is_roam=True,
# 是否顯示圖形標記,默認為True
is_map_symbol_show=False,
# 圖元樣式配置
itemstyle_opts={
# 常規顯示
"normal": {"areaColor": "white", "borderColor": "red"},
# 強調顏色
"emphasis": {"areaColor": "rgba(0,0,0,1)"}
}
)
.add(
series_name="怪獸",
data_pair=monster,
maptype="china",
)
# 全域配置項
.set_global_opts(
# 設定標題
title_opts=opts.TitleOpts(title="中國地圖"),
# 設定標準顯示
visualmap_opts=opts.VisualMapOpts(max_=1000, is_piecewise=False)
)
# 系列配置項
.set_series_opts(
# 標簽名稱顯示,默認為True
label_opts=opts.LabelOpts(is_show=True, color="blue")
)
# 生成本地html檔案
.render("中國地圖.html")
)
喜歡的點個贊?吧!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/414033.html
標籤:python
