Seaborn 是一個基於 Matplotlib 的 Python 資料視覺化庫,旨在使統計圖形的繪製更加簡便且美觀。它特別適合進行探索性數據分析,並且提供了許多方便的 API 來快速生成各類圖形。
# 可使用目錄功能快速確認要閱覽的主題
Seaborn 提供了一個簡單且美觀的方式來進行資料視覺化,尤其是在進行統計分析時。Matplotlib 則提供了更靈活和強大的自定義功能,但可能需要更多的代碼和設置。兩者常常被結合使用,根據需要選擇適合的工具來進行視覺化。
【資料分析】python資料視覺化,Matplotlib基礎操作語法彙整
sns.scatterplot
: 當你想探索兩個連續變數之間的關係時,使用散佈圖。sns.lineplot
: 當你需要展示數據隨時間或其他連續變數變化的趨勢時,使用折線圖。sns.barplot
: 當你想比較分類變數的平均值或總值時,使用柱狀圖。sns.histplot
: 當你需要了解數據的分佈狀況時,使用直方圖。sns.boxplot
: 當你想展示數據的集中趨勢及離群點時,使用箱線圖。sns.heatmap
: 當你想可視化變數之間的相關性或矩陣數據時,使用熱力圖。sns.pairplot
: 當你需要同時查看多個變數之間的兩兩關係時,使用成對關係圖。sns.scatterplot
用於顯示兩個數值變量之間的關係,並可以通過顏色和大小來表示其他維度。
import seaborn as sns
import matplotlib.pyplot as plt
# 加載內建的 iris 數據集
iris = sns.load_dataset("iris")
# 繪製散佈圖
sns.scatterplot(x="sepal_length", y="sepal_width", hue="species", data=iris)
plt.show()
total_bill
) 與小費 (tip
) 之間的關係。hue
、style
或 size
參數來檢視分類變數如何影響變數之間的關係。import seaborn as sns
import matplotlib.pyplot as plt
# 生成樣本數據
tips = sns.load_dataset("tips")
# 繪製散佈圖
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="day", style="time", size="size", palette="viridis", alpha=0.7)
plt.title('Scatterplot of Total Bill vs Tip')
plt.show()
x
:X 軸數據y
:Y 軸數據hue
:根據某變量的值來調整點的顏色style
:根據某變量的值來調整點的樣式size
:根據某變量的值來調整點的大小palette
:設置顏色調色盤alpha
:設置點的透明度sns.lineplot
用於顯示數值變量隨著某一維度(通常是時間)變化的趨勢。
# 加載內建的 flights 數據集
flights = sns.load_dataset("flights")
# 繪製折線圖
sns.lineplot(x="year", y="passengers", data=flights)
plt.show()
hue
和 style
來區分不同的組別。# 繪製折線圖
sns.lineplot(data=tips, x="size", y="total_bill", hue="day", style="time", markers=True, dashes=False, errorbar="sd")
plt.title('Lineplot of Total Bill by Party Size')
plt.show()
x
:X 軸數據y
:Y 軸數據hue
:根據某變量的值來調整線條顏色style
:根據某變量的值來調整線條樣式markers
:設置是否顯示標記點dashes
:設置是否顯示虛線errorbar
:設置置信區間sns.barplot
用於顯示類別變量與數值變量之間的關係,通常用於比較不同組別的平均值。
# 繪製柱狀圖
sns.barplot(x="species", y="sepal_width", data=iris)
plt.show()
hue
可以觀察不同組別間的差異,例如性別對總賬單金額的影響。# 繪製條形圖
sns.barplot(data=tips, x="day", y="total_bill", hue="sex", errorbar="sd", palette="coolwarm")
plt.title('Barplot of Total Bill by Day and Sex')
plt.show()
x
:X 軸數據(分類變量)y
:Y 軸數據(數值變量)hue
:根據某變量的值來調整柱子的顏色errorbar
:設置置信區間estimator
:設置用於計算條形高度的函數(默認為平均值)palette
:設置顏色調色盤sns.histplot
用於顯示數值變量的分佈情況,可以用於單一變量或多變量的直方圖繪製。
# 繪製直方圖
sns.histplot(iris["sepal_length"], kde=True)
plt.show()
hue
可以觀察不同組別的數據分佈情況,例如性別對小費分佈的影響。# 繪製直方圖
sns.histplot(data=tips, x="total_bill", hue="sex", bins=20, kde=True, palette="magma")
plt.title('Histogram of Total Bill')
plt.show()
x
:X 軸數據y
:Y 軸數據(可選)hue
:根據某變量的值來調整顏色bins
:設置直方圖的分箱數量multiple
:設置如何處理不同類別的數據(例如 stack
或 dodge
)kde
:設置是否顯示核密度估計sns.heatmap
用於顯示矩陣數據的顏色編碼表示,通常用於顯示相關矩陣或數據透視表。
# 繪製熱力圖
flights_pivot = flights.pivot("month", "year", "passengers")
sns.heatmap(flights_pivot, annot=True, fmt="d")
plt.show()
# 繪製熱力圖
correlation_matrix = tips.corr()
sns.heatmap(data=correlation_matrix, annot=True, fmt=".2f", cmap="coolwarm", linewidths=0.5, linecolor="black")
plt.title('Correlation Matrix Heatmap')
plt.show()
data
:矩陣數據(如相關矩陣)annot
:設置是否在每個格子中顯示數值fmt
:設置顯示數值的格式(如 .2f
顯示兩位小數)cmap
:設置顏色地圖linewidths
:設置格子之間的間隔線寬度linecolor
:設置格子之間的間隔線顏色sns.pairplot
用於顯示數據集中所有變量之間的成對關係,特別適合初步探索數據的關聯性。
# 繪製成對圖
sns.pairplot(iris, hue="species")
plt.show()
# 繪製成對關係圖
sns.pairplot(data=tips, hue="sex", palette="husl", kind="scatter", diag_kind="kde")
plt.title('Pairplot of Tips Dataset')
plt.show()
hue
:根據某變量的值來調整顏色palette
:設置顏色調色盤kind
:設置散佈圖的類型(如 scatter
或 kde
)diag_kind
:設置對角線圖的類型(如 hist
或 kde
)sns.boxplot
用於顯示數值變量的分佈情況及其異常值,通常用於比較多個組別的數值變量。
# 繪製箱線圖
sns.boxplot(x="species", y="sepal_length", data=iris)
plt.show()
hue
可以比較不同組別之間的數據分佈差異,例如性別對總賬單金額分佈的影響。# 繪製箱線圖
sns.boxplot(data=tips, x="day", y="total_bill", hue="sex", palette="Set2", fliersize=5)
plt.title('Boxplot of Total Bill by Day and Sex')
plt.show()
x
:X 軸數據(分類變量)y
:Y 軸數據(數值變量)hue
:根據某變量的值來調整箱線圖的顏色palette
:設置顏色調色盤fliersize
:設置離群點的大小width
:設置箱線圖的寬度