使用 Seaborn 在 Python 中繪製水平箱線圖和點
箱線圖是用於資料集資料視覺化的最流行的工具之一,主要使用名為 Seaborn 的 Python 庫建立,該庫提供了一種簡單而強大的方法來建立水平和垂直箱線圖以及其他型別的視覺化。
在本文中,我們將重點介紹如何在 Python 中使用 Seaborn 建立帶有點的水平箱線圖。
什麼是箱線圖?
首先,讓我們定義什麼是箱線圖。箱線圖是資料集的圖形表示,它使用異常值、四分位數和中位數來傳達資料集中資料的分佈情況。圖中間的框表示資料的四分位距 (IQR),須線延伸到距中位數一定距離內的最小值和最大值。異常值表示為須線外的單個點。
使用 Seaborn 繪製帶有點的水平箱線圖
讓我們開始學習如何在 Python 中使用 Seaborn 建立帶有點的水平箱線圖。我們將使用 Seaborn 庫中的名為“tips”的資料集,其中包含的資訊包含總賬單金額和餐廳一週中的日期等列。
以下是我們將遵循的步驟,以便使用 Seaborn 在 Python 中建立帶有點的水平箱線圖:
匯入所有必要的庫,如 seaborn 和 matplotlib。
使用 sns.load_dataset() 函式載入“tips”資料集:
然後,我們可以使用 sns.boxplot() 函式建立水平箱線圖。
我們將 x 和 y 變數分別設定為“total_bill”和“day”,以便在 x 軸上繪製總賬單金額,在 y 軸上繪製一週中的日期。
我們還將 whis 引數設定為 [0, 100] 以顯示資料的全部範圍,並使用 width 和 fliersize 引數調整箱線圖的寬度和異常值的大小。
最後,我們將 orient 引數設定為“h”以建立水平箱線圖。
接下來,我們可以使用 sns.swarmplot() 函式將單個數據點新增到圖中。
我們再次將 x 和 y 變數設定為“total_bill”和“day”,並使用 size 和 color 引數調整點的尺寸和顏色。
我們還將 orient 引數設定為“h”以建立水平 swarm 圖。
最後,我們使用標準的 Matplotlib 函式 plt.title()、plt.xlabel() 和 plt.ylabel() 為圖新增標題和軸標籤。
然後,我們可以使用 plt.show() 函式顯示圖。
示例
import seaborn as snsb
import matplotlib.pyplot as pltt
# Load example dataset
tips_df = snsb.load_dataset("tips")
# Create horizontal boxplot with points
snsb.boxplot(x="total_bill", y="day", data=tips_df, whis=[0, 100], width=.6, fliersize=5, orient="h")
snsb.swarmplot(x="total_bill", y="day", data=tips_df, color=".2", size=3, orient="h")
# Add title and axis labels
pltt.title("Total Bill by Day")
pltt.xlabel("Total Bill ($)")
pltt.ylabel("Day of Week")
# Show plot
pltt.show()
輸出

自定義水平箱線圖的程式
import seaborn as snss
import matplotlib.pyplot as pltt
# Load example dataset
tips_df = snss.load_dataset("tips")
# Set style and color palette
snss.set_style("whitegrid")
snss.set_palette("husl")
# Create horizontal boxplot with points
snss.boxplot(x="total_bill", y="day", data=tips_df, whis=[0, 100], width=.6, fliersize=5, orient="h")
snss.swarmplot(x="total_bill", y="day", data=tips_df, color="black", size=4, orient="h")
# Customize plot appearance
pltt.title("Total Bill by Day", fontsize=14, fontweight="bold")
pltt.xlabel("Total Bill ($)", fontsize=12)
pltt.ylabel("Day of Week", fontsize=12)
pltt.xticks(fontsize=10)
pltt.yticks(fontsize=10)
# Adjust plot dimensions
pltt.figure(figsize=(8, 6))
# Show plot
pltt.show()
輸出

在上面的自定義程式中,我們首先匯入必要的庫,包括 Seaborn 和 Matplotlib。
使用 Seaborn 中的 sns.load_dataset() 函式載入名為“tips”的示例資料集。
透過使用 sns.set_style() 將樣式設定為“whitegrid”來自定義圖的外觀。此外,我們使用 sns.set_palette() 將調色盤設定為“husl”。
使用 sns.boxplot() 建立水平箱線圖,分別指定 x 和 y 變數為“total_bill”和“day”。
我們調整了 whis、width 和 fliersize 等各種引數來自定義箱線圖的外觀。
為了新增單個數據點,我們使用 sns.swarmplot() 並自定義其顏色、大小和方向。
為了進一步自定義圖的外觀,我們使用 Matplotlib 中的 plt.title()、plt.xlabel() 和 plt.ylabel() 函式修改標題、x 軸標籤和 y 軸標籤。
我們還使用字型大小調整標題、標籤和刻度的字型大小。
此外,我們可以透過指定圖形大小並將其作為元組傳遞給 plt.figure() 來調整圖形的尺寸。
最後,我們使用 plt.show() 顯示帶有點的自定義水平箱線圖。
結論
總之,使用 Seaborn 在 Python 中建立帶有點的水平箱線圖是資料視覺化、資料分佈和探索不同變數之間關係的重要技術。我們使用了 seaborn 的 boxplot() 和 swarmplot() 函式來建立視覺上吸引人的水平箱線圖,這些圖描繪了關鍵的統計量度,如中位數、異常值和四分位數。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP