seaborn学习笔记(二):散点图、线图

2023-11-15

In [2]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

加载seaborn官方小费数据用于后续演示:

In [3]:
# seaborn官方小费数据
tips = sns.load_dataset("tips")
tips.head(2)

Out[3]:
  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

1 lineplot()绘制散点图

lineplot()主要参数如下:

  • x:横轴数据,可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key)
  • y:纵轴数据,可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key)
  • hue:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同颜色
  • size:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同粗细、大小
  • style:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同线型
  • data:作图数据
  • palette:颜色面板
  • hue_order:字符串组成的list,设置hue后设置各颜色顺序
  • sizes:size参数设置后,sizes用户设置粗细、大小的变化范围
  • size_order:字符串组成的list,设置size后,将按照size_order顺序设置
  • dash:确定如何为style变量的不同级别绘制线条的对象。设置为True将使用默认的短划线代码,或者您可以将短划线代码列表或style变量的字典映射级别传递给短划线代码。设置为False将对所有子集使用实线。线段在 matplotlib 中指定: (segment, gap)长度的元组,或用于绘制实线的空字符串。
  • markers:布尔型,list或字典,是否为不同的style参数设置不同的标记
  • style_order:字符串组成的list,设置style后将按照style_order顺序设置线型或散点形状
  • estimator:当一个x值对应对个y值是,如果进行聚合,可以传递一个调用方法,例如:np.mean进行求平均值,也可以传递None,表示绘制所有
  • ci:与估算器聚合时绘制的置信区间的大小。 “sd”表示绘制数据的标准偏差。 设置为 None 将跳过
  • n_boot:整型,用于计算置信区间的 bootstrap 数。
  • err_style: "band"或"bars",是否用半透明误差带或离散误差棒绘制置信区间。
  • err_band:关键字参数字典。用于控制误差线美观的附加参数。 kwargs传递给ax.fill_between或ax.errorbar,具体取决于err_style。
  • sort:布尔值,如果为真,则数据将按 x 与 y 变量排序,否则行将按照它们在数据集中出现的顺序连接点。
  • ax:matplotlib 坐标轴,绘制图像的坐标对象,否则使用当前坐标轴,通过该参数,配合matplotlib,可绘制更加灵活的子图
  • alpha:设置不透明度

1.1 基本图像

In [26]:
_ = sns.lineplot(x="day", y="total_bill", data=tips)

1.2 hue:根据指定字段设置不同颜色

In [27]:
_ = sns.lineplot(x="day", y="total_bill", data=tips, hue="sex")

1.3 size:根据指定字段设置折线粗细

In [29]:
_ = sns.lineplot(x="day", y="total_bill", data=tips, size="sex")

1.4 style:根据指定字段设置线型

In [33]:
_ = sns.lineplot(x="day", y="total_bill", data=tips, style="sex")

1.5 markers:根据指定字段设置不同标记

In [34]:
_ = sns.lineplot(x="day", y="total_bill", data=tips, style="sex", markers=True)

1.6 err_style:绘制错误条或错误带

在上述绘制的图像中,如果一个x值对应多个y值,那么折线上下都有错误带出现,指示多个y值的取值范围,通过err_style参数可以设置显示错误带或者错误条,默认值为“band”表示显示错误带。

In [36]:
_ = sns.lineplot(x="day", y="total_bill", data=tips, hue="sex", err_style="band")

In [37]:
_ = sns.lineplot(x="day", y="total_bill", data=tips, hue="sex", err_style="bars")

也可以设置为None,表示既不绘制错误带,也不绘制错误条:

In [38]:
_ = sns.lineplot(x="day", y="total_bill", data=tips, hue="sex", err_style=None)

2 scatterplot()绘制散点图

