Python数据分析工具:Seaborn用法示例
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进行数据分析和可视化。