seaborn笔记:可视化统计关系(散点图折线图)

Posted UQI-LIUWJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了seaborn笔记:可视化统计关系(散点图折线图)相关的知识,希望对你有一定的参考价值。

  0 导入库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style="darkgrid")

1 散点图

演示数据集

tips = sns.load_dataset("tips")
#导入一个数据集

 

 

1.0 基础用法

以下两种方式几乎是等价的

1.0.1 scatterplot


sns.scatterplot(x='total_bill',y='tip',data=tips)
#绘制散点图

1.0.2 relplot 

sns.relplot(x="total_bill", y="tip", data=tips)

 1.1 使用另外一列作为label

1.1.1 离散label

sns.scatterplot(x='total_bill',y='tip',data=tips,
                hue='smoker')

1.1.2 连续label

sns.scatterplot(x='total_bill',y='tip',data=tips,
                hue='size')

 

 

 1.2 使用另外一列作为不同标记的指示

sns.scatterplot(x='total_bill',y='tip',data=tips,hue='smoker',
                style='smoker')

1.2.1 hue和style不一定需要同一列

sns.scatterplot(x='total_bill',y='tip',data=tips,hue='smoker',
                style='sex')

 

 1.3 控制散点的大小

sns.scatterplot(x='total_bill',y='tip',data=tips,
                size='size')

 1.3.1 控制散点大小的范围

sns.scatterplot(x='total_bill',y='tip',data=tips,
    size='size',
    sizes=(1,1000))

1.4 根据语义分割子图

sns.relplot(x='total_bill',y='tip',data=tips,hue='smoker',
                col='sex')

 

 

 2 折线图

2.0 数据

df = pd.DataFrame(dict(time=np.arange(500),
                       value=np.random.randn(500).cumsum()))
df

2.1 基本使用方法

下面两种方式类似 

sns.relplot(x="time", y="value", kind="line", data=df)

 

sns.lineplot(x="time", y="value", data=df)

2.2 lineplot 事先排序x

        因为 lineplot() 假设我们需要做的事情是将 y 绘制为 x 的函数,所以默认行为是在绘图之前按 x 值对数据进行排序。 但是,可以禁用此功能:

df2 = pd.DataFrame(dict(time=np.random.randn(500).cumsum(),
                       value=np.random.randn(500).cumsum()))
df2

 

sns.lineplot(x="time", y="value", data=df2)

 

sns.lineplot(x="time", y="value", data=df2,
            sort=False)

 3 聚合和表示不确定性

        更复杂的数据集将对 同一个x 变量进行多次测量。 seaborn 的默认行为是通过绘制平均值和平均值周围的 95% 置信区间来聚合每个 x 值的多次测量值:

3.1 数据

fmri = sns.load_dataset("fmri")
fmri

 可以看到一个timepoine会有多个signal的值。

3.1.1 绘制置信区间(默认)

sns.lineplot(x="timepoint", y="signal", data=fmri)

3.1.2 不绘制置信区间 

sns.lineplot(x="timepoint", y="signal", data=fmri,
            ci=None)

 3.1.3 绘制标准差区间

sns.lineplot(x="timepoint", y="signal", data=fmri,
                                        ci='sd')

 3.2 带有不同语义的plot

sns.lineplot(x="timepoint", y="signal", data=fmri,
             hue='event')

 3.3 带有不同线条形状

sns.lineplot(x="timepoint", y="signal", data=fmri,
             hue='event',style='region')

3.3.1 标记各个点

sns.lineplot(x="timepoint", y="signal", data=fmri,hue='event',style='region',
             markers=True)

 

3.4 根据语义分割子图

sns.relplot(x="timepoint", y="signal", hue="subject",kind="line", data=fmri,
            col="region", row="event");

 

 

以上是关于seaborn笔记:可视化统计关系(散点图折线图)的主要内容,如果未能解决你的问题,请参考以下文章

python数据可视化(matplotlib,seaborn,plotly)

R语言入门从RRStudio安装到 条形图折线图散点图 等的图形绘制

R语言入门从RRStudio安装到 条形图折线图散点图 等的图形绘制建议收藏

Matplotlib散点图条形图直方图-02

Python使用matplotlib可视化分组多变量两两关系图使用seaborn中的pairplot函数可视化分组多变量两两关系图对角线为分组密度图其它图像为分组两两散点图

数据可视化Seaborn:初探