(一)seaborn教程——可视化统计关系

2023-11-07

简介:学习笔记为官网教程seaborn教程0.9.0

安装最新版本方法:

pip install git+https://github.com/mwaskom/seaborn.git

导入包和设置背景

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="darkgrid")
查看数据集
tips = sns.load_dataset("tips")
tips.head(3)
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
total_bill tip sex smoker day time size
0 16.99 1.01 Female No Sun Dinner 2
1 10.34 1.66 Male No Sun Dinner 3
2 21.01 3.50 Male No Sun Dinner 3

一、用散点图关联变量

1、绘制散点图,x为”total_bill”列的数据,y为”tip”列的数据,数据集为”tips”的pandas类型数据

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

这里写图片描述

2、绘制3维的关系图,第3维的数据”smoker”列的数据用hue=”smoker”表示,如图,蓝色代表取值
“yes”,红色代表取值”no”。

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

这里写图片描述

3、绘制3维的关系图,第3维的数据”smoker”列的数据用hue=”smoker”和style=”smoker”表示,
用不同颜色和样式表示该维数据,即蓝色圆点代表”yes”,橙色x代表取值”no”

sns.relplot(x="total_bill", y="tip", hue="smoker", style="smoker",
            data=tips);

这里写图片描述

4、绘制4维的关系图,用样式表示另外一列数据

sns.relplot(x="total_bill", y="tip", hue="smoker", style="time", data=tips);

这里写图片描述

5、如果颜色代表的维度数据不是离散值,而是连续的数字,则根据颜色深浅代表取值

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

这里写图片描述

我们可以自定义颜色

sns.relplot(x="total_bill", y="tip", hue="size", palette="ch:r=-.5,l=.75", data=tips);

这里写图片描述

6、除了”颜色”、”样式”可以代表维度外,”大小”也可以;,”大小”类似于”颜色”处理数值数据

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

这里写图片描述

数据单元中的值范围被归一化为面积单位的范围,这个范围可以定制

sns.relplot(x="total_bill", y="tip", size="size", sizes=(15, 200), data=tips);

这里写图片描述

二、强调线图的连续性

数据集

df = pd.DataFrame(dict(time=np.arange(500),value=np.random.randn(500).cumsum()))
df.head(3)
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
time value
0 0 -0.652967
1 1 -2.372132
2 2 -2.926434

1、time随value的变化图

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

这里写图片描述

默认行为是x在绘图之前按值对数据进行排序。但是,这可以被禁用。

df = pd.DataFrame(np.random.randn(500, 2).cumsum(axis=0), columns=["x", "y"])
sns.relplot(x="x", y="y", sort=False, kind="line", data=df);

这里写图片描述

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

数据集

fmri = sns.load_dataset("fmri")
fmri.head(3)
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
subject timepoint event region signal
0 s13 18 stim parietal -0.017552
1 s5 14 stim parietal -0.080883
2 s12 18 stim parietal -0.081033
sns.relplot(x="timepoint", y="signal", kind="line", data=fmri);

这里写图片描述

使用自举来计算置信区间,对于较大的数据集,这可能是时间密集的。因此可以禁用它们:

sns.relplot(x="timepoint", y="signal", ci=None, kind="line", data=fmri);

这里写图片描述

对于更大的数据,是通过绘制标准偏差而不是置信区间来表示每个时间点的分布范围

sns.relplot(x="timepoint", y="signal", kind="line", ci="sd", data=fmri);

这里写图片描述

要完全关闭聚合,请将estimator参数设置为“ None当数据在每个点有多个观察值时,可能会产生奇怪的效果

sns.relplot(x="timepoint", y="signal", estimator=None, kind="line", data=fmri);

这里写图片描述

三、用语义映射绘制数据子集

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

这里写图片描述

hue表示颜色,style表示样式

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

这里写图片描述

使用短划线或代替默认的样式

sns.relplot(x="timepoint", y="signal", hue="region", style="event",
            dashes=False, markers=True, kind="line", data=fmri);

这里写图片描述

用线条的颜色和样式只表示一个数据维度

sns.relplot(x="timepoint", y="signal", hue="event", style="event",
            kind="line", data=fmri);

这里写图片描述

1、使用重复测量数据(即有多次采样的单位)时,可以单独绘制每个采样单位,
而无需通过语义区分它们。这可以避免使图例混乱。比如对”subject”单位绘图。

