Python数据分析工具:Seaborn用法示例

发布于:2024-10-10 ⋅ 阅读:(10) ⋅ 点赞:(0)

Seaborn

是一个基于Python的数据可视化库,它提供了许多高级接口来绘制吸引人的统计图形。以下是Seaborn的一些常见用法示例:

一、安装与导入

首先,确保已经安装了Seaborn库。如果尚未安装,可以使用以下命令进行安装:

pip install seaborn

然后,在Python脚本或Jupyter Notebook中导入Seaborn库:

import seaborn as sns  
import matplotlib.pyplot as plt

二、基础绘图

散点图(Scatter Plot)
散点图常用于展示两个变量之间的关系。使用sns.scatterplot()函数可以绘制散点图。

# 加载示例数据集  
tips = sns.load_dataset("tips")  
# 绘制散点图  
sns.scatterplot(x="total_bill", y="tip", data=tips)  
plt.title("Total Bill vs Tip")  
plt.show()

条形图(Bar Plot)

条形图用于展示不同类别的数据。使用sns.barplot()函数可以绘制条形图。

# 绘制条形图  
sns.barplot(x="day", y="total_bill", data=tips)  
plt.title("Total Bill by Day")  
plt.show()

箱线图(Box Plot)

箱线图用于展示数据的分布情况。使用sns.boxplot()函数可以绘制箱线图。

# 绘制箱线图  
sns.boxplot(x="day", y="total_bill", data=tips)  
plt.title("Total Bill Distribution by Day")  
plt.show()

三、高级绘图

联合分布图(Joint Plot)
联合分布图可以同时展示两个变量的单变量分布和双变量分布。使用sns.jointplot()函数可以绘制联合分布图。

# 绘制联合分布图  
sns.jointplot(x="total_bill", y="tip", data=tips, kind="hex")  
plt.show()

成对关系图(Pair Plot)
成对关系图用于展示数据集中每对变量之间的关系。使用sns.pairplot()函数可以绘制成对关系图。

# 绘制成对关系图  
sns.pairplot(tips, hue="sex")  
plt.show()

热图(Heatmap)
热图用于展示矩阵数据,并在矩阵单元格中使用颜色编码表示数值的大小。使用sns.heatmap()函数可以绘制热图。

# 计算相关性矩阵  
corr = tips.corr()  
# 绘制热图  
sns.heatmap(corr, annot=True, cmap="coolwarm", linewidths=.5)  
plt.title("Correlation Matrix")  
plt.show()

四、自定义与高级功能

自定义调色板与风格
Seaborn允许用户高度自定义图表的外观,包括调色板、风格等。

# 设置调色板  
sns.set_palette("pastel")  
# 绘制箱线图  
sns.boxplot(x="day", y="total_bill", data=tips)  
plt.title("Total Bill Distribution by Day with Pastel Palette")  
plt.show()  
  
# 设置图表风格  
sns.set_style("whitegrid")  
# 绘制箱线图  
sns.boxplot(x="day", y="total_bill", data=tips)  
plt.title("Total Bill Distribution by Day with Whitegrid Style")  
plt.show()

使用FacetGrid和PairGrid
FacetGrid和PairGrid是Seaborn中用于生成多图可视化的工具。

FacetGrid:用于创建子图网格,可以展示数据集的不同子集。
PairGrid:用于生成变量之间的成对关系图。
以下是使用FacetGrid和PairGrid的示例:

# 加载示例数据集  
churn = pd.read_csv("/content/BankChurners.csv", usecols=['Attrition_Flag', 'Gender', 'Customer_Age']).sample(n=1000)  
  
# 使用FacetGrid创建子图网格  
g = sns.FacetGrid(churn, col='Attrition_Flag', height=4, aspect=1.2)  
g.map(sns.histplot, 'Customer_Age')  
plt.show()  
  
# 使用PairGrid生成成对关系图  
cols = ['Credit_Limit', 'Total_Trans_Amt', 'Customer_Age']  
g = sns.PairGrid(churn[cols], height=3)  
g.map_diag(sns.histplot)  
g.map_offdiag(sns.scatterplot)  
plt.show()

这些示例展示了Seaborn在数据可视化方面的强大功能。通过学习和实践这些示例,可以更好地理解和使用Seaborn进行数据分析和可视化。