当前位置:网站首页>seaborn笔记:可视化统计关系(散点图、折线图)
seaborn笔记:可视化统计关系(散点图、折线图)
2022-08-01 21:47:00 【UQI-LIUWJ】
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");
边栏推荐
猜你喜欢

number of solutions to solve a multivariate multi-degree equation

AIDL通信

MySQL related knowledge

shell specification and variables

回收租凭系统100%开源无加密 商城+回收+租赁

scikit-learn no moudule named six

KMP 字符串匹配问题

Based on php animation peripheral mall management system (php graduation design)

groupByKey和reduceBykey的区别

Based on php film and television information website management system acquisition (php graduation design)
随机推荐
第一讲 测试知多少
SQL injection of WEB penetration
[@synthesize in Objective-C]
数据库练习
C expert programming
如何防范 DAO 中的治理攻击?
Based on php online learning platform management system acquisition (php graduation design)
图像融合GANMcC学习笔记
number of solutions to solve a multivariate multi-degree equation
易周金融分析 | 银行ATM机智能化改造提速;互联网贷款新规带来挑战
Spark集群搭建
基于php在线学习平台管理系统获取(php毕业设计)
【C语言实现】整数排序-四种方法,你都会了吗、
【C语言实现】求两个整数的较大值
恒星的正方形问题
render-props和高阶组件
ModuleNotFoundError: No module named 'yaml'
2022 版 MySQL 巅峰教程,收藏好,慢慢看
【C语言实现】最大公约数的3种求法
Based on php animation peripheral mall management system (php graduation design)