relplot:
    这个函数功能非常强大,可以用来表示多个变量之间的关联关系。默认情况下是绘制散点图,也可以绘制线性图,具体绘制什么图形是通过kind参数来决定的。
    scatterplot和lineplot是relplot的一个封装。

    1. scatterplot:relplot(kind=’scatter’)。
    2. lineplot:relplot(kind=’line’)。

    relplot在绘制的时候,不能直接给x和y指定具体的值,而应该使用data参数DataFrame中的列的名字。

    1. import seaborn as sns
    2. import pandas as pd
    3. tips = pd.read_csv("dataset/tips.csv")
    4. tips.head()
    5. '''
    6. total_bill tip sex smoker day time size
    7. 0 16.99 1.01 Female No Sun Dinner 2
    8. 1 10.34 1.66 Male No Sun Dinner 3
    9. 2 21.01 3.50 Male No Sun Dinner 3
    10. 3 23.68 3.31 Male No Sun Dinner 2
    11. 4 24.59 3.61 Female No Sun Dinner 4
    12. '''
    13. sns.relplot(x="total_bill",y="tip",data=tips)

    image.png

    1. # hue参数是用来控制第三个变量的颜色显示的。比如我们在以上图的基础之上体现出星期几的参数
    2. sns.relplot(x="total_bill",y="tip",hue='day',data=tips)

    image.png

    1. # col和row,可以将图根据某个属性的值的个数分割成多列或者多行。
    2. # 比如在以上图的基础之上我们想要把Lunch(午餐)和Dinner(晚餐)以及男人和女人分割成4个图来显示。
    3. sns.relplot(x="total_bill",y="tip",col="time",row="sex",data=tips)

    image.png

    1. # 有时候我们的图有很多,默认情况下会在一行中全部展示出来,那么我们可以通过col_wrap来指定具体多少列。
    2. sns.relplot(x="total_bill",y="tip",col="day",col_wrap=3,data=tips)

    image.png

    1. # sns.scatterplot(x="total_bill",y="tip",data=tips)
    2. sns.relplot(x="total_bill",y="tip",data=tips,kind="scatter",size="size") # 用size这一列的值,给散点的大小(size)做区分

    image.png
    绘制折线图
    relplot通过设置kind=”line”可以绘制折线图。并且他的功能比plt.plot更加强大。plot只能指定具体的x和y轴的数据(比如x轴是N个数,y轴也必须为N个数)。而relplot则可以在自动在两组数据中进行计算绘图。

    1. fmri = pd.read_csv("dataset/fmri.csv")
    2. fmri.head()
    3. '''
    4. subject timepoint event region signal
    5. 0 s13 18 stim parietal -0.017552
    6. 1 s5 14 stim parietal -0.080883
    7. 2 s12 18 stim parietal -0.081033
    8. 3 s11 18 stim parietal -0.046134
    9. 4 s10 18 stim parietal -0.037970
    10. '''
    11. sns.relplot(x="timepoint",y='signal',data=fmri,kind="line")
    12. # 中间的那个实线,表示在同一个时间点数值的平均值
    13. # 外面的透明阴影部分是置信区间,默认展示置信区间,如果不想要的话,可以传入参数cl=None

    image.png

    1. # 设置hue为event,就会根据event来绘制不同的颜色
    2. # 设置style为event,就会根据event来设置线条的样式
    3. # 设置hue_order 会将event的样式显示换个顺序反过来显示
    4. # 使用lineplot只能绘制一个,不能使用col和row将图拆开了
    5. sns.lineplot(x="timepoint",y='signal',data=fmri,hue="region",style="region",hue_order=['frontal','parietal'])

    image.png

    1. # 设置col为region,就会根据region值的个数来绘制指定个数的图
    2. sns.relplot(x="timepoint",y='signal',data=fmri,kind="line",hue="region",col="event",style="region")

    image.png

    1. sns.relplot(x="x",y="y",data=pd.DataFrame({"x":np.arange(10),"y":np.sin(np.arange(10))}),kind="line")

    image.png