
- Matplotlib 基礎
- Matplotlib - 首頁
- Matplotlib - 簡介
- Matplotlib - 與 Seaborn 的比較
- Matplotlib - 環境設定
- Matplotlib - Anaconda 發行版
- Matplotlib - Jupyter Notebook
- Matplotlib - Pyplot API
- Matplotlib - 簡單繪圖
- Matplotlib - 儲存圖表
- Matplotlib - 標記
- Matplotlib - 圖表
- Matplotlib - 樣式
- Matplotlib - 圖例
- Matplotlib - 顏色
- Matplotlib - 顏色圖
- Matplotlib - 顏色圖歸一化
- Matplotlib - 選擇顏色圖
- Matplotlib - 顏色條
- Matplotlib - 文字
- Matplotlib - 文字屬性
- Matplotlib - 子圖示題
- Matplotlib - 圖片
- Matplotlib - 圖片蒙版
- Matplotlib - 註釋
- Matplotlib - 箭頭
- Matplotlib - 字型
- Matplotlib - 什麼是字型?
- 全域性設定字型屬性
- Matplotlib - 字型索引
- Matplotlib - 字型屬性
- Matplotlib - 比例尺
- Matplotlib - 線性與對數比例尺
- Matplotlib - 對稱對數與 Logit 比例尺
- Matplotlib - LaTeX
- Matplotlib - 什麼是 LaTeX?
- Matplotlib - 用於數學表示式的 LaTeX
- Matplotlib - 註釋中的 LaTeX 文字格式
- Matplotlib - PostScript
- 啟用註釋中的 LaTeX 渲染
- Matplotlib - 數學表示式
- Matplotlib - 動畫
- Matplotlib - 圖形物件
- Matplotlib - 使用 Cycler 進行樣式設定
- Matplotlib - 路徑
- Matplotlib - 路徑效果
- Matplotlib - 座標變換
- Matplotlib - 刻度和刻度標籤
- Matplotlib - 弧度刻度
- Matplotlib - 日期刻度
- Matplotlib - 刻度格式化器
- Matplotlib - 刻度定位器
- Matplotlib - 基本單位
- Matplotlib - 自動縮放
- Matplotlib - 反轉座標軸
- Matplotlib - 對數座標軸
- Matplotlib - Symlog
- Matplotlib - 單位處理
- Matplotlib - 帶單位的橢圓
- Matplotlib - 脊柱
- Matplotlib - 座標軸範圍
- Matplotlib - 座標軸比例尺
- Matplotlib - 座標軸刻度
- Matplotlib - 格式化座標軸
- Matplotlib - Axes 類
- Matplotlib - 雙座標軸
- Matplotlib - Figure 類
- Matplotlib - 多圖
- Matplotlib - 網格
- Matplotlib - 面向物件介面
- Matplotlib - PyLab 模組
- Matplotlib - Subplots() 函式
- Matplotlib - Subplot2grid() 函式
- Matplotlib - 固定位置的圖形物件
- Matplotlib - 手動等值線
- Matplotlib - 座標報告
- Matplotlib - AGG 濾鏡
- Matplotlib - 帶狀箱線圖
- Matplotlib - 填充螺旋線
- Matplotlib - Findobj 演示
- Matplotlib - 超連結
- Matplotlib - 圖片縮圖
- Matplotlib - 使用關鍵字進行繪圖
- Matplotlib - 建立 Logo
- Matplotlib - 多頁 PDF
- Matplotlib - 多程序
- Matplotlib - 列印標準輸出
- Matplotlib - 複合路徑
- Matplotlib - Sankey 類
- Matplotlib - MRI 與 EEG
- Matplotlib - 樣式表
- Matplotlib - 背景顏色
- Matplotlib - Basemap
- Matplotlib 事件處理
- Matplotlib - 事件處理
- Matplotlib - 關閉事件
- Matplotlib - 滑鼠移動
- Matplotlib - 點選事件
- Matplotlib - 滾動事件
- Matplotlib - 按鍵事件
- Matplotlib - 選擇事件
- Matplotlib - 透視鏡
- Matplotlib - 路徑編輯器
- Matplotlib - 多邊形編輯器
- Matplotlib - 定時器
- Matplotlib - Viewlims
- Matplotlib - 縮放視窗
- Matplotlib 小部件
- Matplotlib - 遊標小部件
- Matplotlib - 帶註釋的遊標
- Matplotlib - 按鈕小部件
- Matplotlib - 複選框
- Matplotlib - 套索選擇器
- Matplotlib - 選單小部件
- Matplotlib - 滑鼠游標
- Matplotlib - 多游標
- Matplotlib - 多邊形選擇器
- Matplotlib - 單選按鈕
- Matplotlib - RangeSlider
- Matplotlib - 矩形選擇器
- Matplotlib - 橢圓選擇器
- Matplotlib - 滑塊小部件
- Matplotlib - 範圍選擇器
- Matplotlib - 文字框
- Matplotlib 繪圖
- Matplotlib - 條形圖
- Matplotlib - 直方圖
- Matplotlib - 餅圖
- Matplotlib - 散點圖
- Matplotlib - 箱線圖
- Matplotlib - 小提琴圖
- Matplotlib - 等高線圖
- Matplotlib - 3D 繪圖
- Matplotlib - 3D 等高線
- Matplotlib - 3D 線框圖
- Matplotlib - 3D 曲面圖
- Matplotlib - 矢羽圖
- Matplotlib 有用資源
- Matplotlib - 快速指南
- Matplotlib - 有用資源
- Matplotlib - 討論
Matplotlib - 箱線圖
箱線圖以圖形方式表示資料集的分佈。它顯示資料集的彙總統計資料,包括最小值、第一四分位數 (Q1)、中位數 (Q2)、第三四分位數 (Q3) 和最大值。箱體代表第一四分位數 (Q1) 和第三四分位數 (Q3) 之間的四分位數範圍 (IQR),而須線則從箱體延伸到最小值和最大值。如果存在異常值,則可能會顯示為須線以外的單個點。
假設您有來自三個班級的學生考試成績。箱線圖是一種顯示這些分數分佈的方式 -
最小值和最大值 - 最小和最大的分數顯示為圖表的末端。
四分位數 (Q1、Q2、Q3) - 分數被分成四部分。中間分數是中位數 (Q2)。中位數以下的分數是第一四分位數 (Q1),中位數以上的分數是第三四分位數 (Q3)。它可以幫助您檢視大多數分數的位置。
四分位數範圍 (IQR) - Q1 和 Q3 之間的範圍稱為四分位數範圍。
箱體 - 中間的箱體代表四分位數範圍。因此,它顯示了分數的一半所在的位置。
須線 - 從箱體延伸到最小和最大分數的線(須線)有助於您檢視分數的分佈情況。
異常值 - 如果有任何分數遠高於或低於其餘分數,則它們可能會顯示為須線以外的點。這些就像突出的分數。

Matplotlib 中的箱線圖
我們可以使用 `boxplot()` 函式在 Matplotlib 中建立箱線圖。此函式允許我們自定義箱線圖的外觀,例如更改須線長度、新增凹口以及指定異常值的顯示。
`boxplot()` 函式
Matplotlib 中的 `boxplot()` 函式接受一個或多個數據集作為輸入,併為每個資料集生成一個箱線圖。
以下是 Matplotlib 中 `boxplot()` 函式的語法 -
語法
plt.boxplot(x, notch=None, patch_artist=None, widths=None, labels=None, ...)
其中,
x 是要建立箱線圖的資料集或資料集列表。
如果notch(可選)為 True,則建立垂直箱線圖;如果為 False,則建立水平箱線圖。
如果patch_artist(可選)為 True,則用顏色填充箱體。
widths(可選)代表箱體的寬度。
labels(可選)為每個資料集設定標籤,在繪製多個箱線圖時非常有用。
這些只是一些引數;還有更多可選引數可用於自定義。
帶凹口的水平箱線圖
我們可以建立一個帶凹口的水平箱線圖,以水平方向顯示資料集的分佈。它包括中位數線周圍的凹口,提供了對中位數值周圍不確定性的視覺估計。
示例
在下面的示例中,我們正在建立一個帶凹口的水平箱線圖,用於三個資料集,其中每個箱體表示沿 y 軸類別的值集 -
import matplotlib.pyplot as plt # Data data = [[1, 2, 3, 4, 5], [3, 6, 8, 10, 12], [5, 10, 15, 20, 25]] # Creating a horizontal box plot with notches plt.boxplot(data, vert=False, notch=True) plt.title('Horizontal Box Plot with Notches') plt.xlabel('Values') plt.ylabel('Categories') plt.show()
輸出
執行上述程式碼後,我們將得到以下輸出 -

帶自定義顏色的箱線圖
我們可以建立一個帶自定義顏色的箱線圖,以不同的顏色圖形化地表示資料以填充箱體。每個箱體代表一個類別中值的分佈,透過新增自定義顏色,我們引入了風格化的觸感,使類別之間的區分更容易。
示例
在這裡,我們透過用自定義顏色(即天藍色)填充箱體來增強箱線圖 -
import matplotlib.pyplot as plt data = [[1, 2, 3, 4, 5], [3, 6, 8, 10, 12], [5, 10, 15, 20, 25]] # Creating a box plot with custom colors plt.boxplot(data, patch_artist=True, boxprops=dict(facecolor='skyblue')) plt.title('Box Plot with Custom Colors') plt.xlabel('Categories') plt.ylabel('Values') plt.show()
輸出
以下是上述程式碼的輸出 -

分組箱線圖
我們可以建立一個分組箱線圖來並排比較多個組的分佈。每個組都有自己的一組箱體,其中每個箱體代表該組中值的分佈。
示例
現在,我們正在建立一個分組箱線圖來比較三個不同班級 (A、B 和 C) 的學生考試成績。每個箱體代表一個班級中分數的分佈,使我們能夠輕鬆觀察和比較三個班級的集中趨勢、離散程度和潛在異常值 -
import matplotlib.pyplot as plt import numpy as np class_A_scores = [75, 80, 85, 90, 95] class_B_scores = [70, 75, 80, 85, 90] class_C_scores = [65, 70, 75, 80, 85] # Creating a grouped box plot plt.boxplot([class_A_scores, class_B_scores, class_C_scores], labels=['Class A', 'Class B', 'Class C']) plt.title('Exam Scores by Class') plt.xlabel('Classes') plt.ylabel('Scores') plt.show()
輸出
執行上述程式碼後,我們將得到以下輸出 -

帶異常值的箱線圖
帶異常值的箱線圖是資料的圖形表示,其中包含有關資料集中極值的其他資訊。在標準箱線圖中,我們將異常值(與大多數資料顯著不同的資料點)表示為超出從箱體延伸的“須線”的單個點。
此圖有助於識別可能對資料的整體分佈產生重大影響的異常值。
示例
在下面的示例中,我們正在建立一個箱線圖,該圖直觀地表示每種產品的銷售分佈,而異常值則突出顯示銷售額異常高或低的月份 -
import matplotlib.pyplot as plt import numpy as np # Data for monthly sales product_A_sales = [100, 110, 95, 105, 115, 90, 120, 130, 80, 125, 150, 200] product_B_sales = [90, 105, 100, 98, 102, 105, 110, 95, 112, 88, 115, 250] product_C_sales = [80, 85, 90, 78, 82, 85, 88, 92, 75, 85, 200, 95] # Introducing outliers product_A_sales.extend([300, 80]) product_B_sales.extend([50, 300]) product_C_sales.extend([70, 250]) # Creating a box plot with outliers plt.boxplot([product_A_sales, product_B_sales, product_C_sales], sym='o') plt.title('Monthly Sales Performance by Product with Outliers') plt.xlabel('Products') plt.ylabel('Sales') plt.show()
輸出
執行上述程式碼後,我們將得到以下輸出 -
