如何使用 Python 中的 Seaborn 建立帶有資料點的箱線圖?
箱線圖是總結資料集分佈的強大視覺化工具。它們提供了重要的統計引數,包括中位數、四分位數和可能的異常值。然而,傳統的箱線圖只提供彙總統計資料,因此可能無法提供資料的完整畫面。
在本文中,我們將學習如何使用 Python 中的 Seaborn 建立帶有資料點的箱線圖。Seaborn 是一個基於 matplotlib 的流行資料視覺化庫。它提供了一個高階介面,用於建立漂亮的統計圖形。我們可以使用 Seaborn 和 Matplotlib 的功能建立帶有重疊資料點的箱線圖,從而對資料集進行更深入的檢查。
多種方法
為了使用 Python 中的 Seaborn 建立帶有資料點的箱線圖,我們可以遵循以下兩種方法:
透過在箱線圖上疊加資料點。
利用箱線圖的箱形圖。
讓我們來研究這兩種方法:
方法 1:透過在箱線圖上疊加資料點
在這種方法中,我們透過在標準箱線圖的頂部新增單個數據點來增強它們。透過視覺化單個數據點以及彙總統計資料,我們可以更好地理解資料集的分佈。使用這種方法,我們可以檢查資料中的異常值和模式,以獲得有洞察力的見解。
演算法
步驟如下:
步驟 1 - 匯入 seaborn 和 matplotlib.pyplot。
步驟 2 - 準備或載入資料集。
步驟 3 - 使用 seaborn.boxplot() 函式,可以使用資料集和所需的設定建立箱線圖。
步驟 4 - 從箱線圖中提取 Axes 物件。
步驟 5 - 使用 matplotlib.pyplot.scatter() 方法,遍歷資料集並繪製每個資料點。
步驟 6 - 根據需要調整箱線圖和資料點的外觀。
步驟 7 - 使用 matplotlib.pyplot.show() 顯示繪圖。
示例
#import the required modules
import seaborn as sns
import matplotlib.pyplot as plt
# The dataset are Loaded and generated
data = [10, 15, 20, 22, 25, 30, 32, 35, 40, 45, 50]
# Construct a boxplot
sns.boxplot(data=data)
# The Axes object is retrieved the Axes object
ax = plt.gca()
# Data points
for i, point in enumerate(data):
plt.scatter(i, point, color='red', alpha=0.5)
# Customize appearance
ax.set_xticklabels([]) # Hide x-axis labels (optional)
plt.xlabel('Data')
plt.ylabel('Values')
# Display the plot
plt.show()
輸出

方法 2:利用箱線圖的箱形圖。
在這種方法中,我們一起使用箱形圖和箱線圖來建立全面的視覺化效果。箱形圖排列每個資料點,使它們不重疊,從而提供資料集的更清晰顯示。透過將箱形圖與箱線圖疊加,我們可以同時檢視單個數據點和彙總統計資料,從而能夠更深入地研究資料。當處理較大的資料集時,這種方法特別有用,在這些資料集中,重疊的資料點可能會掩蓋模式和趨勢。
演算法
步驟如下:
步驟 1 - 匯入 seaborn 和 matplotlib.pyplot。
步驟 2 - 建立或載入資料集。
步驟 3 - 使用 seaborn.swarmplot() 函式建立箱形圖,提供資料集和所需的設定。
步驟 4 - 根據需要調整箱形圖的外觀。
步驟 5 - 使用 seaborn.boxplot() 函式,可以在箱形圖上疊加箱線圖。
步驟 6 - 根據需要調整箱線圖的外觀。
步驟 7 - 使用 matplotlib.pyplot.show() 顯示繪圖。
示例
#import the required modules
import seaborn as sns
import matplotlib.pyplot as plt
# The dataset is Loaded and generated
data = [10, 15, 20, 22, 25, 30, 32, 35, 40, 45, 50]
# Build a swarmplot
sns.swarmplot(data=data, color='grey')
# Customize the appearance of swarmplot
plt.xlabel('Data')
plt.ylabel('Values')
# Overlay a boxplot
sns.boxplot(data=data, width=0.2, color='white')
# Customize the appearance of the boxplot
plt.ylim(0, 60)
# Show the plot
plt.show()
輸出

結論
在本文中,我們研究了兩種使用 Python 中的 Seaborn 庫建立帶有疊加資料點的箱線圖的方法。第二種方法使用箱線圖的箱形圖。我們透過包含單個數據點來增強視覺化效果,這使我們能夠更深入地瞭解資料集的分佈。為了處理更大的資料集,我們學習瞭如何將箱形圖與箱線圖結合起來,以及如何在箱線圖上疊加資料點。由於 Seaborn 與 Matplotlib 的介面,可以高度自定義繪圖以滿足您的特定需求。這些方法使您能夠獲得有洞察力的見解並透過視覺化效果有說服力地呈現您的發現。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP