1.pyecharts知識點回顧
1)知識回顧
前面我們已經講述了,如何使用
pyecharts
進行圖形的繪制,一共涉及到如下四步。我們今天就是按照下面這幾步來進行
遷徙圖
和
輪播圖
的繪制。
- ① 選擇圖表類型;
- ② 聲明圖形類并添加資料;
- ③ 設定全局配置項和系列配置項;
- ④ 顯示及儲存圖表;
2)遷徙圖
遷徙圖
類似于下面這種,利用一個曲線來顯示從一個地方到另外一個地方的運作軌迹。

3)輪播圖
輪播圖
就是淘寶首頁面上的那種滾動大屏效果。在同一個頁面上,可以放置多張圖形,設定一定的輪播時間,它可以像放卡通片一樣給你滾動播放。
2.遷徙圖的繪制
1)參數解釋
① Geo()類
Geo()類
是用于繪制區域地圖的類,既然是類,它及有自己的
初始化參數
,還有自己的
自定義方法
,該類的大緻形式是這樣的。
class Geo(
# 初始化配置項
init_opts: opts.InitOpts = opts.InitOpts()
# 是否忽略不存在的坐标,預設值為 False,即不忽略
is_ignore_nonexistent_coord: bool = False
)
# 該類擁有如下兩個方法。
# add_schema()方法主要作用:用于指定繪制哪個地方的地圖;
def add_schema();
# add()方法主要作用:用于為圖形添加資料;
def add();
複制
② init_opts參數
init_opts
這個參數很常用,用于指定圖形畫布的大小。你不管繪制任何圖形,都可以采用如下的方式,調用這個參數。
-
:在初始化類名的時候,添加這個參數;參數的添加位置
-
:圖形類名(init_opts=opts.InitOpts(width=,height=));使用
-
:指定畫布的寬度,預設是900px;width
-
:指定畫布的高度,預設是500px;height
③ label_opts參數
label_opts
這個參數用于設定圖形标簽是否顯示,當圖形中的标簽太多的時候,可能字與字之間會重合,此時我們可以設定标簽不顯示就可以解決這個問題。
-
:在使用add()方法添加資料的時候,添加這個參數;參數的添加位置
-
:.add(…,…,label_opts=opts.LabelOpts(is_show=False));使用
-
:預設是True,顯示标簽,False是不顯示标簽;is_show
④ 關于add_schema()方法的說明
在繪制遷徙圖時,這個方法涉及到兩個重要參數。一個是
maptype
,一個是
itemstyle_opts
,下面我們分别進行叙述。
-
:用于指定地圖類型,'china’代表繪制中國地圖,'湖北’代表繪制湖北地圖,'廣東’代表繪制廣東地圖;maptype
- itemstyle_opts=opts.ItemStyleOpts(color=’#323c48’,border_color=‘black’));
-
:圖元樣式配置項(官方取名),聽完名字我也不知道是做什麼的,其實是用來進行地圖顔色填充的參數。itemstyle_opts
-
:用于指定地圖的背景填充色;color
-
:用于指定地區與地區之間的邊界線的顔色;border_color
⑤ effect_opts參數
effect_opts
是漣漪特效配置項,該參數用于進行特效展示,設定了這個參數後,某個點會像水波泛起的漣漪一樣,向着周圍波動散開。
- effect_opts=opts.EffectOpts(symbol=“arrow”, color=‘gold’, symbol_size=8));
-
:指定該點的形狀,這裡指定的是箭頭形狀;symbol
-
:指定該點的顔色,這裡指定的是黃色;color
-
:指定該點的大小;symbol_size
⑥ set_global_opts()方法
set_global_opts()
用于進行全局配置項的設定,常用于展示标題配置項和視覺映射配置項。
- .set_global_opts(title_opts = opts.TitleOpts(title=“中國地圖”),visualmap_opts = opts.VisualMapOpts(min_=30, max_=110))
2)繪圖代碼
# 1.導入相關庫
from pyecharts.charts import Geo
import pyecharts.options as opts
# 2.準備資料
city_num = [('武漢',105),('成都',70),('北京',99),
('西安',80),('杭州',60),('貴陽',34),
('上海',65),('深圳',54),('烏魯木齊',76),
('哈爾濱',47),('蘭州',56),('信陽',85)]
start_end = [('武漢','成都'),('武漢','北京'),('武漢','西安'),
('武漢','杭州'),('武漢','貴陽'),('武漢','上海'),
('武漢','深圳'),('武漢','烏魯木齊'),('武漢','哈爾濱'),
('武漢','蘭州'),('武漢','信陽')]
(
# 3.初始化地圖類
Geo(init_opts=opts.InitOpts(width="700px",height="300px",theme="blue"))
.add_schema(maptype='china',
itemstyle_opts=opts.ItemStyleOpts(color='#323c48', border_color='black'))
# 4.添加資料
.add('', data_pair=city_num, color='white')
.add('', data_pair=start_end, type_="lines",label_opts=opts.LabelOpts(is_show=False),
effect_opts=opts.EffectOpts(symbol="arrow",
color='gold',
symbol_size=8))
.set_global_opts(
title_opts = opts.TitleOpts(title="中國地圖"),
visualmap_opts = opts.VisualMapOpts(min_=30, max_=110))
).render_notebook() # 5.圖形展示
複制
結果如下:
3.輪播圖的繪制
1)參數解釋
由于其他參數,我們在上面已經進行了詳細的闡述,這裡我們隻講述不一樣的參數。參數其實挺多,我們需要邊用邊學,邊學邊總結,這樣才會越來越厲害。
① Timeline()類
Timeline()類
用于繪制輪播圖,既然它也是一個類,肯定也有自己的初始化屬性和相應的方法,該類的大緻形式是這樣的。
class Timeline(
# 初始化配置項,參考 `global_options.InitOpts`
init_opts: opts.InitOpts = opts.InitOpts()
)
# 該類擁有如下兩個方法。
# add_schema()方法主要作用:用于設定輪播時間,是否自動輪播;
def add_schema();
# add()方法主要作用:用于為圖形添加資料;
def add();
複制
② add()方法
- add(chart=map1, time_point=“湖北省疫情地圖”);
-
:你要添加哪一個圖;chart
-
:用于指定輪播軸的起點、重點名稱;time_point
③ add_schema()方法
- add_schema(is_auto_play=True, play_interval=3000);
-
:是否自動輪播,預設是False,不自動輪播;is_auto_play
-
:輪播時間,機關是毫秒,3000毫秒就是3秒輪播一次;play_interval
2)繪圖代碼
from pyecharts.charts import Map, Timeline
from pyecharts import options
# 1. 準資料
hubei_city = ["武漢市","孝感市","黃岡市","荊州市","鄂州市","随州市",
"襄陽市","黃石市","宜昌市","荊門市","鹹甯市","十堰市",
"仙桃市","天門市","恩施土家族苗族自治州","潛江市","神農架林區"]
hubei_data = [3214,628,722,287,224,304,321,202,269,217,206,177,97,82,103,27,7]
guangdong_city = ["深圳市","廣州市","珠海市","佛山市","東莞市","中山市",
"惠州市","汕頭市","湛江市","江門市","肇慶市","陽江市",
"梅州市","茂名市","清遠市","揭陽市","韶關市",
"潮州市","汕尾市","河源市"]
guangdong_data = [375,317,86,70,62,58,53,25,21,20,15,13,13,11,10,8,7,5,5,3]
# 2. 繪制湖北疫情地圖:格式一
map1 = (
Map(init_opts=opts.InitOpts(width="700px",height="300px",theme="blue"))
.add('', [(i,j) for i,j in zip(hubei_city,hubei_data)], '湖北')
.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=4000))
)
# 3. 繪制廣東疫情地圖:格式二
map2 = (
Map()
.add('', [(i,j) for i,j in zip(guangdong_city,guangdong_data)], '廣東')
.set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=400,is_piecewise=True))
)
# 4. 建立組合類對象
timeline = Timeline(init_opts=opts.InitOpts(width='720px', height='350px'))
# 5. 在組合對象中添加需要組合的圖表對象
timeline.add(chart=map1, time_point="湖北省疫情地圖")
timeline.add(chart=map2, time_point="廣東省疫情地圖")
timeline.add_schema(is_auto_play=True, play_interval=3000)
# 6. 渲染資料
timeline.render_notebook()
複制
結果如下: