python seaborn 散点图矩阵_python数据可视化之seaborn

2023-11-17

seaborn

importmatplotlib as mplimportmatplotlib.pyplot as pltimportnumpy as npimportpandas as pd#解决坐标轴刻度负号乱码

plt.rcParams['axes.unicode_minus'] =False#解决中文乱码问题

plt.rcParams['font.sans-serif'] = ['Simhei']

1、Seaborn基础

1.1 关于 matplotlib 与 seaborn

要实现复杂的数据可视化,要写大量的样板代码

Matplotlib比Pandas更早开发,要使用Matplotlib实现DataFrame的数据可视化,相对Seaborn比较麻烦

Seaborn是在Matplotlib基础上开发的一套API,为图形样式和颜色设置提供合理的选择,同时为很多常用的统计图形提供专门的高级函数调用

Pandas与DataFrame有机结合,是使用Matplotlib时很好的附加工具

1.2 风格选择

使用 seaborn 画图之前的图样:

importmatplotlib.pyplot as pltimportnumpy as npdefhehe():

plt.rcParams['font.sans-serif'] = ['Simhei'] #解决中文乱码问题

x=np.linspace(0.05,10,100)

y_01=np.cos(x)

y_02=np.sin(x)

plt.plot(x,y_01,ls="-",label=r"$\cos(x)$")

plt.plot(x,y_02,ls="-",label=r"$\sin(x)$")

plt.legend(loc="lower left",title="函数",) #或者写loc=3

plt.title("正弦函数和余弦函数的折线图");

hehe()

结果为:

1921889-20201010153109288-1601946189.png

seaborn 的风格,它们分别是:

darkgrid(默认)

whitegrid

dark

white

ticks

sns.set() 可以用来重置 Seaborn 默认的主题

运行下面的 sns.set() 语句之后,会将接下来运行的 Matplotlib 绘图设置成 Seaborn 默认的主题,重新运行上面的图:

importseaborn as sns

sns.set()

hehe()

结果为:

1921889-20201010153722514-333205934.png

如果想改变 Seaborn 主题,可以使用以下语句:

axes_style()

set_style() 比如我们又想将默认的 darkgrid 主题改成 ticks :

sns.set_style("whitegrid")

hehe()

结果为:

1921889-20201010153959892-655444737.png

1.3 自定义坐标轴

如果不想要轴脊柱(图形边框的上下左右四条轴),可以通过 sns.despine() 来移除(先画图后移除,默认移除右和上两条轴):

hehe()

sns.despine()#sns.despine(left=True, bottom=True, top=False, right=False)

结果为:

1921889-20201010154629659-1597314735.png

offset 参数可以设置图形距离原地的距离:

hehe()

sns.despine(offset=10); #绝对距离,以点为单位

结果为:

1921889-20201010160335682-1406618351.png

1.4 自定义绘图元素比例

Seaborn 有一套的参数可以控制绘图元素的比例,通过 sns.set_context() 设置,有四个预置环境,按大小从小到大排列分别为:paper < notebook < talk < poster,其中,默认是 notebook

sns.set_context("talk")

hehe()

结果为:

1921889-20201010164055554-1391790620.png

2、数据集分布的可视化

importnumpy as npimportpandas as pdfrom scipy importstats, integrateimportmatplotlib.pyplot as pltimportseaborn as sns

sns.set(color_codes=True)

np.random.seed(100) #随机数生成种子

2.1 单变量分布图 sns.distplot()

在 Seaborn 中,快速观察单变量分布的最方便的方法就是使用 distplot() 函数,默认会使用柱状图(histogram)来绘制

bin:直方图在横坐标的数据值范围内均等分的形成一定数量的数据段数量

hist:bool,可选,是否绘制(标准化)直方图

kde:bool,可选,是否绘制核密度估计曲线(高斯)

rug : bool, 可选,在每个观察点上的垂直小标签

x = np.random.normal(size=100)

sns.distplot(x);#如果运行代码出现报错,那么运行pip install --upgrade scipy

结果为:

1921889-20201010173043952-1270706112.png

x = np.random.normal(size=100)

sns.distplot(x, hist=True,bins=30,kde=False, rug=True);#kde, 是否画核密度曲线#rug,是否将数组中的数据点画出来作为坐标轴的刻度线

结果为:

1921889-20201010173223672-605534959.png

2.2 二元分布图

2.2.1 散点图 sns.jointplot()

在 Seaborn 中,对于双变量分布的可视化,最简单的方法就是使用 joinplot() 函数,它能够创建一个多面板图形来展示两个变量之间的联合关系,以及每个轴上单变量的分布情况

x = np.random.rand(100)

y= np.random.rand(100) #从0到1之间,生成100个

df= pd.DataFrame({"A":x, "B":y})

sns.jointplot(x="A", y="B", data=df);

结果为:

1921889-20201010173552179-821871710.png

2.2.2 Hexbin 图

对于相对较大的数据集进行绘图,使用 “hexbin” 图最好,它展示了落在六角形箱内的观测量

“hexbin” 图可以通过 matplotlib 的 plt.hexbin 函数绘制

“hexbin” 图也可以作为 jointplot 的一种类型参数使用,设置 sns.jointplot() 内的参数 kind="hex"

使用白色背景的时候视觉效果最好

sns.axes_style("white")

x= np.random.rand(200)

y= x+np.random.rand(200)

sns.jointplot(x=x, y=y, kind="hex", color="k");

结果为:

1921889-20201010173958069-277069653.png

2.2.3 多元矩阵图 sns.pairplot()

当需要对多维数据集进行可视化时,可以使用矩阵图 sns.pairplot()

导入鸢尾花数据集:

iris = sns.load_dataset("iris")

iris.head()

1921889-20201010174450680-1748697447.png

绘制多元矩阵图:

sns.pairplot(iris);

结果为:

1921889-20201010174549818-1465350611.png

3、其他常见图形

散点图

sns.scatterplot(x="字段名A", y="字段名B", data=“某DataFrame”)

sns.scatterplot(x="petal_length", y="petal_width", data=iris);

结果为:

1921889-20201010175705407-1681381558.png

线图

sns.lineplot(x="字段名A", y="字段名B", data="某DataFrame")

sns.lineplot(x="petal_length", y="petal_width", data=iris);

结果为:

1921889-20201010175812768-1198062190.png

柱状图

sns.barplot(x="字段A", y="字段B", data="某DataFrame")

sns.barplot(x="petal_length", y="petal_width", data=iris);

结果为:

1921889-20201010175953336-838855325.png

计数图

sns.countplot(x="字段A", data="某DataFrame")

sns.countplot(x="petal_length", data=iris);

结果为:

1921889-20201010180058681-817247464.png

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

