溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python?Matplotlib繪制箱線圖boxplot()函數怎么使用

發布時間:2022-07-13 11:04:45 來源:億速云 閱讀:1484 作者:iii 欄目:開發技術

Python Matplotlib繪制箱線圖boxplot()函數怎么使用

1. 概述

在數據分析和可視化中,箱線圖(Boxplot)是一種常用的統計圖表,用于顯示一組數據的分布情況。箱線圖能夠直觀地展示數據的中位數、四分位數、異常值等信息,幫助我們快速了解數據的集中趨勢和離散程度。

Matplotlib 是 Python 中最常用的數據可視化庫之一,提供了豐富的繪圖功能。其中,boxplot() 函數是用于繪制箱線圖的核心函數。本文將詳細介紹如何使用 Matplotlib 的 boxplot() 函數來繪制箱線圖,并通過多個示例展示其用法。

2. 箱線圖的基本概念

在深入探討 boxplot() 函數之前,我們先來了解一下箱線圖的基本概念。

2.1 箱線圖的組成部分

箱線圖主要由以下幾個部分組成:

  • 中位數(Median):數據集的中間值,即第50百分位數。
  • 四分位數(Quartiles)
    • 第一四分位數(Q1):數據集中25%的數據小于或等于該值。
    • 第三四分位數(Q3):數據集中75%的數據小于或等于該值。
  • 四分位距(IQR, Interquartile Range):Q3 與 Q1 之間的差值,即 IQR = Q3 - Q1。
  • 上下邊界(Whiskers):通常定義為 Q1 - 1.5 * IQR 和 Q3 + 1.5 * IQR 之間的范圍。
  • 異常值(Outliers):超出上下邊界的數據點,通常用點或星號表示。

2.2 箱線圖的作用

箱線圖的主要作用包括:

  • 展示數據的分布:通過箱線圖可以直觀地看到數據的集中趨勢和離散程度。
  • 識別異常值:箱線圖能夠有效地識別數據集中的異常值。
  • 比較不同組的數據:通過繪制多個箱線圖,可以比較不同組數據的分布情況。

3. Matplotlib 的 boxplot() 函數

Matplotlib 的 boxplot() 函數用于繪制箱線圖。該函數的基本語法如下:

matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=None, meanline=None, showmeans=None, showcaps=None, showbox=None, showfliers=None, boxprops=None, labels=None, flierprops=None, medianprops=None, meanprops=None, capprops=None, whiskerprops=None, manage_ticks=True, autorange=False, zorder=None)

3.1 主要參數說明

  • x:輸入數據,可以是一個數組或一組數組。如果是多個數組,每個數組將繪制一個箱線圖。
  • notch:是否繪制帶有缺口的箱線圖,默認為 False。如果為 True,則繪制帶有缺口的箱線圖,缺口表示中位數的置信區間。
  • sym:異常值的顯示符號,默認為 'b+'。
  • vert:是否繪制垂直箱線圖,默認為 True。如果為 False,則繪制水平箱線圖。
  • whis:定義上下邊界的范圍,默認為 1.5??梢允且粋€浮點數或一個包含兩個浮點數的元組。
  • positions:箱線圖的位置,默認為 [1, 2, ..., n]。
  • widths:箱線圖的寬度,默認為 0.5。
  • patch_artist:是否使用 Patch 對象繪制箱線圖,默認為 False。如果為 True,則可以使用 boxprops 參數自定義箱線圖的樣式。
  • labels:箱線圖的標簽,默認為 None。
  • showfliers:是否顯示異常值,默認為 True。
  • boxprops:箱線圖的屬性,如顏色、線寬等。
  • whiskerprops:上下邊界的屬性。
  • capprops:上下邊界的端線屬性。
  • medianprops:中位線的屬性。
  • meanprops:均值的屬性(如果 showmeansTrue)。
  • flierprops:異常值的屬性。

3.2 返回值

boxplot() 函數返回一個字典,包含以下鍵:

  • boxes:箱線圖的箱體對象。
  • medians:中位線對象。
  • whiskers:上下邊界對象。
  • caps:上下邊界的端線對象。
  • fliers:異常值對象。
  • means:均值對象(如果 showmeansTrue)。

4. 繪制基本箱線圖

4.1 單個箱線圖

首先,我們來看一個簡單的例子,繪制一個包含單個數據集的箱線圖。

import matplotlib.pyplot as plt
import numpy as np

# 生成隨機數據
data = np.random.normal(100, 20, 200)

