说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Seaborn 是一个用于数据可视化的 Python 三方库,基于 matplotlib 构建,旨在使统计图表的绘制更容易和更美观。它提供了一个高级接口,简化了复杂数据的绘制过程,并支持绘制常见的统计图表,如散点图、线图、柱状图、箱线图等。它为数据探索和理解提供了一个高级接口,允许用户快速生成美观的统计图形。
可以通过 pip 安装 Seaborn:
pip install seaborn
在使用 Seaborn 前,通常需要导入必要的库并加载数据集:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# 加载示例数据集
data = sns.load_dataset("iris")
Seaborn 提供了几种默认主题,可以通过 sns.set_style 设置图表的风格:
sns.set_style("whitegrid")
可用的主题有:darkgrid, whitegrid, dark, white, 和 ticks。
分布图用于显示单变量或双变量数据的分布情况。
# 直方图
sns.histplot(data['sepal_length'])
plt.show()
# KDE 图
sns.kdeplot(data['sepal_length'], fill=True)
plt.show()
sns.jointplot(x="sepal_length", y="sepal_width", data=data, kind="scatter")
plt.show()
类别图用于显示类别数据之间的关系。
sns.barplot(x="species", y="sepal_length", data=data)
plt.show()
sns.boxplot(x="species", y="sepal_length", data=data)
plt.show()
sns.violinplot(x="species", y="sepal_length", data=data)
plt.show()
矩阵图用于显示数据矩阵。
# 生成相关矩阵
corr = data.corr(numeric_only=True)
# 绘制热图
sns.heatmap(corr, annot=True, cmap='coolwarm')
plt.show()
sns.clustermap(corr, annot=True, cmap='coolwarm')
plt.show()
关系图用于显示两个变量之间的关系。
Copy code
sns.scatterplot(x="sepal_length", y="sepal_width", data=data)
plt.show()
sns.lineplot(x="sepal_length", y="sepal_width", data=data)
plt.show()
配对图用于显示数据集中每对变量之间的关系。
sns.pairplot(data, hue="species")
plt.show()
FacetGrid 是一个用于绘制子图的多维图形网格。
g = sns.FacetGrid(data, col="species")
g.map(plt.hist, "sepal_length")
plt.show()
Seaborn 提供了多种调色板,可以通过 sns.color_palette 来使用。
sns.set_palette("husl")
sns.scatterplot(x="sepal_length",
y="sepal_width",
data=data,
hue="species"
)
plt.show()
可以使用 Matplotlib 的功能在图表上添加更多的元素,例如标题和标签。
sns.scatterplot(x="sepal_length",
y="sepal_width",
data=data,
hue="species"
)
plt.title("Sepal Length vs Width")
plt.xlabel("Sepal Length (cm)")
plt.ylabel("Sepal Width (cm)")
plt.show()
Seaborn 允许用户通过绘制函数和参数进行高度自定义。例如,可以通过 FacetGrid 创建复杂的图形布局。
g = sns.FacetGrid(data,
col="species",
margin_titles=True)
g.map(sns.scatterplot,
"sepal_length",
"sepal_width",
alpha=.7)
g.add_legend()
plt.show()
Seaborn 提供了将多个图形合并在一起的功能,可以使用 PairGrid 或 pairplot。
# 使用 PairGrid
g = sns.PairGrid(data, hue="species")
g.map_diag(sns.histplot)
g.map_offdiag(sns.scatterplot)
g.add_legend()
plt.show()
# 使用 pairplot
sns.pairplot(data, hue="species")
plt.show()
seaborn.objects 接口是 Seaborn 提供的新一代接口,旨在提供更加灵活和可组合的数据可视化功能。这一接口通过基于“图形层次”(grammar of graphics)的理念进行设计,使得用户可以更加自由地构建和定制图表。
如使用 penguins 数据集,该数据集包含关于企鹅物种、鳍长、体重等信息。
import seaborn as sns
import seaborn.objects as so
# 加载示例数据集
penguins = sns.load_dataset("penguins")
# 创建 Plot 对象并绘制图表
(
so.Plot(penguins,
x="flipper_length_mm",
y="body_mass_g",
color="species"
)
# 添加点图层
.add(so.Dot(edgecolor="black", alpha=0.7))
# 添加回归拟合线图层
.add(so.Line(), so.PolyFit())
)
Seaborn 是一个强大且灵活的 Python 数据可视化库,适用于快速创建美观的统计图表。它与 Pandas 和 Matplotlib 紧密集成,使得数据加载、处理和可视化变得非常方便。通过 Seaborn,可以轻松地探索数据集中的模式和关系,从而提高数据分析的效率。
更新时间:2024-07-13 22:25:02 标签:python seaborn 数据可视化