官术网_书友最值得收藏!

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。

主站蜘蛛池模板: 武义县| 阿坝县| 崇阳县| 正阳县| 奉节县| 罗定市| 桃江县| 宁阳县| 鹿邑县| 龙口市| 大丰市| 上杭县| 牡丹江市| 丽水市| 吐鲁番市| 贵阳市| 鄂托克旗| 灯塔市| 江城| 天等县| 徐汇区| 秦安县| 宜都市| 灵寿县| 新宁县| 大同市| 金堂县| 永清县| 濮阳市| 裕民县| 新野县| 湘潭市| 马边| 连平县| 大化| 桦南县| 东明县| 岚皋县| 怀柔区| 长乐市| 和林格尔县|