python seaborn 散点图矩阵_python数据可视化之seaborn 的相关文章

  • springboot使用pagehelper进行分页

    上次的博客项目 使用到了分页 这里总结一下 1 项目环境 IDE IDEA 语言 java 框架 springboot 模板引擎 thymeleaf 2 效果 3 pom xml
  • 贪吃蛇视频教程

    http gameinstitute qq com lore catalog 10017
  • nvm切换node版本

    nvm是一个node的版本管理工具 可以简单操作node版本的切换 安装 查看等等 与npm不同的是 npm是依赖包的管理工具 nvm 主要为了解决 node js 各种版本存在不兼容现象 1 下载 可去github上下载相关版本 链接地址
  • cmd命令解密Bitlocker

    解锁 manage bde unlock C Recovery 加锁 manage bde lock C 解密 manage bde off C 加密 manage bde on C C表示解锁的盘符 解密需要一定时间 可以用manage
  • 利用python拼接图片代码_Python实现图片拼接的代码

    具体代码如下所示 import os from PIL import Image UNIT SIZE 220 the size of image save path root group dia zxb Code lip CycleGAN
  • python PriorityQueue遍历

    要写一段遍历PriorityQueue中每个元素的代码 去网上找到的都是for循环 get 但是这样会把PriorityQueue中的元素取出来 得 问了chatGPT 没想到真有用 from queue import PriorityQu
  • Oracle 中 decode 函数用法

    Oracle 中 decode 函数用法 含义解释 decode 条件 值1 返回值1 值2 返回值2 值n 返回值n 缺省值 该函数的含义如下 IF 条件 值1 THEN RETURN 翻译值1 ELSIF 条件 值2 THEN RETU
  • 最新QQ强制搜索Api接口

    强制搜索QQ接口 QQ隐藏搜索不到的把他QQ放在 后面然后直接搜索链接就可以搜索到了 QQ设置了隐藏无法搜索使用这个隐藏都不管用的 进入官网 https apis hackeus cn 找到强制搜索接口点进去 后面输入QQ号即可
  • 用户账户控制(无法截图/退出全屏/使用窗口模式)

    用户账户控制提示框无法截图 这是我遇到的问题 如下 就是这种对话框 一般是程序请求管理员权限运行 就会弹出 默认是全屏状态 无法截图 试过什么PrintScreen等均不行 这里提供一个办法 把该提示框改变为窗口模式 而非全屏 就可以使用截
  • 数据结构--二叉堆与优先队列

    堆的一些性质 1 堆是一颗完全二叉树 2 堆的顶端一定是 最大 最小 的 但是要注意一个点 这里的大和小并不是传统意义下的大和小 它是相对于优先级而言的 3 堆一般有两种样子 小根堆和大根堆 分别对应第二个性质中的 堆顶最大 堆顶最小 对于
  • 毕业设计 - 基于云平台的火灾报警器 - stm32 物联网 单片机 OneNET云平台

    文章目录 0 简介 1 项目简介 2 开发环境 3 火焰传感器 4 连接OneNET云平台 5 演示效果 6 最后 0 简介 Hi 大家好 学长今天向大家介绍一个 单片机项目 基于云平台的火灾报警器 stm32 物联网 单片机 OneNET
  • 【linux kernel】挂载根文件系统之rootfs

    挂载根文件系统之rootfs 文章目录 挂载根文件系统之rootfs 一 开篇 二 rootfs根文件系统 2 1 初始化rootfs 2 2 挂载rootfs文件系统 2 3 创建简单的rootfs根文件系统目录和文件 2 4 打开0 1
  • [Python系列-27]:命令行解析器argparse详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122276305 目录 第1章 arg
  • GB/T28181-2022相对2016版“基于TCP协议的视音频媒体传输要求“规范解读和技术实现

    规范解读 GB T28181 2022和GB T28181 2016规范 有这么一条 更改了附录 D 基于 TCP 协议的视音频媒体传输要求 见附录 D 2016 年版的附录 L 本文主要是针对GB T28181 2022里面提到的 基于
  • 【Java】Excel中添加下拉框

    0 两种方式 有两种方式可以实现 我仅在此记录一下 POI Hutool 1 使用 POI import org apache poi ss usermodel DataValidation import org apache poi ss
  • Web自动化元素定位

    元素定位就是通过元素的信息或元素层级结构来定位元素 要使用Web自动化操作元素 必须首先找到此元素 1 元素定位方式 1 1 基于元素属性特有的定位方式 1 id element driver find element by id id i
  • Python入门习题(91)——OpenJudge百练习题:汉诺塔问题

    OpenJudge百练第4147号习题 汉诺塔问题 题目描述 解题思路 参考答案 测试用例 小结 题目描述 来源 OpenJudge网站 百练习题集 第4147号习题 要求 总时间限制 1000ms 内存限制 65536kB 描述 一 汉诺