# 繪制箱線圖
plt.boxplot(data)

# 顯示圖形
plt.show()

在這個例子中,我們使用 numpy 生成了一組正態分布的隨機數據,然后使用 boxplot() 函數繪制了箱線圖。plt.show() 用于顯示圖形。

4.2 多個箱線圖

接下來,我們來看一個繪制多個箱線圖的例子。

import matplotlib.pyplot as plt
import numpy as np

# 生成三組隨機數據
data1 = np.random.normal(100, 20, 200)
data2 = np.random.normal(80, 30, 200)
data3 = np.random.normal(90, 25, 200)

# 將數據組合成一個列表
data = [data1, data2, data3]

# 繪制箱線圖
plt.boxplot(data)

# 顯示圖形
plt.show()

在這個例子中,我們生成了三組隨機數據,并將它們組合成一個列表。然后,我們將這個列表傳遞給 boxplot() 函數,繪制了三個箱線圖。

5. 自定義箱線圖

5.1 修改箱線圖的樣式

我們可以通過 boxprops、whiskerprops、capprops、medianprops 等參數來自定義箱線圖的樣式。

import matplotlib.pyplot as plt
import numpy as np

# 生成隨機數據
data = np.random.normal(100, 20, 200)

# 繪制箱線圖,并自定義樣式
plt.boxplot(data, boxprops=dict(color='red', linewidth=2),
            whiskerprops=dict(color='blue', linewidth=2),
            capprops=dict(color='green', linewidth=2),
            medianprops=dict(color='orange', linewidth=2))

# 顯示圖形
plt.show()

在這個例子中,我們通過 boxprops、whiskerprops、capprops、medianprops 參數分別設置了箱體、上下邊界、端線和中位線的顏色和線寬。

5.2 顯示均值和異常值

我們可以通過 showmeansshowfliers 參數來控制是否顯示均值和異常值。

import matplotlib.pyplot as plt
import numpy as np

# 生成隨機數據
data = np.random.normal(100, 20, 200)

# 繪制箱線圖,并顯示均值和異常值
plt.boxplot(data, showmeans=True, showfliers=True)

# 顯示圖形
plt.show()

在這個例子中,我們通過 showmeans=Trueshowfliers=True 參數分別顯示了均值和異常值。

5.3 繪制水平箱線圖

我們可以通過 vert=False 參數來繪制水平箱線圖。

import matplotlib.pyplot as plt
import numpy as np

# 生成隨機數據
data = np.random.normal(100, 20, 200)

# 繪制水平箱線圖
plt.boxplot(data, vert=False)

# 顯示圖形
plt.show()

在這個例子中,我們通過 vert=False 參數繪制了水平箱線圖。

6. 繪制帶有缺口的箱線圖

我們可以通過 notch=True 參數來繪制帶有缺口的箱線圖,缺口表示中位數的置信區間。

import matplotlib.pyplot as plt
import numpy as np

# 生成隨機數據
data = np.random.normal(100, 20, 200)

# 繪制帶有缺口的箱線圖
plt.boxplot(data, notch=True)

# 顯示圖形
plt.show()

在這個例子中,我們通過 notch=True 參數繪制了帶有缺口的箱線圖。

7. 繪制分組箱線圖

我們可以通過 positions 參數來繪制分組箱線圖。

import matplotlib.pyplot as plt
import numpy as np

# 生成三組隨機數據
data1 = np.random.normal(100, 20, 200)
data2 = np.random.normal(80, 30, 200)
data3 = np.random.normal(90, 25, 200)

# 將數據組合成一個列表
data = [data1, data2, data3]

# 定義箱線圖的位置
positions = [1, 2, 4]

# 繪制分組箱線圖
plt.boxplot(data, positions=positions)

# 顯示圖形
plt.show()

在這個例子中,我們通過 positions 參數定義了箱線圖的位置,從而繪制了分組箱線圖。

8. 總結

本文詳細介紹了如何使用 Matplotlib 的 boxplot() 函數來繪制箱線圖。我們從箱線圖的基本概念入手,逐步講解了 boxplot() 函數的主要參數和用法,并通過多個示例展示了如何繪制基本箱線圖、自定義箱線圖、繪制水平箱線圖、帶有缺口的箱線圖以及分組箱線圖。

通過掌握 boxplot() 函數的使用,您可以輕松地在 Python 中繪制出各種類型的箱線圖,從而更好地理解和分析數據的分布情況。希望本文對您有所幫助!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女