sns.relplot(x="timepoint", y="signal", hue="region",
            units="subject", estimator=None,
            kind="line", data=fmri.query("event == 'stim'"));

这里写图片描述

2、默认lineplot()的色彩映射和图例的处理还取决于色调语义是分类还是数字

数据集

dots = sns.load_dataset("dots").query("align == 'dots'")
dots.head(4)
.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }
align choice time coherence firing_rate
0 dots T1 -80 0.0 33.189967
1 dots T1 -80 3.2 31.691726
2 dots T1 -80 6.4 34.279840
3 dots T1 -80 12.8 32.631874
sns.relplot(x="time", y="firing_rate",
            hue="coherence", style="choice",
            kind="line", data=dots);

这里写图片描述

如果hue变量是数字,很难用线性色标表示可以用水平以对数方式缩放。通过传递列表或字典为每一行提供特定的颜色值:

palette = sns.cubehelix_palette(light=.8, n_colors=6)
sns.relplot(x="time", y="firing_rate",
            hue="coherence", style="choice",
            palette=palette,
            kind="line", data=dots);

这里写图片描述

三、用日期数据绘图

df = pd.DataFrame(dict(time=pd.date_range("2017-1-1", periods=500),
                       value=np.random.randn(500).cumsum()))
g = sns.relplot(x="time", y="value", kind="line", data=df)
g.fig.autofmt_xdate()

这里写图片描述

四、显示与facet的多个关系

1、通过col=”time”,每一列代表”time”的取值,有多少个值就有多少列

sns.relplot(x="total_bill", y="tip", hue="smoker",
            col="time", data=tips);

这里写图片描述

2、 通过col=”region”, row=”event”,每一列代表”time”的取值,每一行代表”event”的取值

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

这里写图片描述

col_wrap=5设置每一列显示多少个图;height=3代表子图的高, aspect=.75,代表高宽比;
linewidth=2.5代表线条粗细

sns.relplot(x="timepoint", y="signal", hue="event", style="event",
            col="subject", col_wrap=5,
            height=3, aspect=.75, linewidth=2.5,
            kind="line", data=fmri.query("region == 'frontal'"));