随机推荐

  • 猎聘发布《2019年中国5G人才需求大数据报告》

    在今年2月于西班牙巴塞罗那举办的2019世界移动通信大会上 华为 小米 vivo等中国企业先后扎堆发布了自己的5G手机 更加凸现了本次大会 5G商用产品 这一亮点 与此同时 5G成为大众新的关注焦点 借此契机 中高端人才职业发展平台猎聘推出
  • OVAL学习笔记

    很多其它好文章 http blog csdn net aap159951 article details 51131937 OVAL由MITRE公司开发 是一种用来定义检查项 脆弱点等技术细节的一种描写叙述语言 OVAL相同使用标准的XML
  • Android图片设置点击事件,Android EditText中插入图片并响应点击事件

    import android os Bundle import android app Activity import android content Context import android util Log import andro
  • 第3章 R语言编程基础——基于R软件的传统计算(超详细)

    3 1 统计分析 多元统计分析常用的 R 包和函数 3 1 1 多元回归分析 随机误差 计量模型 案例分析 M2 的建模与预测 残差的五数 估计参数的回归值 标准差 t检验量 p value 单变量显著性检验 拟合优度和 F 检验 Resi
  • bnu1331 赈灾捐款 C语言版

    北京师范大学珠海分校 Judge Online of ACM ICPC 1331 赈灾捐款 C语言版 include
  • ubuntu18.04下的mysql创建表

    ubuntu18 04下的mysql创建表 MySQL创建数据表 错误排查 出现报错 百度的解决思路 实际操作 MySQL创建数据表 删除表 drop table h data 创建表 CREATE TABLE IF NOT EXISTS
  • 第9章、图像按钮ImageButton(从零开始学Android)

    在Android App应用中 默认的Button按钮尽管我们可以通过样式变成圆角 但有时感觉仍然不够美观 我们可以通过采用图像按钮ImageButton改善这种现状 今天我们就一起学习一下图像按钮的使用 知识点 图像按钮ImageButt
  • 【数据结构课设】 浮点数计算器

    一 简介 1 功能介绍 实数的计算 支持取对数 幂次 开方及加减乘除运算 2 模块设计 1 菜单界面 2 计算器功能简介 3 计算器功能实现 3 计算器功能实现方法 1 字符串读入用户的表达式 2 处理字符串 包括提取实数以及中缀转后缀 维
  • idea开发中git合并的代码,

    方法一 将master主分支 合并到 子分支dev上 1 当前如果在dev分支上 先提交dev分支的代码到本地 然后推送到服务器 2 然后切换分支到master主分支上 先更新master主分支的代码到本地 然后主分支就是最新代码了 3 再
  • python 安卓模拟点击_Android后台模拟点击探索(附源码)

    工作中我们需要自制一套工具 其中遇到需要模拟点击事件的需求 类似按键精灵的功能 支持后台持续运行 满足触发条件时完成点击 经过一番探索 一共整理出两种不同的方案 AccessibilityService 和 adb shell命令 读者可自
  • Matlab中的c2d函数离散化

    把传递函数离散化 dsys c2d sys ts method 传函离散 num den tfdata dsys v 离散后提取分子分母 这里面的method有好多种 zoh 零阶保持 假设控制输入在采样周期内为常值 为默认值 foh 一阶
  • 【自动化测试】——robotframework实战(一)搭建环境

    一 前提准备 python 3 9 6 pip 下载 最新版本 setuptools 下载 最新版本 二 下载robotframework框架 管理员模式打开cmd 下载RF pip install robotframework 3 1 下
  • tomcat 配置域名

    Tomcat 配置域名 在windows中 首先找到conf下面的server xml 把Connector 标签中的端口改成80 然后把添加一个Host name为域名appBase为路径 如下 Engine 标签也是 最后在C盘 win
  • Android网络请求库的使用(okhttp、retrofit、rxjava)

    Android网络请求库的使用 前置工作 okhttp的基本使用 okhttp第一个demo okhttp的异步写法 更常见 GET请求中使用okhttp拼接参数 okhttp发起POST请求 拦截器第一个demo 打印请求的时间 retr
  • java并发编程实战

    Volatile变量 valatile是java提供的一种稍弱的同步机制 用来确保将变量的更新操作通知到其他线程 当把变量声明为volatile后 编译器与运行时都会注意到这个变量是共享的 因此不会将变量上的操作与其他内存操作一起重排序 1
  • 评测 AlibabaCloud 阿里云国际版 香港轻量云服务器的性能和网络怎么样

    此次站长带来的是 AlibabaCloud 阿里云国际版 香港轻量云服务器的评测 配置为512M内存 1核 20G云硬盘 官方网站 https www alibabacloud com 国际版 https www aliyun com 国内
  • AST混淆 二进制/八进制/十六进制数值及十六进制字符串,Unicode字符串还原

    二进制 八进制 十六进制数值及十六进制字符串 Unicode字符串还原插件 const simplifyLiteral NumericLiteral node if node extra 0 obx i test node extra ra
  • uniapp解决rich-text 富文本图片过大超出问题

    问题 如图所示 图片过大超出会超出手机屏幕 解决办法
  • 第十一届蓝桥杯 ——七段码

    题目描述 小蓝要用七段码数码管来表示一种特殊的文字 上图给出了七段码数码管的一个图示 数码管中一共有 7 段可以发光的二极管 分别标记为 a b c d e f g 小蓝要选择一部分二极管 至少要有一个 发光来表达字符 在设计字符的表达时
  • python seaborn 散点图矩阵_python数据可视化之seaborn

    seaborn importmatplotlib as mplimportmatplotlib pyplot as pltimportnumpy as npimportpandas as pd 解决坐标轴刻度负号乱码 plt rcParam