# Python中Seaborn庫如何使用
## 1. Seaborn簡介
Seaborn是基于Matplotlib的Python數據可視化庫,它提供了更高級的API接口,使得創建統計圖形更加簡單美觀。由Michael Waskom于2012年創建,Seaborn特別適合處理Pandas數據框,并完美集成到Python數據科學工作流中。
### 核心優勢
- **美觀的默認樣式**:內置專業圖表樣式和調色板
- **簡化復雜可視化**:用單行代碼創建復雜統計圖形
- **與Pandas無縫集成**:直接處理DataFrame數據結構
- **統計功能集成**:內置統計模型可視化方法
## 2. 安裝與環境配置
### 安裝方法
```bash
pip install seaborn
# 或使用conda
conda install seaborn
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
sns.set_theme() # 激活Seaborn默認主題
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解決中文顯示問題
plt.rcParams['axes.unicode_minus'] = False # 解決負號顯示問題
tips = sns.load_dataset("tips")
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="time")
plt.title("消費金額與小費關系")
plt.show()
fmri = sns.load_dataset("fmri")
sns.lineplot(data=fmri, x="timepoint", y="signal", hue="event")
titanic = sns.load_dataset("titanic")
sns.barplot(data=titanic, x="class", y="fare", hue="sex")
sns.boxplot(data=tips, x="day", y="total_bill", hue="smoker")
iris = sns.load_dataset("iris")
sns.pairplot(iris, hue="species", palette="husl")
flights = sns.load_dataset("flights").pivot("month", "year", "passengers")
sns.heatmap(flights, annot=True, fmt="d", cmap="YlGnBu")
g = sns.FacetGrid(tips, col="time", row="smoker")
g.map(sns.scatterplot, "total_bill", "tip")
sns.jointplot(data=tips, x="total_bill", y="tip", kind="reg")
styles = ["darkgrid", "whitegrid", "dark", "white", "ticks"]
for style in styles:
sns.set_style(style)
sns.lineplot(data=fmri, x="timepoint", y="signal")
plt.show()
palettes = ["deep", "muted", "bright", "pastel", "dark", "colorblind"]
sns.palplot(sns.color_palette("husl", 8))
contexts = ["paper", "notebook", "talk", "poster"]
sns.set_context("talk")
sns.barplot(data=titanic, x="class", y="fare")
sns.regplot(data=tips, x="total_bill", y="tip", ci=95)
sns.histplot(data=tips, x="total_bill", kde=True, stat="density")
sns.swarmplot(data=tips, x="day", y="total_bill", hue="sex")
fig, axes = plt.subplots(2, 2, figsize=(12, 8))
sns.boxplot(data=tips, x="day", y="total_bill", ax=axes[0,0])
sns.violinplot(data=tips, x="day", y="total_bill", ax=axes[0,1])
sns.scatterplot(data=tips, x="total_bill", y="tip")
sns.kdeplot(data=tips, x="total_bill", y="tip", alpha=0.5)
# 數據準備
titanic = sns.load_dataset("titanic")
titanic.dropna(inplace=True)
# 創建復合圖形
grid = sns.FacetGrid(titanic, col="survived", row="pclass", height=4)
grid.map(sns.histplot, "age", bins=20)
# 生存率熱力圖
survive_rate = titanic.groupby(['class','sex'])['survived'].mean().unstack()
sns.heatmap(survive_rate, annot=True, cmap="coolwarm", fmt=".2%")
rasterized=True
參數dpi
值from matplotlib import rcParams
rcParams['font.sans-serif'] = ['SimHei']
rcParams['axes.unicode_minus'] = False
plt.savefig("output.png", dpi=300, bbox_inches="tight")
plt.legend(loc="upper right", bbox_to_anchor=(1.3, 1))
set_theme()
開始sns.get_dataset_names()
通過本文的系統學習,您應該已經掌握了Seaborn的核心功能和使用方法。建議讀者通過實際項目練習來鞏固這些知識,Seaborn的真正威力只有在解決實際問題時才能完全展現。記住,優秀的數據可視化不僅是技術實現,更是清晰傳達數據洞見的藝術。 “`
注:本文實際約2850字(含代碼),完整執行需要安裝Seaborn 0.12+和Matplotlib 3.5+版本。所有示例數據均來自Seaborn內置數據集。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。