这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(一)seaborn教程——可视化统计关系 的相关文章

  • Vim神级插件: EasyMotion

    Vim的移动操作很强大 hjkl左下上右 wb按词移动 fF前后搜索等等 方便 快速 但也有软肋 跨越多行的精确跳转就相当不尽人意 幸好 有一款堪称神级表现的插件 EasyMotion 简单说 它提供了一组对应默认移动操作的键绑定 能搜索并
  • 借助neo4j-admin导入csv文件构建实体与联系

    文章目录 1 CSV 导入的文件格式 数据类型 实体csv文件 关系csv文件 2 CSV 导入 neo4j 案例 不同导入工具的区别 1 CSV 导入的文件格式 官方DOC https neo4j com docs operations
  • 盲打打字php,盲打键盘指法图顺口溜及练习方法

    在当今社会盲打已经是必须会的技能了 还没学会的新手们 在这里教你们一个快速学会盲打的方法 希望可以给大家带来参考与帮助 盲打键盘指法图顺口溜 顺口溜一 左手食指RFV 还有TGB紧相随 左手中指EDC 无名指WSX来应对 左手小指QAZ 遵
  • Java Web实用开发技术-图形验证码

    图形验证码生成 地址为checkcode package servlet import java awt import java awt image BufferedImage import java io ByteArrayOutputS
  • unity入门精要之第6 章 Unity 中的基础光照--环境光和自发光

    Unity系列文章目录 文章目录 Unity系列文章目录 前言 一 Unity 中的环境光和自发光 二 在Unity Shader 中实现漫反射光照模型 参考 前言 但这种模型有很多局限性 首先 有很多重要的物理现象无法用Blinn Pho
  • vue 实现a标签定位_详解Vue项目中实现锚点定位

    背景 今天在开发限时练 提分加项目的时候 有一个需要锚点定位的需求 而在Vue项目中 使用传统的在a标签的href属性中写id的方法无效 会导致浏览器的地址改变从而跳转到其他页面 解决 最终参考vue2 0中怎么做锚点定位改问题下的回答实现
  • 二叉树的最大路径和

    目录 1 题目描述 2 题目分析 3 代码实现 1 题目描述 给定一个非空二叉树 返回其最大路径和 本题中 路径被定义为一条从树中任意节点出发 达到任意节点的序列 该路径至少包含一个节点 且不一定经过根节点 示例 1 输入 1 2 3 1
  • mySQL超1G大数据导入解决方法

    打开php ini 找到 upload max filesize memory limit post max size 这三个参数 upload max filesize 2G 是上传最大文件的大小 可写成2G memory limit 2
  • MySQL基本使用和后端业务建表逻辑

    基本使用 下载和安装 首先到MySQL官网上下载MySQLMySQL官网 下载之前需要登录Oracle账号才能下载 下载完成之后 需要验证MySQL是否安装成功 测试MySQL是否安装成功有如下几种方法 需要再命令行中输入services
  • 【算法系列篇】分治-快排

    文章目录 前言 什么是分冶 1 颜色分类 1 1 题目要求 1 2 做题思路 1 3 Java代码实现 2 排序数组 2 1 题目要求 2 2 做题思路 2 3 Java代码实现 3 数组中的第k个最大元素 3 1 题目要求 3 2 做题思
  • Mongodb 学习笔记 (11)启动时WiredTiger 错误解决

    数据库版本 3 4 15 错误描述 无法启动 错误日志显示 initandlisten WiredTiger error 31802 1565933984 78859 31235 0x7f4ace0cad00 txn recover uns
  • vite使用vue3 v-for渲染图片时的写法

    写法一
  • (转)java代码发送JSON格式的httpPOST请求

    import Java io BufferedReader import java io DataOutputStream import java io IOException import java io InputStreamReade
  • HTTP协议、http服务器的实现-1

    1 HTTP协议简介 在Web应用中 服务器把网页传给浏览器 实际上就是把网页的HTML代码发送给浏览器 让浏览器显示出来 而浏览器和服务器之间的传输协议是HTTP 所以 HTML 超文本标记语言 HyperText Markup Lang
  • MSYS2搭建mingw32编译环境(支持cmake、make指令)

    一 下载msys2并安装 1 地址 https www msys2 org 2 安装如下图 3 启动MSYS2程序 如下图 二 PACMAN指令说明 1 更新 在 Archlinux 中 使用一条命令即可对整个系统进行更新 pacman S
  • VSCode 报错Error loading workspace: err: exit status 1: stderr: warning: ignoring symlink

    原因 vscode的一个工作区好像只能有一个Go模块 如果是有多个模块 就要区分工作区 解决方法 点击菜单栏 文件 gt 将文件夹添加到工作区 gt 选择模块所在的文件夹 这个文件夹将会是新工作区的根目录 参考 https github c
  • 转行大数据的好建议

    第一点 要有决心 先问问自己是否能够把大数据工作当做自己未来10年 20年甚至毕生都想从事的工作 如果是的话 那么 就算你在传统行业工作了5年 7年甚至10年 都30大几的年龄 现在转行也为时未晚 第二点 要有信心 你是否已经习惯于企事业单
  • 数据指标体系建设

    一 什么是数据指标体系 指标体系是从不同维度梳理业务 把指标有系统的组织起来 简而言之 指标体系 指标 体系 所以一个指标不能叫指标体系 几个毫无关系的指标也不叫指标体系 指标体系就像是一个整体 一辆车 各个零件组成一辆车 严密结合 口径一
  • 服务器系统盘如何分区,云服务器的系统盘能分区吗

    云服务器的系统盘能分区吗 内容精选 换一换 切换操作系统是为您的云服务器重新切换一个系统盘 切换完成后云服务器的系统盘ID会发生改变 并删除原有系统盘 如果云服务器当前使用的操作系统不能满足业务需求 如软件要求的操作系统版本较高 您可以选择

