python数据可视化(五) seaborn

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

绘制网格数据

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

当你探索一个中等维度的数据集时,一个非常有用的手段是在一个大图中绘制多个由不同子集构成的子图,这种方式有时被称为“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", "tota
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值