scatterplot()主要参数如下:

  • x:横轴数据,可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key)
  • y:纵轴数据,可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key)
  • hue:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同颜色
  • size:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同粗细、大小
  • style:可以是向量(pandas中的一列,或者是list),也可以是字符串(data中的一个key),seaborn将根据这一列设置不同线型或散点形状
  • data:作图数据
  • palette:颜色面板
  • hue_order:字符串组成的list,设置hue后设置各颜色顺序
  • sizes:size参数设置后,sizes用户设置粗细、大小的变化范围
  • size_order:字符串组成的list,设置size后,将按照size_order顺序设置
  • markers:布尔型,list或字典,是否为不同的style参数设置不同的标记
  • style_order:字符串组成的list,设置style后将按照style_order顺序设置线型或散点形状
  • estimator:当一个x值对应对个y值是,如果进行聚合,可以传递一个调用方法,例如:np.mean进行求平局,也可以传递None,表示绘制所有
  • ci:与估算器聚合时绘制的置信区间的大小。 “sd”表示绘制数据的标准偏差。 设置为 None 将跳过
  • n_boot:整型,自举法的数量,用于计算区间的置信度
  • alpha:设置不透明度
  • ax:matplotlib 坐标轴,绘制图像的坐标对象,否则使用当前坐标轴,通过该参数,配合matplotlib,可绘制更加灵活的子图

可见,scatterplot()方法与relplot()、lineplot()方法参数十分类似。

2.1 x, y, data:传递数据

对于参数x,y,可以直接传递一个向量,例如DataFrame中的一列,也可以传递一个字符串,不过当传递字符串时,必须是data参数中的一个key,也就是说,当x、y是一个字符串时,必须传递data参数。

In [4]:
# 以下两种传参方式等效:
_ = sns.scatterplot(x=tips["total_bill"], y=tips["tip"])
# _ = sns.relplot(x="total_bill", y="tip", data=tips) 

也可以不传递x, y,直接传递data,这时,seaborn将以行索引为x,每一列为y,分别进行绘图:

In [6]:
_ = sns.scatterplot(data = tips[['total_bill', 'tip', 'size']])

2.2 hue:根据指定字段设置不同颜色

根据是否抽烟,分别绘制不同颜色圆点:

In [7]:
#消费总金额和小费金额的散点图
_ = sns.scatterplot(x="total_bill", y="tip", data=tips, hue='smoker') 

2.3 size:根据指定字段设置圆点(折线)大小粗细

In [8]:
_ = sns.scatterplot(x="total_bill", y="tip", data=tips, size='smoker') 

2.4 style:根据指定字段设置线型或散点形状

In [9]:
_ = sns.scatterplot(x="total_bill", y="tip", data=tips, style='smoker') 

2.5 alpha:设置不透明度

In [44]:
_ = sns.scatterplot(x="total_bill", y="tip", data=tips, hue='smoker', alpha=0.5) 

2.6 ax:绘制多样化子图

relplot()方法通过row或col参数虽然可以绘制子图,但是,子图只能是统一类型图像,但在lineplot()和scatterplot()方法中,通过ax参数,可以绘制多样化的子图。

In [3]:
fig, ax =plt.subplots(1,2)
_ = sns.scatterplot(x="total_bill", y="tip", data=tips, hue='smoker', ax=ax[0]) 
_ = sns.lineplot(x="size", y="total_bill", data=tips, hue='smoker', ax=ax[1]) 

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

seaborn学习笔记(二):散点图、线图 的相关文章

