書名: Python數據可視化之matplotlib精進作者名: 劉大成本章字數: 1632字更新時間: 2019-06-19 15:45:06
4.1 文本注解的展示樣式
為了清楚地注釋圖表中的內容,我們會向圖表中的指定位置添加文本注解,用以強調或解釋需要重點顯示的圖形內容,從而使得圖形可以更好地呈現數據中所蘊含的關鍵信息。因此,為了使得文本注解可視化效果更加理想,文本注解的展示樣式就是需要重點關注的可視化內容。下面,我們就從文本框的樣式和文本注釋箭頭的樣式兩方面,通過具體代碼來闡述其實現方法和操作細節。
4.1.1 文本框的樣式
為了使文本注釋內容更加清晰和醒目,我們可以在文本注釋內容的外面添加文本框。因此,文本框的樣式就會直接影響文本注解的顯示效果。下面,我們具體看看文本框都有哪些主要的展示樣式。
1.代碼實現

2.運行結果(見圖4-1)

圖4-1
3.代碼精講
(1)通過調用“plt.figure(1,figsize=(8,9),dpi=72)”語句,獲得Figure實例fig。其中,參數figsize用于設置畫布尺寸,參數dpi用于控制單位尺寸內的點數。
(2)變量fontsize用于存儲文本的字體大小。
(3)向畫布對象fig添加子區獲得返回值ax,通過參數frameon控制坐標軸的軸脊(坐標軸上的刻度標簽和刻度線的載體)的顯示狀態,參數xticks和yticks是Axes的屬性。
(4)通過調用“patches.BoxStyle.get_styles()”語句,即調用類BoxStyle中的類方法get_styles(),獲得的返回值是可以使用的文本框樣式的字典,其中鍵是文本框樣式的名字。
(5)使用for循環語句,向坐標軸內迭代添加帶文本框的文本內容。實現文本框的重要參數是bbox。參數bbox接收字典作為參數值,字典的鍵boxstyle對應的鍵值name就是文本框樣式的名稱。參數transform的作用就是使用指定的坐標系統計算無指示注解的位置。換句話講,“ax.transAxes”就是使用歸一化到0~1之間的浮點數的數值控制文本在Axes坐標系統上的位置,例如,0和0表示坐標軸的左下角,1和1表示坐標軸的右上角。
4.內容補充
在Python 3.x 中,使用字典boxStyles的方法keys(),也就是通過“boxStyles.keys()”語句,獲得的返回值是可迭代對象,而不是列表。在Python 3.x中,可以通過內置函數list()將可迭代對象轉化成列表,也就是通過“list(boxStyles.keys())”語句,將可迭代對象“boxStyles.keys()”轉化成列表boxStyleNames。
4.1.2 文本注釋箭頭的樣式
我們向繪圖區域中添加有指示的注解,通常是用箭頭等圖形作為注釋點和注釋內容的連接橋梁的,即用箭頭作為注釋點和注釋內容點的連線。箭頭的繪制和樣式可以通過指定參數arrowprops的取值來實現。作為“連接橋梁”的箭頭有很多種展現樣式,我們通過具體代碼來探索這些展現樣式的實現方法。
1.代碼實現


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

圖4-2
3.代碼精講
(1)通過調用“plt.figure(1,figsize=(8,9),dpi=72)”語句,獲得Figure實例fig。其中,參數figsize用于設置畫布尺寸,參數dpi用于控制單位尺寸內的點數。
(2)變量fontsize用于存儲文本的字體大小。
(3)向畫布對象fig添加子區add_subplot()進而獲得返回值ax,通過參數frameon控制坐標軸的框架的顯示狀態,即4條坐標軸上面的刻度標簽和刻度線的載體(軸脊)的顯示情況。
(4)通過調用“patches.ArrowStyle.get_styles()”語句,即調用類ArrowStyle中的類方法get_styles(),獲得的返回值是可以應用的箭頭樣式的字典,其中鍵是箭頭樣式的名字。
(5)利用for循環,調用實例方法annotate()向坐標軸內迭代添加有指示的注解,注釋點就是添加到坐標軸ax中的圓形補片p,注釋內容就是箭頭樣式的名稱,其中,參數arrowprops接收字典參數值。具體而言,字典中的鍵 arrowstyle 的鍵值是箭頭樣式的名稱,箭頭填充顏色及輪廓顏色分別通過鍵facecolor和edgecolor進行設定,鍵shrinkA用來控制箭頭的起始端和注釋內容的文本框的間隔距離,鍵shrinkB用來控制箭頭的終止端和注釋點補片p的輪廓線的間隔距離,參數patchB用來指定注釋點補片名稱,鍵connectionstyle可以設置連接風格。實現文本框的參數是bbox,它接收字典作為參數值,字典的鍵boxstyle對應的鍵值“round”就是文本框樣式的名稱,即圓角文本框;鍵fc和ec分別是鍵facecolor和edgecolor的簡寫形式,可以分別設置文本框的填充顏色和線條顏色。由此,我們可以知道,實例方法text()和annotate()都可以使用參數bbox設置文本框的樣式。
4.內容補充
在Python 3.x 中,使用字典arrowStyles的方法keys(),也就是通過“arrowStyles.keys()”語句,獲得的返回值是可迭代對象,而不是列表。在Python 3.x中,可以通過內置函數list()將可迭代對象轉化成列表,也就是通過“list(arrowStyles.keys())”語句,將可迭代對象“arrowStyles.keys()”轉化成列表arrowStyleNames。
- 輕松學大數據挖掘:算法、場景與數據產品
- MongoDB管理與開發精要
- MySQL從入門到精通(第3版)
- 醫療大數據挖掘與可視化
- 大數據架構商業之路:從業務需求到技術方案
- IPython Interactive Computing and Visualization Cookbook(Second Edition)
- Hadoop大數據開發案例教程與項目實戰(在線實驗+在線自測)
- Oracle數據庫管理、開發與實踐
- Spring MVC Beginner’s Guide
- 數據中心經營之道
- Hands-On Deep Learning for Games
- AndEngine for Android Game Development Cookbook
- 數字化轉型方法論:落地路徑與數據中臺
- Hadoop海量數據處理:技術詳解與項目實戰(第2版)
- Working with OpenERP