• seaborn学习笔记(二):散点图、线图


    In [2]:
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    
     

    加载seaborn官方小费数据用于后续演示:

    In [3]:
    # seaborn官方小费数据
    tips = sns.load_dataset("tips")
    tips.head(2)
    
    Out[3]:
     
     total_billtipsexsmokerdaytimesize
    0 16.99 1.01 Female No Sun Dinner 2
    1 10.34 1.66 Male No Sun Dinner 3
     

    1 lineplot()绘制散点图

     

    lineplot()主要参数如下:

    • x:横轴数据,可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key)
    • y:纵轴数据,可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key)
    • hue:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同颜色
    • size:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同粗细、大小
    • style:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同线型
    • data:作图数据
    • palette:颜色面板
    • hue_order:字符串组成的list,设置hue后设置各颜色顺序
    • sizes:size参数设置后,sizes用户设置粗细、大小的变化范围
    • size_order:字符串组成的list,设置size后,将按照size_order顺序设置
    • dash:确定如何为style变量的不同级别绘制线条的对象。设置为True将使用默认的短划线代码,或者您可以将短划线代码列表或style变量的字典映射级别传递给短划线代码。设置为False将对所有子集使用实线。线段在 matplotlib 中指定: (segment, gap)长度的元组,或用于绘制实线的空字符串。
    • markers:布尔型,list或字典,是否为不同的style参数设置不同的标记
    • style_order:字符串组成的list,设置style后将按照style_order顺序设置线型或散点形状
    • estimator:当一个x值对应对个y值是,如果进行聚合,可以传递一个调用方法,例如:np.mean进行求平均值,也可以传递None,表示绘制所有
    • ci:与估算器聚合时绘制的置信区间的大小。 “sd”表示绘制数据的标准偏差。 设置为 None 将跳过
    • n_boot:整型,用于计算置信区间的 bootstrap 数。
    • err_style: "band"或"bars",是否用半透明误差带或离散误差棒绘制置信区间。
    • err_band:关键字参数字典。用于控制误差线美观的附加参数。 kwargs传递给ax.fill_between或ax.errorbar,具体取决于err_style。
    • sort:布尔值,如果为真,则数据将按 x 与 y 变量排序,否则行将按照它们在数据集中出现的顺序连接点。
    • ax:matplotlib 坐标轴,绘制图像的坐标对象,否则使用当前坐标轴,通过该参数,配合matplotlib,可绘制更加灵活的子图
    • alpha:设置不透明度
     

    1.1 基本图像

    In [26]:
    _ = sns.lineplot(x="day", y="total_bill", data=tips)
    
     
     

    1.2 hue:根据指定字段设置不同颜色

    In [27]:
    _ = sns.lineplot(x="day", y="total_bill", data=tips, hue="sex")
    
     
     

    1.3 size:根据指定字段设置折线粗细

    In [29]:
    _ = sns.lineplot(x="day", y="total_bill", data=tips, size="sex")
    
     
     

    1.4 style:根据指定字段设置线型

    In [33]:
    _ = sns.lineplot(x="day", y="total_bill", data=tips, style="sex")
    
     
     

    1.5 markers:根据指定字段设置不同标记

    In [34]:
    _ = sns.lineplot(x="day", y="total_bill", data=tips, style="sex", markers=True)
    
     
     

    1.6 err_style:绘制错误条或错误带

     

    在上述绘制的图像中,如果一个x值对应多个y值,那么折线上下都有错误带出现,指示多个y值的取值范围,通过err_style参数可以设置显示错误带或者错误条,默认值为“band”表示显示错误带。

    In [36]:
    _ = sns.lineplot(x="day", y="total_bill", data=tips, hue="sex", err_style="band")
    
     
    In [37]:
    _ = sns.lineplot(x="day", y="total_bill", data=tips, hue="sex", err_style="bars")
    
     
     

    也可以设置为None,表示既不绘制错误带,也不绘制错误条:

    In [38]:
    _ = sns.lineplot(x="day", y="total_bill", data=tips, hue="sex", err_style=None)
    
     
     

    2 scatterplot()绘制散点图

    scatterplot()主要参数如下:

    • x:横轴数据,可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key)
    • y:纵轴数据,可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key)
    • hue:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同颜色
    • size:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同粗细、大小
    • style:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同线型或散点形状
    • data:作图数据
    • palette:颜色面板
    • hue_order:字符串组成的list,设置hue后设置各颜色顺序
    • sizes:size参数设置后,sizes用户设置粗细、大小的变化范围
    • size_order:字符串组成的list,设置size后,将按照size_order顺序设置
    • markers:布尔型,list或字典,是否为不同的style参数设置不同的标记
    • style_order:字符串组成的list,设置style后将按照style_order顺序设置线型或散点形状
    • estimator:当一个x值对应对个y值是,如果进行聚合,可以传递一个调用方法,例如:np.mean进行求平局,也可以传递None,表示绘制所有
    • ci:与估算器聚合时绘制的置信区间的大小。 “sd”表示绘制数据的标准偏差。 设置为 None 将跳过
    • n_boot:整型,自举法的数量,用于计算区间的置信度
    • alpha:设置不透明度
    • ax:matplotlib 坐标轴,绘制图像的坐标对象,否则使用当前坐标轴,通过该参数,配合matplotlib,可绘制更加灵活的子图
     

    可见,scatterplot()方法与relplot()、lineplot()方法参数十分类似。

     

    2.1 x, y, data:传递数据

     

    对于参数x,y,可以直接传递一个向量,例如DataFrame中的一列,也可以传递一个字符串,不过当传递字符串时,必须是data参数中的一个key,也就是说,当x、y是一个字符串时,必须传递data参数。

    In [4]:
    # 以下两种传参方式等效:
    _ = sns.scatterplot(x=tips["total_bill"], y=tips["tip"])
    # _ = sns.relplot(x="total_bill", y="tip", data=tips) 
    
     
     

    也可以不传递x, y,直接传递data,这时,seaborn将以行索引为x,每一列为y,分别进行绘图:

    In [6]:
    _ = sns.scatterplot(data = tips[['total_bill', 'tip', 'size']])
    
     
     

    2.2 hue:根据指定字段设置不同颜色

     

    根据是否抽烟,分别绘制不同颜色圆点:

    In [7]:
    #消费总金额和小费金额的散点图
    _ = sns.scatterplot(x="total_bill", y="tip", data=tips, hue='smoker') 
    
     
     

    2.3 size:根据指定字段设置圆点(折线)大小粗细

    In [8]:
    _ = sns.scatterplot(x="total_bill", y="tip", data=tips, size='smoker') 
    
     
     

    2.4 style:根据指定字段设置线型或散点形状

    In [9]:
    _ = sns.scatterplot(x="total_bill", y="tip", data=tips, style='smoker') 
    
     
     

    2.5 alpha:设置不透明度

    In [44]:
    _ = sns.scatterplot(x="total_bill", y="tip", data=tips, hue='smoker', alpha=0.5) 
    
     
     

    2.6 ax:绘制多样化子图

     

    relplot()方法通过row或col参数虽然可以绘制子图,但是,子图只能是统一类型图像,但在lineplot()和scatterplot()方法中,通过ax参数,可以绘制多样化的子图。

    In [3]:
    fig, ax =plt.subplots(1,2)
    _ = sns.scatterplot(x="total_bill", y="tip", data=tips, hue='smoker', ax=ax[0]) 
    _ = sns.lineplot(x="size", y="total_bill", data=tips, hue='smoker', ax=ax[1]) 
    
     
  • 相关阅读:
    MySQL服务器变量:MySQL系列之八
    存储引擎:MySQL系列之七
    用户与授权:MySQL系列之六
    视图、存储函数、存储过程、触发器:MySQL系列之五
    SQL语法:MySQL系列之四
    关系型数据库基础概念:MySQL系列之开篇
    基础篇:MySQL系列之三
    多实例:MySQL系列之二
    安装篇:MySQL系列之一
    DNS
  • 原文地址:https://www.cnblogs.com/chenhuabin/p/15925909.html
Copyright © 2020-2023  润新知