用 Python 繪制中國城市地圖數(shù)據(jù)主要用于對地理數(shù)據(jù)進(jìn)行可視化分析。這種方法可以幫助您更直觀地了解數(shù)據(jù)的分布情況,并為您提供關(guān)于數(shù)據(jù)之間的相關(guān)性的更深入的理解。例如,您可以通過使用地圖數(shù)據(jù)繪制中國城市人口分布圖,以了解每個城市的人口數(shù)量和密度。您還可以通過使用地圖數(shù)據(jù)繪制中國城市的經(jīng)濟(jì)數(shù)據(jù),以了解每個城市的經(jīng)濟(jì)活動情況,包括貿(mào)易額、工業(yè)產(chǎn)值等。本例,我們利用 pandas 和 pyecharts 來完成相關(guān)需求。
首先生成測試數(shù)據(jù),并讀取為 pandas 的 DataFrame,隨機(jī)數(shù)據(jù)用 Python 內(nèi)置的 random。
import pandas as pd
import random
random.seed(66)
random.seed(66)
cities = ['北京市', '上海市', '廣州市', '深圳市', '天津市',
'武漢市', '重慶市', '成都市', '東莞市', '西安市',
'沈陽市', '青島市', '大連市', '寧波市', '廈門市',
'長沙市', '哈爾濱市', '南京市', '鄭州市', '合肥市',
'蘇州市', '常州市', '無錫市', '昆明市', '南昌市',
'南寧市', '濟(jì)南市', '長春市', '福州市', '佛山市',
'溫州市', '石家莊市', '太原市', '唐山市', '煙臺市',
'中山市', '泉州市', '南通市', '揚(yáng)州市', '徐州市',
'鹽城市', '淄博市', '洛陽市', '柳州市', '泰州市',
'麗江市', '??谑?, '三亞市', '長治市', '桂林市',
'大慶市', '蘭州市', '貴陽市', '南陽市', '邯鄲市',
'保定市', '呼和浩特市', '滄州市', '廊坊市', '衡陽市',
'商丘市', '南充市', '臨沂市', '漯河市', '阜陽市',
'景德鎮(zhèn)市', '江門市', '茂名市', '惠州市', '蕪湖市',
'淮安市', '馬鞍山市', '綿陽市', '烏魯木齊市', '拉薩市',
'西寧市', '德陽市', '紹興市', '金華市', '嘉興市']
df = pd.DataFrame({'城市': cities,
'數(shù)值': [random.randint(1, 20) for i in cities]
})
df.head()
'''
城市 數(shù)值
0 北京市 3
1 上海市 10
2 廣州市 14
3 深圳市 8
4 天津市 15
'''
數(shù)據(jù)生成完成,接下來我們開始分析如何完成需求。
Pyecharts是一款開源的 Python 圖表繪制庫,支持多種圖表類型的繪制,例如餅圖,折線圖,散點(diǎn)圖,條形圖,柱形圖等。同時它還支持生成地圖圖表。
使用 Pyecharts 生成地圖圖表需要以下步驟:
pip install pyecharts
from pyecharts import options as opts
from pyecharts.charts import Map
以上是生成地圖圖表的基本流程。Pyecharts 提供了豐富的配置選項(xiàng),可以根據(jù)需要調(diào)整圖表樣式。
在這個需求中,我們用它來完成。
先導(dǎo)入相關(guān)的庫,同時將 Notebook 設(shè)置為我們使用的 jupyterlab:
from pyecharts import options as opts
from pyecharts.globals import CurrentConfig
from pyecharts.charts import Map
import pandas as pd
CurrentConfig.NOTEBOOK_TYPE = 'jupyter_lab'
先將數(shù)據(jù)構(gòu)造成 pyecharts 需要的列表對為元素的列表,這里用到 pandas 的應(yīng)用方法操作:
data = df.loc[:, '城市':].apply(list, axis=1).to_list()
data
'''
[['北京市', 3],
['上海市', 10],
['廣州市', 14],
...
['金華市', 20],
['嘉興市', 17]]
'''
接下來編寫地圖展示功能:
c = (
Map(init_opts=opts.InitOpts(width='1100px', height='1000px'))
.add(
'城市',
data,
'china-cities',
label_opts=opts.LabelOpts(is_show=False),
is_map_symbol_show=False,
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(min_=0,
max_=20,
is_show=False),
legend_opts=opts.LegendOpts(is_show=False)
)
# .render('map_china_cities.html')
)
分別在不同的 jupyterlab 單元格執(zhí)行以下代碼就可以看到地圖可視化效果。
c.load_javascript()
c.render_notebook()
以上 Python 代碼主要是使用了 pyecharts 庫和 pandas 庫來繪制中國地圖,并將某個城市的數(shù)據(jù)可視化展示。
這樣就完成發(fā)需求,可以修改以上參數(shù)的值重新執(zhí)行查看結(jié)果以理解它們的作用。
(完)
聯(lián)系客服