python数据可视化(五) seaborn

本文介绍了Seaborn库在Python数据可视化中的应用,特别是如何使用FacetGrid进行小规模多倍图绘制,以及PairGrid用于展示数据成对关系。文章详述了FacetGrid的初始化、map方法,以及如何自定义函数进行绘图,同时提到了PairGrid在散点图矩阵中的用法,允许用户灵活定制每一组数据的关系可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

绘制网格数据

终于忙完了各种大作业和期末考试。。我活着回来了。。。

当你探索一个中等维度的数据集时,一个非常有用的手段是在一个大图中绘制多个由不同子集构成的子图,这种方式有时被称为“lattice” 或者“trellis”画图法,它来源于small multiples思想。这种方法允许观察者从复杂数据中提取大量的信息,Matplotlib对多轴图像提供了很好的支持,seaborn建立在此之上,直接将图像结构连接到数据结构之上。
使用这个功能你的数据要是pd.dataframe的格式,它必须是 Hadley Whickam所称呼的tidy data的数据格式。简而言之,你的数据必须每一行是一个观测,每一列是一个变量。
对于前几章提到的功能,你基本都可以运用本章所讨论的对象,这将提供极大的灵活性。一些seaborn函数(lmplot,factorplot,pairplot)相当于在函数中“集成”这些功能。与其他子图等级函数不同

子图等级函数并不会创建新的画布(figure)而是在原有axes上画图。

这些(括号里的)高等级函数在调用时,会创建一个全新的画布,当他们被调用时,参数的要求会更为严格,在某些情况下,对于这些函数或其依赖的类的构造函数的参数将提供与图形大小不同的接口属性,如lmplot的情况,您可以在其中设置每个方面的高度和纵横比而不是整体尺寸。使用这些对象之一的任何函数总是在绘制之后返回,而且这些对象中的大多数都具有方便的方法来改变绘制,通常以更抽象和简单的方式。

%matplotlib inline
import numpy as np
import pandas as pd
import seaborn as sns
from scipy import stats
import matplotlib as mpl
import matplotlib.pyplot as plt
sns.set(style="ticks")
np.random.seed(sum(map(ord, "axis_grids")))

Plotting small multiples of data subsets

当你想要在原数据的子集(groupby思想)中独立的绘制一个变量的分布或者多个变量之间的关系时FacetGrid类变得非常有用。一个FacetGrid具有三维:row,col,hue前两个非常明显的代表着坐标轴,可以将hue当做深度,即第三条轴,不同水平由颜色表示。
FacetGrid对象被dataframe和相应的row column hue参数初始化时,这个类被调用。这些参数变量应该属分类变量。相当于将数据集grouby标记为不同的facet,用于画图。
另外,lmplot()factorplot函数,在内部调用了该对象,完成后返回。所以其结果可以进一步调整。

tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="time")

233
这样初始化网格(grid)会建立matplotlb画布(figure)和子图(axes),但是不会画任何东西。
在网格(grid)上可视化数据最常用的方法是FacetGrid.map(),向其传入画图函数,自变量,因变量等。

g = sns.FacetGrid(tips, col="time")
g.map(plt.hist, "tip");

233
这个函数会画出图像并标出坐标轴,爽吧!一步到位。你也可以提供关键字参数,将其传递给画图函数。

g = sns.FacetGrid(tips, col="sex", hue="smoker")
g.map(plt.scatter, "total_bill", "tip", alpha=.7)
g.add_legend();

233
还有好多控制网格样子的参数可以传递给类的构造器(sns.FacetGrid)。

g = sns.FacetGrid(tips, row="smoker", col="time", margin_titles=True)
g.map(sns.regplot, "size", "total_bill", color=".3", fit_reg=False, x_jitter=
### 如何使用Seaborn实现Python数据可视化 #### 导入必要库并初始化设置 为了开始使用 Seaborn 进行数据可视化,首先需要确保已经安装了所需的包。如果尚未安装这些包,则可以通过 pip 工具来完成安装: ```bash pip install seaborn matplotlib pandas numpy ``` 接着,在脚本或交互环境中导入必要的模块,并应用 Seaborn 默认样式以获得更佳视觉效果[^3]。 ```python import matplotlib.pyplot as plt import seaborn as sns sns.set() ``` #### 加载示例数据集 Seaborn 自带了一些内置的数据集用于快速测试和学习目的。这里选取 `tips` 数据集作为例子,该数据集中包含了餐厅服务员收到的小费记录以及其他相关信息。 ```python # 载入选定的数据集 data = sns.load_dataset('tips') # 查看前几条记录以便了解数据结构 print(data.head()) ``` #### 绘制基础图表 利用 Seaborn 提供的各种函数可以轻松创建不同类型的图表。例如,散点图能够直观地显示两个变量之间的关系;箱形图则有助于理解数值分布情况及其离群程度。 ##### 散点图 ```python plt.figure(figsize=(8, 6)) sns.scatterplot(x='total_bill', y='tip', data=data) plt.title('Total Bill vs Tip') plt.xlabel('Total bill ($)') plt.ylabel('Tip ($) ') plt.grid(True) plt.show() ``` ##### 箱形图 ```python plt.figure(figsize=(10, 7)) sns.boxplot(x='day', y='total_bill', hue='smoker', data=data, palette="Set3") plt.title('Distribution of Total Bills by Day and Smoking Status') plt.legend(title='Smoker') plt.show() ``` #### 高级统计图形 除了上述的基础图表外,Seaborn 更擅长于构建复杂而精美的统计图形。比如联合网格(JointGrid)、配对图(PairPlot)等都是很好的选择。 ##### Pair Plot 此方法非常适合用来观察多维数据间的两两关联模式。 ```python sns.pairplot(data, hue='sex', markers=["o", "s"], diag_kind="kde") plt.suptitle('Pairwise Relationships in the Tips Dataset', y=1.02) plt.show() ``` 通过以上几个部分的内容可以看出,Seaborn 不仅简化了许多常见绘图操作的过程,还极大地提升了最终成果的质量与美感。对于从事数据分析工作的人员来说,掌握这一工具无疑会带来极大的便利。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值