在 Matplotlib 中建立分組條形圖


什麼是 Matplotlib?

Matplotlib 是一個流行的開源 Python 資料視覺化庫,廣泛應用於科學、工程和資料科學領域。Matplotlib 以其靈活性和廣泛的可定製選項而聞名,這使其成為建立用於研究或資料分析的複雜視覺化的絕佳選擇。最流行的視覺化型別之一是分組條形圖,它允許並排比較多個變數,同時顯示組或子類別之間的差異。在本教程中,我們將向您展示如何使用現實世界的例子在 Matplotlib 中建立分組條形圖。

條形圖在資料分析中的用途和意義是什麼?

條形圖是一種常用的資料分析視覺化工具,用於顯示分類資料的分佈。在條形圖中,類別通常顯示在 x 軸上,而每個條形的高度表示每個類別中觀察值的頻率或比例。

條形圖的意義取決於分析的上下文和目的。以下是條形圖如何有用的幾個例子:

比較頻率或比例 - 條形圖可用於比較不同類別中觀察值的頻率或比例。例如,條形圖可用於比較臨床試驗中患有不同型別疾病的患者人數,或市場研究中偏好不同品牌產品的顧客比例。每個條形的高度代表每個類別中觀察值的頻率或比例,便於直觀比較。

顯示隨時間或其他變數變化的趨勢 - 條形圖也可用於顯示隨時間或其他變數變化的觀察值的頻率或比例。例如,條形圖可用於顯示商店中顧客在不同時間段購買不同產品的數量。透過對每個時間段使用不同的顏色或圖案,可以很容易地看出購買分佈如何隨時間變化。

識別異常值或異常觀察值 - 條形圖也可用於識別異常值或異常觀察值。如果一個類別的頻率或比例遠高於或低於其他類別,則可能表示存在異常觀察值或資料錯誤。

在統計顯著性方面,條形圖通常用作描述性工具,而不是正式的統計檢驗。但是,它們仍然可以提供關於分類資料分佈的有用資訊,並有助於識別可能感興趣的模式或趨勢。需要注意的是,如果條形圖構建不當或資料不適合此類視覺化,則可能會產生誤導。因此,務必仔細考慮分析的目的,並相應地選擇合適的視覺化工具。

先決條件

在我們深入探討任務之前,需要在您的系統上安裝一些東西:

推薦設定列表:

  • pip install pandas, matplotlib

  • 使用者應能夠訪問任何獨立的 IDE,例如 VS-Code、PyCharm、Atom 或 Sublime text。

  • 也可以使用線上 Python 編譯器,例如 Kaggle.com、Google Cloud Platform 或其他任何編譯器。

  • 更新版本的 Python。在撰寫本文時,我使用了 3.10.9 版本。

  • 瞭解 Jupyter notebook 的使用方法。

  • 虛擬環境的知識和應用將是有益的,但不是必需的。

  • 還預計使用者對統計學和數學有很好的理解。

完成任務所需的步驟

讓我們看看程式碼示例和步驟:

示例

import numpy as np
import matplotlib.pyplot as plt

# Define the data for the plot
data = {
   'Group 1': [20, 35, 30, 35, 27],
   'Group 2': [25, 32, 34, 20, 25],
   'Group 3': [12, 20, 22, 30, 15],
}

# Define the x-axis labels and the width of each bar
labels = ['Category 1', 'Category 2', 'Category 3', 'Category 4', 'Category 5']
bar_width = 0.2

# Create a numpy array of the x-axis positions for each group of bars
x_pos = np.arange(len(labels))

# Create a figure and axis object
fig, ax = plt.subplots()

# Loop through each group of bars and create a set of bars for each group
for i, (group, values) in enumerate(data.items()):
   # Calculate the x-axis position for the current group of bars
   pos = x_pos + (i * bar_width)
   # Create a set of bars for the current group
   ax.bar(pos, values, width=bar_width, label=group)

# Set the x-axis labels and tick positions
ax.set_xticks(x_pos + ((len(data) - 1) / 2) * bar_width)
ax.set_xticklabels(labels)

# Add a legend to the plot
ax.legend()

# Add axis labels and a title to the plot
ax.set_xlabel('Categories')
ax.set_ylabel('Values')
ax.set_title('Grouped Bar Plot')

# Show the plot
plt.show()

在這個例子中,我們有三組條形圖(組 1、組 2 和組 3)和五個類別(類別 1、類別 2、類別 3、類別 4 和類別 5)。我們使用 Python 字典定義繪圖資料,其中鍵表示組,值是每個類別的值列表。我們還定義了每個條形的寬度和 x 軸的標籤。

然後,我們使用 np.arange() 函式建立一個包含每組條形圖 x 軸位置的 NumPy 陣列。我們使用 plt.subplots() 函式建立圖形和軸物件。然後,我們遍歷每組條形圖,並使用 ax.bar() 函式為每組建立一組條形圖。我們分別使用 ax.set_xticks() 和 ax.set_xticklabels() 函式設定 x 軸標籤和刻度位置。我們使用 ax.legend() 函式向繪圖新增圖例。最後,我們使用 ax.set_xlabel()、ax.set_ylabel() 和 ax.set_title() 函式向繪圖新增軸標籤和標題。我們使用 plt.show() 函式顯示繪圖。

此程式碼應該建立一個分組條形圖,其中包含三組條形圖、五個類別以及相應的標籤、圖例和軸標題。您可以修改資料、標籤和其他引數以滿足您的特定需求。

輸出

這張圖片顯示了使用 matplotlib 的不同分組條形圖

結論

在本教程中,我們逐步向您展示瞭如何使用實際示例在 Matplotlib 中建立分組條形圖。我們涵蓋了分組條形圖的所有主要方面,包括基本結構、水平分組條形圖、堆疊分組條形圖以及帶有標籤和圖例的分組條形圖。按照本教程中概述的說明,您應該能夠為您的研究或資料分析目的建立您自己的自定義分組條形圖。

更新於:2023年4月20日

3K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.