Boxplot 功能

Matplotlib 有自己的執行箱線圖 。該函式的相關方面是,預設情況下,箱線圖顯示紅線的中位數(百分位數 50%)。方框表示 Q1 和 Q3(百分位數 25 和 75),晶須給出了資料範圍的概念(可能在 Q1 - 1.5 IQR; Q3 + 1.5 IQR; IQR 是四分位數間距,但缺乏確認)。另請注意,超出此範圍的樣本將顯示為標記(這些標記為傳單)。

注意: 並非所有 boxplot 實現都遵循相同的規則。也許最常見的箱線圖使用鬍鬚來表示最小值和最大值(使傳單不存在)。另請注意,此圖有時稱為盒須圖盒須**圖

以下配方顯示了你可以使用 boxplot 的當前 matplotlib 實現執行的一些操作:

import matplotlib.pyplot as plt
import numpy as np

X1 = np.random.normal(0, 1, 500)
X2 = np.random.normal(0.3, 1, 500)

# The most simple boxplot
plt.boxplot(X1)
plt.show()

# Changing some of its features
plt.boxplot(X1, notch=True, sym="o") # Use sym="" to shown no fliers; also showfliers=False
plt.show()

# Showing multiple boxplots on the same window
plt.boxplot((X1, X2), notch=True, sym="o", labels=["Set 1", "Set 2"])
plt.show()

# Hidding features of the boxplot
plt.boxplot(X2, notch=False, showfliers=False, showbox=False, showcaps=False, positions=[4], labels=["Set 2"])
plt.show()

# Advanced customization of the boxplot
line_props = dict(color="r", alpha=0.3)
bbox_props = dict(color="g", alpha=0.9, linestyle="dashdot")
flier_props = dict(marker="o", markersize=17)
plt.boxplot(X1, notch=True, whiskerprops=line_props, boxprops=bbox_props, flierprops=flier_props)
plt.show()

這導致以下圖表:

StackOverflow 文件

  1. 預設的 matplotlib boxplot

StackOverflow 文件

  1. 使用函式引數更改 boxplot 的某些功能

StackOverflow 文件

  1. 同一繪圖視窗中的多個箱圖

StackOverflow 文件

  1. 隱藏箱線圖的一些功能

StackOverflow 文件

  1. 使用道具進行箱圖的高階自定義

如果你打算對你的 boxplot 進行一些高階定製,你應該知道你構建的道具詞典(例如):

line_props = dict(color="r", alpha=0.3)
bbox_props = dict(color="g", alpha=0.9, linestyle="dashdot")
flier_props = dict(marker="o", markersize=17)
plt.boxplot(X1, notch=True, whiskerprops=line_props, boxprops=bbox_props, flierprops=flier_props)
plt.show()

…大部分(如果不是全部)指向 Line2D 物件。這意味著只有該類中可用的引數可以更改。你會注意到 whiskerpropsboxpropsflierpropscapprops 等關鍵字的存在。這些是你提供道具詞典以進一步自定義它所需的元素。

注意:使用此實現進一步自定義 boxplot 可能會很困難。在某些情況下,使用其他 matplotlib 元素(例如補丁) 來構建自己的盒子圖可能是有利的(例如,對盒元素進行相當大的改變)。