- Python數據可視化之matplotlib精進
- 劉大成
- 1547字
- 2019-06-19 15:45:03
2.5 延伸閱讀
2.5.1 使用折線繪制圓
繪制幾何圖形中的圓形不僅可以通過類Circle實現,也可以通過折線實現。下面,我們就具體講解使用折線繪制圓的實現方法。
1.代碼實現


2.運行結果(見圖2-5)

圖2-5
3.代碼精講
我們通過實例方法plot()也完成了繪制圓的任務,但是,仍然存在圓的展示效果不理想的情況。這個問題仍然需要調用實例方法axis("equal")來解決。
(1)在子區2中,調用“ax[0,1].plot(y1,y2,color="cornflowerblue",lw=2)”語句完成圓的繪制任務。
(2)同時,調用“ax[0,1].set_aspect("equal","box")”語句實現刻度線的變化量相同和坐標軸的長度相同的目標。
注意:
調用實例方法plot()繪制的圓和調用類Circle繪制的圓在展示效果上有所區別。調用實例方法plot()繪制的圓沒有覆蓋坐標軸的繪圖區域;而調用類Circle繪制的圓即使在填充顏色是白色的情況下,也會覆蓋坐標軸的繪圖區域。
由此可見,調用類Circle繪制的圓是一個“補片”。也就是說,這個“補片”是一個實實在在的具有顏色的填充區域。
(3)在子區3中,調用“ax[1,0].axis("equal")”語句完成調整坐標軸的刻度線的變化量一致的工作。
(4)在子區4中,調用“ax[1,1].axis([-3,3,-3,3])”和“ax[1,1].set_yticks(np.arange(-3,4,1))”語句完成調整坐標軸的顯示范圍及調整刻度線的位置方面的工作。
2.5.2 使用橢圓繪制圓
一般而言,我們可以使用類Ellipse繪制圓,但是不可以使用類Circle繪制橢圓。因為我們使用類Ellipse繪制圓,只需要保證參數width和height的取值相同而且刻度線的變化量相同即可完成圓的繪制任務。如果參數width和height的取值相同,但是刻度線的變化量不一致,則也可以使用類Circle完成繪制橢圓的任務。我們使用類Circle繪制橢圓,如果參數width和height的取值不相同,就無法完成使用類Circle繪制橢圓的工作。下面,我們就通過具體代碼來比較類Ellipse和Circle的區別與聯系。
1.代碼實現

2.運行結果(見圖2-6)

圖2-6
3.代碼精講
(1)通過設置函數subplots()中的參數subplot_kw,使坐標軸的刻度線的變化量相同。
(2)設置圓和橢圓的中心位置相同。圓的半徑是1,橢圓的寬度和長度都是2。
(3)通過推導列表生成4個逆時針旋轉角度的列表ellipse。
(4)使用內置函數append()將實例circle添加到推導列表ellipse中。
(5)將列表ellipse賦值給變量polygon。
(6)通過調用實例方法 add_patch()分別將推導列表 ellipse 中的實例元素添加到坐標軸實例 ax中,同時,設置實例元素的透明度和填充顏色。
(7)這樣,我們獲得了一個顏色疊加卻是完整覆蓋的圓形幾何圖案。因此,我們使用類 Ellipse 繪制圓,只需要保證參數 width 和 height 的取值相同而且刻度線的變化量相同即可完成圓的繪制任務。
2.5.3 使用楔形繪制餅圖
我們使用楔形既可以繪制圓形,也可以繪制圓形的一部分。按照這樣的思路,我們可以嘗試使用楔形繪制餅圖。下面,我們通過具體代碼來講解使用楔形繪制餅圖的實現方法。
1.代碼實現


2.運行結果(見圖2-7)

圖2-7
3.代碼精講
我們通過楔形實現了調用pie()繪制的餅圖效果的目標。
(1)通過推導列表“[i/float(total) for i in sample_data]”獲得原始數據sample_data的元素比重的列表percents。
(2)根據推導列表“[360*i for i in percents]”獲得元素比重相對應的角度數值列表angles。
(3)通過類Wedge分別實現繪制4個楔形的目標,即繪制4個餅片。
(4)借助實例方法add_patch()將楔形實例添加到坐標軸實例ax中。
(5)調用實例方法text()將格式化的字符串添加到楔形上,使用參數font_style設置字符串的字體樣式等屬性值。
2.5.4 使用楔形繪制圓環式餅圖
我們可以使用楔形繪制圓環,而且我們知道統計圖形中的餅圖也有圓環式餅圖的展示形式。因此,我們接下來嘗試使用楔形繪制圓環式餅圖。我們通過具體代碼來講解使用楔形繪制圓環式餅圖的實現方法。
1.代碼實現



2.運行結果(見圖2-8)

圖2-8
3.代碼精講
我們可以看到,通過使用楔形完成了繪制圓環式餅圖的任務。
(1)使用楔形繪制圓環式餅圖的關鍵在于類Wedge中的參數width。使用參數width設置圓環的寬度,楔形的半徑是以外圓的半徑作為計算標準的,圓環的寬度就是外圓和內圓的半徑差值。
(2)使用類Rectangle和實例方法text()繪制圖例內容。
- SQL入門經典(第5版)
- 從零開始學Hadoop大數據分析(視頻教學版)
- Game Development with Swift
- 計算機信息技術基礎實驗與習題
- 數據結構與算法(C語言版)
- Mastering Machine Learning with R(Second Edition)
- 達夢數據庫性能優化
- Python數據分析與挖掘實戰(第3版)
- Google Cloud Platform for Developers
- Gideros Mobile Game Development
- 大數據分析:R基礎及應用
- MySQL技術內幕:InnoDB存儲引擎
- Scratch 2.0 Game Development HOTSHOT
- Google Cloud Platform for Architects
- 大數據技術體系詳解:原理、架構與實踐