pyecharts繪畫優美圖形之一:最全地圖

 

有時我們會很希望把數據展示在地圖上,來做數據可視化,使數據更加清晰明瞭,可謂一圖勝百文。先說說我用地圖做什麼了:微信好友全國分佈,顯示票房省份數據,全國評分顯示等等,我這個語言能力很是頭疼啊,進入正題吧!

中國地圖.png

這裏選用的是pyecharts模塊,雖然python有自帶的畫圖模塊,matplotlib,但他是靜態圖,後來發現了pyecharts模塊,瞬間愛上了這個模塊,這種動態效果,數據好處理,簡直簡直太好用了,後面我會繼續更新該模塊其他畫圖功能
在使用地圖前需要安裝一下適合自己的地圖包:
要記得安裝對應的地圖拓展:

選擇自己需要的安裝
$ pip install echarts-countries-pypkg
$ pip install echarts-china-provinces-pypkg
$ pip install echarts-china-cities-pypkg
$ pip install echarts-china-counties-pypkg
$ pip install echarts-china-misc-pypkg
$ pip install echarts-united-kingdom-pypkg

主要地圖來源於這兩個 Map, Geo

from pyecharts import Map, Geo

先定義一下數據

# 世界地圖數據
value = [95.1, 23.2, 43.3, 66.4, 88.5]
attr= ["China", "Canada", "Brazil", "Russia", "United States"]

# 省和直轄市
province_distribution = {'河南': 45.23, '北京': 37.56, '河北': 21, '遼寧': 12, '江西': 6, '上海': 20, '安徽': 10, '江蘇': 16, '湖南': 9, '浙江': 13, '海南': 2, '廣東': 22, '湖北': 8, '黑龍江': 11, '澳門': 1, '陝西': 11, '四川': 7, '內蒙古': 3, '重慶': 3, '雲南': 6, '貴州': 2, '吉林': 3, '山西': 12, '山東': 11, '福建': 4, '青海': 1, '舵主科技,質量保證': 1, '天津': 1, '其他': 1}
provice=list(province_distribution.keys())
values=list(province_distribution.values())

# 城市 -- 指定省的城市 xx市
city = ['鄭州市', '安陽市', '洛陽市', '濮陽市', '南陽市', '開封市', '商丘市', '信陽市', '新鄉市']
values2 = [1.07, 3.85, 6.38, 8.21, 2.53, 4.37, 9.38, 4.29, 6.1]

# 區縣 -- 具體城市內的區縣  xx縣
quxian = ['夏邑縣', '民權縣', '梁園區', '睢陽區', '柘城縣', '寧陵縣']
values3 = [3, 5, 7, 8, 2, 4]

世界地圖:

map0 = Map("世界地圖示例", width=1200, height=600)
map0.add("世界地圖", attr, value, maptype="world",  is_visualmap=True, visual_text_color='#000')
map0.render(path="./data/04-00世界地圖.html")

世界地圖

中國地圖

# maptype='china' 只顯示全國直轄市和省級
# 數據只能是省名和直轄市的名稱
map = Map("中國地圖",'中國地圖', width=1200, height=600)
map.add("", provice, values, visual_range=[0, 50],  maptype='china', is_visualmap=True,
    visual_text_color='#000')
map.show_config()
map.render(path="./data/04-01中國地圖.html")

中國地圖.png

省份地圖

# 河南地圖  數據必須是省內放入城市名
map2 = Map("河南地圖",'河南', width=1200, height=600)
map2.add('河南', city, values2, visual_range=[1, 10], maptype='河南', is_visualmap=True, visual_text_color='#000')
map2.show_config()
map2.render(path="./data/04-02河南地圖.html")

省份地圖

區縣地圖

# # 商丘地圖 數據爲商丘市下的區縣
map3 = Map("商丘地圖",'商丘', width=1200, height=600)
map3.add("商丘", quxian, values3, visual_range=[1, 10], maptype='商丘', is_visualmap=True,
    visual_text_color='#000')
map3.render(path="./data/04-03商丘地圖.html")

區縣地圖.png

下面的這兩個可直接使用全國城市

熱力分佈圖

data = [
("海門", 9),("鄂爾多斯", 12),("招遠", 12),("舟山", 12),("齊齊哈爾", 14),("鹽城", 15),
("赤峯", 16),("青島", 18),("乳山", 18),("金昌", 19),("泉州", 21),("萊西", 21),
("日照", 21),("膠南", 22),("南通", 23),("拉薩", 24),("雲浮", 24),("梅州", 25)]

attr, value = geo.cast(data)

geo = Geo("全國主要城市空氣質量熱力圖", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')

geo.add("空氣質量熱力圖", attr, value, visual_range=[0, 25], type='heatmap',visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
geo.show_config()
geo.render(path="./data/04-04空氣質量熱力圖.html")

熱力分佈圖.png

# 空氣質量評分
indexs = ['上海', '北京', '合肥', '哈爾濱', '廣州', '成都', '無錫', '杭州', '武漢', '深圳', '西安', '鄭州', '重慶', '長沙']
values = [4.07, 1.85, 4.38, 2.21, 3.53, 4.37, 1.38, 4.29, 4.1, 1.31, 3.92, 4.47, 2.40, 3.60]


geo = Geo("全國主要城市空氣質量評分", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')

# type="effectScatter", is_random=True, effect_scale=5  使點具有發散性
geo.add("空氣質量評分", indexs, values, type="effectScatter", is_random=True, effect_scale=5, visual_range=[0, 5],visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
geo.show_config()
geo.render(path="./data/04-05空氣質量評分.html")

空氣質量評分.png

如果地圖顯示不全或只顯示南海諸島問題,請查看我的這篇文章:
https://www.jianshu.com/p/20fd061d0b96

支持保存做種格式
對象.render(path='snapshot.html')
對象.render(path='snapshot.png')
對象.render(path='snapshot.pdf')
舉個栗子:

bar = Bar("我的第一個圖表", "這裏是副標題")
bar.add("服裝", ["襯衫", "羊毛衫", "雪紡衫", "褲子", "高跟鞋", "襪子"], [5, 20, 36, 10, 75, 90])
# bar.print_echarts_options()
bar.render(path='snapshot.html')
bar.render(path='snapshot.png')
bar.render(path='snapshot.pdf')

pyecharts繪畫優美圖形<一>:最全地圖
pyecharts繪畫優美圖形<二>:柱形圖-折線圖-餅圖
pyecharts繪畫優美圖形<三>:儀表盤 - 漏斗圖 - 關係圖 - 水球 - 極座標 - 雷達
pyecharts繪畫優美圖形<四>:詞雲--支持中文

掃描下方二維碼關注微信公衆號「南城故夢」,一個程序媛的後花園

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章