当前位置:网站首页>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");
边栏推荐
猜你喜欢
随机推荐
关于npm的那些事儿
【移动Web】移动端适配
Uses of Anacoda
熟悉的朋友
今年的很美味
Implementation principle of VGUgarbage collector (garbage collector)
Based on php film and television information website management system acquisition (php graduation design)
Small program -- subcontracting
0DFS Medium LeetCode6134. Find the closest node to the given two nodes
Anacoda的用途
Today's sleep quality record 74 points
Mini Program--Independent Subcontracting & Subcontracting Pre-download
数据库练习
多商户商城系统功能拆解19讲-平台端发票管理
Analysis of the development trend of game metaverse
今日睡眠质量记录74分
游戏元宇宙发展趋势展望分析
基于php旅游网站管理系统获取(php毕业设计)
宝塔应用使用心得
Appendix A printf, varargs and stdarg A.3 stdarg.h ANSI version of varargs.h









