Python pyecharts實現繪制中國地圖的實例詳解

實例演示

先給大傢看下效果圖哈。

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)

2.添加數據項,默認中國地圖顯示

首先演示下添加一組數據,運行後會生成一個 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")
    )

常用配置項及參數解析

1.設置是否默認選中

默認是選中的,添加 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()

可以看到默認隻顯示瞭怪獸的數據。

2.設置地圖顏色類型是否分段顯示

視覺映射配置項 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 的標準顯示。

3.縮放平移配置

參數 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 數據,也可以進行縮放和平移拖動。

4.啟用和關閉圖形標記

參數 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")
    )

可以看到奧特曼相關區域的點已經沒有瞭。

5.關閉標簽名稱顯示

系列配置項的參數 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")
    )

可以看到省份的名稱不顯示瞭。

6.顏色設置:標簽顏色、區域顏色、邊框顏色

系列配置項裡的標簽加上 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")
    )

以上就是Python pyecharts實現繪制中國地圖的實例詳解的詳細內容,更多關於Python pyecharts繪制中國地圖的資料請關註WalkonNet其它相關文章!

推薦閱讀: