如何在 Python 中的箱線圖上顯示文字?
箱線圖,也稱為盒須圖,是一種資料集的圖形表示,顯示了資料的中間值、四分位數和異常值。盒子表示四分位距 (IQR),即資料第 25 個百分位數和第 75 個百分位數之間的範圍。中位數顯示為盒子內的一條線。須線從盒子延伸,顯示資料的範圍,不包括異常值。異常值是指超出須線範圍的資料點,通常顯示為單個點或星號。箱線圖可用於總結資料集的分佈並識別任何異常值或偏度。它們通常用於統計學、資料分析和機器學習。
Matplotlib 是一個功能強大的 Python 繪相簿,允許使用者在 Python 中建立各種靜態、互動式和動畫視覺化。它提供了對圖表或圖形的各個元素的低階控制,並且高度可定製。Seaborn 庫建立在 Matplotlib 之上,並添加了更多功能。它提供了一個更簡潔、更使用者友好的 API,用於在 Python 中建立統計視覺化,重點是探索變數之間的關係和顯示資料的分佈。
藉助 Seaborn 的各種預製主題和配色方案,可以輕鬆製作外觀精緻的圖表。這兩個庫都提供了建立箱線圖的功能,箱線圖可用於視覺化資料的分佈,以及識別資料中的異常值和偏度。
語法
要在 Python 中的箱線圖上顯示文字,您需要遵循以下語法:
matplotlib.pyplot.text(x, y, text)
matplotlib.pyplot.text(x, y, text) 是 Matplotlib Python 庫中的一個函式,它在指定的 x 和 y 座標處向繪圖新增文字。
該函式接受三個引數:放置文字的 x 和 y 座標,以及 text,即在繪圖上顯示的實際文字。預設情況下,文字相對於指定的座標左對齊並在垂直方向上居中。
示例
程式碼匯入了必要的庫,例如 pandas、matplotlib、seaborn 和 numpy。它將繪圖的樣式設定為“seaborn”。然後,它建立了一個具有形狀 (25,4) 的隨機值的 DataFrame,並將列名分配為“A”、“B”、“C”和“D”。
然後使用 matplotlib 建立了一個大小為 (10,5) 的圖形。為 DataFrame 的“B”列生成了一個箱線圖,並可以選擇水平顯示繪圖。
使用 matplotlib.pyplot.text() 函式向繪圖添加了一個文字框,文字為“Boxplot”,字型大小為 18,字型粗細為粗體。該函式可以接受許多可選引數,例如顏色、alpha、背景顏色、bbox、clip_box、clip_on、clip_path、fontfamily、fontname、fontproperties、fontstyle、fontvariant、fontweight、horizontalalignment、label、linespacing、multialignment、name、path_effects、picker、position、rotation、rotation_mode、size、sketch_params、snap、text、transform、url、usetex、verticalalignment、visible、wrap、x、y、zorder 等。
bbox 引數定義了圍繞文字的框的屬性,包括淺綠色 facecolor、10 的填充和 0.5 的 alpha。最後,使用 plt.show() 顯示繪圖。
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np plt.style.use('seaborn') df = pd.DataFrame(np.random.rand(25, 4), columns=['A', 'B', 'C', 'D']) plt.figure(figsize=(10, 5)) plt.boxplot(df['B'], vert=False) plt.text(0.3, 0.7, 'Boxplot', fontsize=18, fontweight='bold', bbox={'facecolor': 'lightgreen', 'pad': 10, 'alpha': 0.5}) plt.show()
輸出
示例
在此程式碼中,我們匯入了 pandas、numpy、matplotlib.pyplot 和 seaborn。我們將繪圖的樣式設定為“seaborn”。我們使用 numpy 建立了一個包含 25 行 4 列的 DataFrame,並將其標記為 A、B、C 和 D。
接下來,我們使用 plt.figure() 建立了一個大小為 10x5 的圖形。我們透過呼叫 plt.boxplot(df['A'], vert=False) 建立了 DataFrame 中“A”列的資料的箱線圖。這建立了“A”列的水平箱線圖,並將“vert”引數設定為 False。
使用 plt.text() 向繪圖添加了文字,其中我們使用 x 和 y 引數指定了文字的位置,要顯示的文字、字型大小、字型粗細、文字顏色、alpha 水平和背景顏色。我們將要顯示的文字設定為位置 (0.7, 1.4),文字為“Boxplot”,字型大小為 18,字型粗細設定為粗體,文字顏色設定為紅色,alpha 水平設定為 0.5,背景顏色設定為黃色。
最後,我們使用 plt.show() 顯示了繪圖。
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np plt.style.use('seaborn') df = pd.DataFrame(np.random.rand(25, 4), columns=['A', 'B', 'C', 'D']) plt.figure(figsize=(10, 5)) plt.boxplot(df['A'], vert=False) plt.text(0.7, 1.4, 'Boxplot', fontsize=18, fontweight='bold', color='red', alpha=0.5, backgroundcolor='yellow') plt.show()
輸出
結論
我們學習瞭如何在 Python 中的箱線圖上顯示文字。在箱線圖上顯示文字對於提供有關顯示分佈的其他資訊可能很有優勢。文字可用於標記繪圖、突出顯示關鍵特徵(如異常值)或提供上下文資訊以幫助解釋。此外,標記異常值或極值可以幫助引起對這些點的注意,並可能提供對資料的見解。總的來說,在箱線圖上顯示文字可以提高視覺化的清晰度和有效性,以便於資料交流和解釋。