当前位置: 首页 > 后端技术 > Python

Python可视化-Seaborn5分钟介绍(七)——pairplot

时间:2023-03-26 16:17:52 Python

微信公众号:《Python读钱》有任何问题或建议欢迎留言公众号Seaborn是一个基于matplotlib的Python可视化库。它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,无需大量调整,让绘图更简单,让你的图更精致。今天要给大家介绍的是pairplot。话不多说,直接进入正题。注意:所有代码均在IPythonnotebook中实现。pairplot中的pairplot是配对的意思,pairplot主要显示两个变量之间的关系(线性或者非线性,是否有比较明显的相关性)。让我们像往常一样看一下pairplot的API。下面使用iris数据集来介绍pairplot的用法。鸢尾花数据集用过很多次了,但是可能大部分人(我也是)不知道鸢尾花长什么样子,先贴一张鸢尾花的图片吧。先导入相关包,配置相关参数importseabornassnsimportpandasaspdimportmatplotlib.pyplotasplt%matplotlibinlinesns.set_style('white',{'font.sans-serif':['simhei','Arial']})#导入seaborn自带的鸢尾花数据集data=sns.load_dataset("iris")#为了方便大家观看,将列名换成中文data.rename(columns={"sepal_length":"Sepallength","sepal_width":"萼片宽度","petal_length":"花瓣长度","petal_width":"花瓣宽度","species":"Type"},inplace=True)kind_dict={"setosa":"山鸢尾","versicolor":"variegatediris","virginica":"Virginiairis"}data["kind"]=data["kind"].map(kind_dict)data.head()#Dataset内容如下。首先,让我们看一下pairplot是什么样子的。sns.pairplot(data)在对角线上可以看到每个属性的直方图(分布图),在非对角线上可以看到两个不同属性的差异。从相关图中我们发现,花瓣的长度和宽度之间,萼片的长度和花瓣的长度和宽度之间都存在着比较明显的相关性。接下来介绍pairplot的主要参数及其使用kind:用于控制非对角线上的图形类型,可选"scatter"和"reg"diag_kind:控制对角线上的图形类型,可选"hist"和"kde"sns.pairplot(data,kind="reg",diag_kind="kde")将kind参数设置为"reg"将为非对角线上的散点图拟合回归线,显示关系变量之间更直观。那么对于不同种类的花卉,其萼片和花瓣有哪些鲜明的特征呢?我们使用色调参数来区分不同类型的花以供进一步分析。Hue:对某个字段进行分类#不同类别的点会出现不同的颜色从上面的分布图或者从分类后的散点图可以看出,对于不同种类的花,萼片长度、花瓣长度、花瓣的分布宽度是完全不同的。也就是说,这些属性可以帮助我们识别不同种类的花。例如,对于萼片和花瓣较短,花瓣宽度较窄的花,它很可能是鸢尾。当然你可以通过palette参数调出你想要的调色板:控制色相sns.pairplot(data,hue="type",palette="husl")标记:控制散点sns的样式。pairplot(data,hue="Type",markers=["+","s","D"])当我们想分别研究两个(或多个)变量之间的关系时,我们只需要指定你想要的通过vars参数来研究变量vars,x_vars,y_vars:选择数据中的特定字段,以列表的形式传入#单独使用vars参数选择“萼片长度”和“花瓣长度”两个属性sns.pairplot(data,vars=["sepallength","petallength"])#用x_vars和y_vars参数指定#需要注意的是x_vars和y_vars要同时指定sns.pairplot(data,x_vars=["SepalLength","PetalWidth"],y_vars=["Sepalwidth","petallength"])plot_kws和diag_kws可以控制更多的样式plot_kws:用于控制非对角线上图形的样式滴ag_kws:用于控制对角线sns上图形的样式。pairplot(数据,diag_kind="kde",plot_kws=dict(s=50,edgecolor="w",color="g",alpha=.5),diag_kws=dict(shade=True,color="r"))扫描二维码关注公众号《Python读钱》第一时间获取干货!