随机推荐

  • 服务器虚拟化技术

    一 服务器虚拟化概述 1 服务器虚拟化简介 在一台物理服务器上运行多个虚拟服务器称为 服务器虚拟化 在服务器虚拟化中 专用虚拟化软件将物理服务器上的处理器存储器之类的资源划分为多个资源 并将其分配给虚拟服务器 由于可以在一台物理服务器上聚合
  • Python爬虫 XPath解析出乱码 解决方法

    请求后加上编码 resp requests get url headers headers resp encoding GBK
  • Springboot操作Elasticsearch——聚合分组与排序

    这两天项目中需要从es中查询数据 根据某个字段进行分组 求其最大 最小 平均值 并按最大值进行排序 springboot的版本号 2 0 6 RELEASE Elasticsearch的版本号 5 6 3 主要代码记录下 BoolQuery
  • 拆解开源项目Blender

    计划把Blender项目拆解出来 如果把Blender项目比作一辆汽车 那拆解的任务就是把它的发动机 轮胎 支架等不同的模块单独出来并能独自运行 不知道以前有没有人这样干过 在其他项目上 这样拆解的好处是可以更好地研究它的工作原理 并将这些
  • AFNetWorking出现code=-1016错误解决办法

    AFNetWorking的JSON解析默认库是使用的AFJSONRequestOperation模式 只支持text json application json text javascript 所以如果出现code 1016错误则说明当前的
  • 告别2021,迎接2022

    2021相对有点忙有点累 一直想记录一下 但是实在是在惰性趋势下 歇息了一个月 才正常提笔微记 最近思绪也比较忙 提笔规划也是有点凌乱 2021年在新单位的第二年 开始结交朋友 受朋友们的影响 开始准备考研 软考 幸运的是 也都坚持下来了
  • adb将Apk内置到系统中(system/priv-app)

    有时候我们在Android 系统内置自己的应用 在测试时 Android Studio 默认的安装方式是将我们开发的应用作为普通应用安装到系统中的 本文提供一种方式 在开发过程中 将apk内置到系统中 而不需要系统源代码 adb 将apk内
  • java新建一个窗口_Java实例:使用JFram创建一个简单的窗口

    一个图形用户界面以一个top level container开始 它为其他的界面组件提供了一个 家 指定应用程序的总体感觉 在本教程中 向你介绍JFrame类 它将用于给一个Java应用程序创建一个简单的top level窗口 打开你的编辑
  • UI操作 解决方案

    1 include
  • 中断、信号、系统调用

    1 中断的分类 中断程序的方法可以分为硬件中断和软件中断 硬件中断是硬件自动触发的 包括中断和异常 比如 中断 通过中断控制器给CPU的INTR引脚发送信号 如按下键盘 会给CPU一个0x21中断号 异常 CPU执行某条指令发生异常 会自己
  • tr td分合并单元格

    table border 1 width 200 tr td ss td tr tr td width 25 td td width 25 td tr table
  • Spark性能优化:数据倾斜调优

    前言 继 Spark性能优化 开发调优篇 和 Spark性能优化 资源调优篇 讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后 本文作为 Spark性能优化指南 的高级篇 将深入分析数据倾斜调优与shuffle调优 以解决更加
  • 设计补偿器网络以改善开关频率响应

    直流开关电压转换器 或 开关调节器 控制回路的特点是频率响应 频率响应影响开关调节器的反应时间对瞬态变化 精度和稳定性的影响 并在输入电压 负载和工作周期变化的情况下 如何保持设定的电压输出 工程师可以通过增加补偿器网络来改善开关调节器的频
  • Linux在云服务器上安装JDK

    官网地址下载 Java Downloads Oracle 将下载好的jdk通过Xftp传输到服务器上去 创建一个文件夹用于区分 在home文件夹下创建一个属于自己的文件夹 将需要的文件传输过去 也可以直接在 usr local 下配置 cd
  • win7电脑最新版微信卡死问题的解决

    最近一段时间无论单位还是家里事情都比较多 导致没有时间学习和写文 排名蹭蹭地往下掉 刚好遇到一个win7版微信卡死的问题 在网上查了下 找到了win10相关的可以参考的解决办法 确实有效 在此介绍一下 一 问题现象 当最小化win7托盘的微
  • linux环境安装php fileinfo扩展

    linux环境安装php fileinfo扩展 windows环境安装扩展比较简单 只需要把dll拷贝到扩展目录 修改php ini中相应的扩展就好了 下面来介绍一下linux环境下的php扩展安装 以centos6 5和php7 1为例
  • C++ OpenCV制作九宫格拼图游戏

    学更好的别人 做更好的自己 微卡智享 本文长度为2498字 预计阅读7分钟 前言 上一篇 C OpenCV生成九宫格图像 介绍了如何将图片分割城九宫格 然后重新打乱了顺序显示出来 本篇就来说一下怎么制作一个九宫格的拼图游戏 项目的重新创建了
  • JAVA是什么意思

    JAVA的意思是计算机的编程语言 Java通过面向对象的编程语言 它不仅吸收了C 语言的优点 而且摒弃了C 中难于理解的多继承和指针的概念 具有简单性 功能强大 分布式 健壮性 安全性 平台独立与可移植性 多线程及动态性的特点 Java语言
  • 第二十一课,几何着色器(基础篇)

    几何着色器的作用 输入 输入类型 从顶点着色器接收下列任何一个图元值 类型 数组大小 points 绘制GL POINTS图元时 1 lines 绘制GL LINES或GL LINE STRIP时 2 lines adjacency GL
  • seaborn学习笔记(二):散点图、线图

    html font family sans serif ms text size adjust 100 webkit text size adjust 100 body margin 0 article aside details figc