随机推荐

  • mmsegmentation自定义数据集

    目录 1 mmsegmentation之model 2 mmsegformer之datasets 2 1 data config 2 2 data class 2 3 total config 3 运行 1 mmsegmentation之m
  • 超限学习机(ELM)

    ELM Exteme learning machine 超限学习机 由新加坡南洋理工大学的Guangbin Huang 黄光斌 副教授提出的 1 算法概述 ELM算法针对的问题是单隐层的前馈神经网络 single hidden layer
  • 大数定理

    2017 12 29 我一直对这个大数定理不理解 为什么就这么重要 学了这么多年的概率论 而且 这么多年了也一直没事就看到这些东西 但是还真的没有让我感觉的这个东西的重要性 http www cnblogs com vamei p 3460
  • R语言 面试题

    什么是R语言编程 R语言是一种用于统计分析和为此目的创建图形的编程语言 不是数据类型 它具有用于计算的数据对象 它用于数据挖掘 回归分析 概率估计等领域 使用其中可用的许多软件包 R语言中的不同数据对象是什么 它们是R语言中的6个数据对象
  • mysql-5.7.27 安装

    net start mysql 发生系统错误2 系统找不到指定的文件 转自 https www jianshu com p 6d8ed7c36e6f 以管理员身份运行 在命令行输入cd mySQL的bin目录的安装路径 C Windows
  • Java 运行时发生 NoClassDefFoundError: Could not initialize class 的解决方法

    在编译时没有异常的程序 在运行时抛出异常称 NoClassDefFoundError Could not initialize class 类名 根据 Java 官方文档 NoClassDefFoundError 是由于 JVM 或 Cla
  • 3分钟学会在 ASP.NET MVC 中创建、读取和编辑 Excel 电子表格

    在本文中 您将学习如何在ASP NET MVC 应用程序中创建 读取和编辑 Excel 电子表格 为此 我们将创建一个由功能丰富的网格控件组成的电子表格应用程序 用于显示和编辑 Excel 文件 如下所示 为了在 ASP NET MVC 中
  • Vision Transformer里的MLP Head里的Pre-Logits层

    Representation layer if representation size and not distilled self has logits True self num features representation size
  • 动态代理的俩种实现方式

    提到设计模式 我们不得不提下代理模式 这里给出其定义 给某一个对象提供一个代理 并由代理对象控制对原对象的引用 说白了就是我们不能直接操作被代理的对象 而只能通过操作代理对象而间接操作被代理的对象 这就好比水厂 送水代理点 用户三者的关系
  • JavaScript 将表达式的结果转换为布尔值

    运算符可用于将表达式的结果快速转换为布尔值 true或false const foo Hello console log foo const fox Not null console log fox const bar console lo
  • 数字电路设计之ARM m0进度(2)

    2014 10 22 1 已解决问题 跳转指令B0是两条指令代价 B1是一条指令代价 2 时序同步 要做到心中有流水线 对于每个信号的状态要同时改变 终于把求最大公约数和最小公倍数的程序顺序地仿真完 接下来就要加RAM和各种调时序了
  • 网页点击跳转到微信页面

  • 9_react生命周期函数

    1 16 3 声明周期函数图 2 react16 3 和 16 4 生命周期差异 在 16 3 中 只有当 props 改变时 会触发 getDerivedStateFromProps 方法 在 16 4 中 当 props state f
  • spring 事务传播级别

    spring事务传播级别 一 介绍 1 2 各种事务的解释 1 2 什么是嵌套事务 一 介绍 主要就是下面两张图 很重要 很重要 很重要 能够清晰的描述出 第一次事务 和 嵌套事务的 关系 记录一下 当前不存在事务 直接调用带有事务的方法
  • java 纯面向对象_为什么说Java语言是一门非常纯粹的面向对象编程语言?

    针对题主提的这个问题 我在此分享Naresh Joshi的一篇译文给你 希望对你理解这个问题有所帮助 在我刚开始学习 Java 的前面几年 我从书本里知道了 Java 是遵循 面向对象编程范式 Object Oriented Program
  • sybase常见语句

    文章目录 1 查看执行计划 2 用户管理 3 系统存储过程 4 页大小 5 设置数据库为单用户模式 6 清理过程缓存 7 更新统计值 8 重建索引 9 修改字段约束为null 10 修改字段长度 12 修改字段默认值 13 修改表名 14
  • 国内主要Android应用市场包名大全

    com tencent android qqdownloader 腾讯应用宝 com qihoo appstore 360手机助手 com baidu appsearch 百度手机助手 com xiaomi market 小米应用商店 co
  • 基于RISC-V的软件编译脚本

    脚本 设置RISC V工具链riscv set env RISC V setenv RISCV PATH mnt Software FreedomStudio SiFive riscv64 unknown elf gcc 8 1 0 201
  • swiper的使用,鼠标放上面停止变动

    swiper真的太好用了 根本停不下来 div class swiper container div class swiper wrapper flex div class swiper slide img class src home s
  • (一)seaborn教程——可视化统计关系

    简介 学习笔记为官网教程seaborn教程0 9 0 安装最新版本方法 pip install git https github com mwaskom seaborn git 导入包和设置背景 import numpy as np imp