[Python視覺化] pyecharts安裝入門及繪製中國貴州地圖
前端或網站開發的博友可能都使用過強大的Echarts技術。ECharts是一個純Javascript的圖表庫,可以流暢的執行在PC和移動裝置上,相容當前絕大部分瀏覽器,底層依賴輕量級的Canvas類庫ZRender,提供直觀、生動、可互動、可高度個性化定製的資料視覺化圖表。ECharts提供了常規的折線圖、柱狀圖、散點圖、餅圖、K線圖,用於統計的盒形圖,用於地理資料視覺化的地圖、熱力圖、線圖,用於關係資料視覺化的關係圖、treemap,多維資料視覺化的平行座標,還有用於BI的漏斗圖、儀表盤,並且支援圖與圖之間的混搭。
下圖是Echarts簡單繪製折線圖的示例,左邊是指令碼程式碼,右邊是顯示圖形,非常美觀。
http://echarts.baidu.com/echarts2/doc/example/line1.html#helianthus
echarts官方網址:http://echarts.baidu.com/tutorial.html
Eastmount文章: [Echarts視覺化] 一.入門篇之簡單繪製中國地圖和貴州地區
既然Echarts這麼好用,Python也有相應的第三方擴充套件包支援,它就是這篇文章講解的pyecharts庫。pyecharts是一個用於生成 Echarts 圖表的類庫,即Echarts與Python的對接,並推薦大家結合Django或Flask使用。下面開始入門介紹,希望這篇文章對你有所幫助,如果有錯誤或不足之處,還請海涵。
一. 安裝pyecharts
pyecharts是相容Python2和Python3的,直接使用pip進行安裝:
pip install pyecharts
安裝如下圖所示:
安裝成功之後,我們直接匯入該擴充套件包使用。常見的圖形包括:(參考 賴德發大神部落格)
Bar(柱狀圖/條形圖)
Bar3D(3D 柱狀圖)
Boxplot(箱形圖)
EffectScatter(帶有漣漪特效動畫的散點圖)
Funnel(漏斗圖)
Gauge(儀表盤)
Geo(地理座標系)
Graph(關係圖)
HeatMap(熱力圖)
Kline(K線圖)
Line(折線/面積圖)
Line3D(3D 折線圖)
Liquid(水球圖)
Map(地圖)
Parallel(平行座標系)
Pie(餅圖)
Polar(極座標系)
Radar(雷達圖)
Sankey(桑基圖)
Scatter(散點圖)
Scatter3D(3D 散點圖)
ThemeRiver(主題河流圖)
WordCloud(詞雲圖)
二. 入門知識
1.柱狀圖
程式碼如下:
# -*- coding:utf-8 -*-
from pyecharts import Bar
bar = Bar("貴州GDP柱狀圖", "副標題")
bar.add("GDP",
["貴陽市", "遵義市", "六盤水市", "安順市", "黔東南州"],
[40, 30, 26, 22, 15])
bar.show_config()
bar.render()
程式碼執行之後,會在本地生成一個render.html檔案,開啟輸出如下所示圖形。
from pyecharts import Bar
#從pyecharts庫中匯入Bar子類
bar = Bar("貴州GDP柱狀圖", "副標題")
#定義Bar()柱狀圖,同時設定主標題和副標題
bar.add()
#呼叫add()函式新增圖表的資料和設定各種配置項
bar.show_config()
#列印輸出圖表的所有配置項
bar.render()
#生成render.html檔案,也可以設定路徑和檔名
2.橫向柱狀圖
程式碼如下:
# -*- coding:utf-8 -*-
from pyecharts import Bar
bar = Bar("貴州GDP柱狀圖", "副標題")
city = ["貴陽市", "遵義市", "六盤水市", "安順市", "黔東南州"]
data1 = [40, 30, 26, 22, 15]
data2 = [13, 43, 32, 38, 20]
bar.add("2017年GDP", city, data1)
bar.add("2016年GDP", city, data2, is_convert=True)
bar.show_config()
bar.render()
輸出如下圖所示:3.帶有漣漪特效動畫的散點圖
這段程式碼參考簡書網 https://www.jianshu.com/p/b718c307a61c ,強烈推薦大家學習chenjiandongx大神的文章。完整程式碼如下:
# -*- coding:utf-8 -*-
from pyecharts import EffectScatter
es = EffectScatter("動態散點圖各種圖形示例")
es.add("", [10], [10], symbol_size=20, effect_scale=3.5, effect_period=3, symbol="pin")
es.add("", [20], [20], symbol_size=12, effect_scale=4.5, effect_period=4, symbol="rect")
es.add("", [30], [30], symbol_size=30, effect_scale=5.5, effect_period=5, symbol="roundRect")
es.add("", [40], [40], symbol_size=10, effect_scale=6.5, effect_brushtype='fill', symbol="diamond")
es.add("", [50], [50], symbol_size=16, effect_scale=5.5, effect_period=3, symbol="arrow")
es.add("", [60], [60], symbol_size=6, effect_scale=2.5, effect_period=3, symbol="triangle")
es.render()
執行結果如下圖所示:4.繪製3D圖形
繪製3D折線圖程式碼如下:
# -*- coding:utf-8 -*-
from pyecharts import Line3D
import random
data = [[1,2,3,4], [1,2,3,4], [0,4,8,16]]
Line3D = Line3D("3D 折線圖示例", width=1200, height=600)
Line3D.add("", data, is_visualmap=True)
Line3D.render()
輸出圖形如下所示:繪製3D散點圖,並設定隨機散點座標,程式碼如下所示:
# -*- coding:utf-8 -*-
from pyecharts import Scatter3D
import random
data = [[random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)] for _ in range(80)]
range_color = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf',
'#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
scatter3D = Scatter3D("3D 散點圖示例", width=1200, height=600)
scatter3D.add("", data, is_visualmap=True, visual_range_color=range_color)
scatter3D.render()
輸出結果非常美觀,如下圖所示:5.儀表盤
程式碼如下:
# -*- coding:utf-8 -*-
from pyecharts import Gauge
g = Gauge("儀表盤圖形","副圖示")
g.add("重大專案", "投資佔比", 66.66)
g.show_config()
g.render("g.html")
輸出圖形如下所示:
6.水球圖
程式碼如下:
# -*- coding:utf-8 -*-
from pyecharts import Liquid
liquid = Liquid("水球圖")
liquid.add("Liquid", [0.8])
liquid.show_config()
liquid.render()
輸出如下圖所示:
講到這裡基本的圖形講解完畢,更多知識推薦大家結合實際應用研究。
三. 繪製中國地圖
如果直接繪製中國地圖,只會顯示一個角落,如下圖所示:
1.安裝
這是需要安裝第三方地圖支援包,程式碼如下:
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
其中echarts-countries-pypkg 是全球國家地圖,echarts-china-provinces-pypkg是中國省級地圖, echarts-china-cities-pypkg是中國城市地圖。安裝過程如下圖所示:
2.繪製中國地圖
安裝之後我們來看一個簡單的中國地圖程式碼,這是作者微信好友全國各省分佈情況,程式碼如下:
#-*- coding:utf-8 -*-
from pyecharts import Map
value =[2, 60, 2, 6, 80, 2, 5, 2, 1, 4, 5, 1,
4, 1, 5, 2, 2, 5, 4, 1, 1, 10, 2]
attr =["安徽", "北京", "福建", "廣東", "貴州", "海南", "河北", "河南", "黑龍江",
"湖北", "湖南", "吉林", "江蘇", "遼寧", "山東", "山西", "陝西", "上海",
"四川", "天津", "雲南", "浙江", "重慶"]
map=Map("各省微信好友分佈", width=1200, height=600)
map.add("", attr, value, maptype='china', is_visualmap=True,
visual_text_color='#000')
map.show_config()
map.render()
輸出結果如下圖所示,因為作者在北京讀書,貴州人,所以這兩個地方好友最多。再來看一組中國地圖,全國的空氣質量情況,程式碼如下:
#-*- coding:utf-8 -*-
from pyecharts import Geo
data = [
("海門", 9),("鄂爾多斯", 12),("招遠", 12),("舟山", 12),("齊齊哈爾", 14),("鹽城", 15),
("赤峰", 16),("青島", 18),("乳山", 18),("金昌", 19),("泉州", 21),("萊西", 21),
("日照", 21),("膠南", 22),("南通", 23),("拉薩", 24),("雲浮", 24),("梅州", 25)]
geo = Geo("全國主要城市空氣質量", "data from pm2.5",
title_color="#fff", title_pos="center",
width=1200, height=600, background_color='#404a59')
attr, value = geo.cast(data)
geo.add("", attr, value, visual_range=[0, 200],
visual_text_color="#fff", symbol_size=15, is_visualmap=True)
geo.show_config()
geo.render("kongqi.html")
輸出結果如下所示,它會提示錯誤“coordinates is not found”座標沒有定義,知乎說可以用 geo_cities_coords 引數自定義經緯度處理解決。
而我的解決方法是懷疑中文亂碼錯誤,並且成功解決,即中文前面加個u"貴陽",程式碼如下:
#-*- coding:utf-8 -*-
from pyecharts import Geo
data = [
(u"海門", 9),(u"鄂爾多斯", 12),(u"招遠", 12),(u"舟山", 12),(u"齊齊哈爾", 14),(u"鹽城", 15),
(u"赤峰", 16),(u"青島", 18),(u"乳山", 18),(u"金昌", 19),(u"泉州", 21),(u"萊西", 21),
(u"日照", 21),(u"膠南", 22),(u"南通", 23),(u"拉薩", 24),(u"雲浮", 24),(u"梅州", 25)]
geo = Geo(u"全國主要城市空氣質量", "data from pm2.5",
title_color="#fff", title_pos="center",
width=1200, height=600, background_color='#404a59')
attr, value = geo.cast(data)
geo.add("", attr, value, visual_range=[0, 200],
visual_text_color="#fff", symbol_size=15, is_visualmap=True)
geo.show_config()
geo.render("kongqi.html")
輸出如下圖所示:3.繪製貴州地圖
最後補充繪製貴州省地圖的程式碼:
#-*- coding:utf-8 -*-
from pyecharts import Map
value = [95, 70, 30, 45, 80,
10, 25, 40, 5]
attr = [u'貴陽市', u'遵義市', u'六盤水市', u'安順市', u'畢節市',
u'銅仁市', u"黔東南苗族侗族自治州", u"黔南布依族苗族自治州",
u"黔西南布依族苗族自治州"]
map = Map(u"貴州地圖示例", width=1200, height=600)
map.add("", attr, value, maptype=u'貴州',
is_visualmap=True, visual_text_color='#000')
map.show_config()
map.render()
輸出如下圖所示:
作者是在學習Python獲取微信資訊,從而視覺化畫圖學習的pyecharts庫,也希望感興趣的同學學習下itchat庫。
參考作者文章: [Python微信開發] 一.itchat入門知識及微信自動回覆、微信簽名詞雲分析
狂風驟起吹落花,飄零萬里到天涯。
天垂六幕千山外,娜璋雲遊看晚霞。
最近四月把婚紗照拍了,開心!同時,寫部落格已經5年了,每個月都堅持寫,這感覺真棒,也謝謝CSDN。
(By:Eastmount 2018-04-10 晚上9點 http://blog.csdn.net/eastmount/ )
相關文章
- [Echarts視覺化] 一.入門篇之簡單繪製中國地圖和貴州地區Echarts視覺化地圖
- [資料分析與視覺化] Python繪製資料地圖2-GeoPandas地圖視覺化視覺化Python地圖
- Python pyecharts繪製餅圖PythonEcharts
- Python pyecharts繪製詞雲圖PythonEcharts
- 視覺化圖表教程:業務資料地圖的繪製視覺化地圖
- 【 視覺化】熱力圖繪製原理視覺化
- Python繪圖與視覺化Python繪圖視覺化
- 小區確診病例實時地圖,怎麼繪製疫情視覺化地圖?地圖視覺化
- Python視覺化-地圖染色Python視覺化地圖
- Python pyecharts繪製儀表盤PythonEcharts
- R語言之視覺化①②熱圖繪製2R語言視覺化
- 【Python視覺化】使用Pyecharts進行奧運會視覺化分析~Python視覺化Echarts
- Ptyhon視覺化:chapter3--繪製並定製化圖表視覺化APT
- 中國地圖繪製-點選事件地圖事件
- Python繪製六種視覺化圖表詳解(建議收藏)Python視覺化
- Python 繪製全球疫情地圖Python地圖
- 風場視覺化:繪製軌跡視覺化
- 風場視覺化:繪製粒子視覺化
- pyecharts做資料視覺化(二)Echarts視覺化
- Python繪製六種視覺化圖表詳解,三維圖最炫酷!你覺得呢?Python視覺化
- Python——視覺化神器pyecharts的正確開啟方式Python視覺化Echarts
- 拿走不謝,資料視覺化地圖製作教程!視覺化地圖
- flask+pyecharts繪製的圖表增加互動FlaskEcharts
- 智慧園區三維視覺化應用,如何繪製智慧園區的電子地圖?視覺化地圖
- OSG入門——繪製地球雲圖
- vue地圖視覺化 Cesium篇Vue地圖視覺化
- Python Pygal繪製世界人口地圖Python地圖
- 中秋味的視覺化大屏 【以python pyecharts為工具】視覺化PythonEcharts
- Python資料分析入門(十七):繪製條形圖Python
- d3.js 入門學習記錄(十一) 地圖上的視覺化JS地圖視覺化
- 視覺化三維地圖怎麼做?視覺化工具中的地圖工具視覺化地圖
- python資料視覺化-matplotlib入門(5)-餅圖和堆疊圖Python視覺化
- Python--matplotlib繪圖視覺化知識點整理Python繪圖視覺化
- 如何繪製Wardley地圖?地圖
- 音視訊入門系列之繪製圖片三種方式
- 什麼地圖可以室內導航,資料視覺化地圖製作平臺地圖視覺化
- Metal入門教程(一)圖片繪製
- vue地圖視覺化 ArcGIS篇(3)Vue地圖視覺化