首页 > 编程语言 >Python Seaborn 绘制单变量分布

Python Seaborn 绘制单变量分布

时间:2024-01-22 20:24:16浏览次数:35  
标签:Seaborn Python 指定 布尔值 直方图 histplot 绘制 displot

 

Seaborn库是一个基于Matplotlib的数据可视化库,它提供了更高级的接口来绘制各种统计图形,包括单变量分布图。要在Seaborn中绘制单变量分布,最常用的函数是distplot(在Seaborn的新版本中,这个函数被替换为displot和histplot)。

1、使用 distplot 绘制单变量分布

使用 distplot 函数用于绘制单变量(单维度)数据的分布。该函数可以同时显示直方图(Histogram)和核密度估计(Kernel Density Estimate, KDE),核密度估计(KDE)是一种用于估计概率密度函数的非参数方式,可以提供有关数据分布形状的更平滑的视图。distplot 是一个非常灵活的函数,提供了多种参数来自定义图表的外观和行为。常用参数如下,

参数

描述

a

输入数组或序列,即要绘制的数据。

bins

设置直方图的箱数或边界。

hist

布尔值,指定是否绘制(标准化的)直方图。

kde

布尔值,指定是否绘制核密度估计(KDE)。

rug

布尔值,指定是否在x轴上添加rug plot(数据点分布图)。

fit

用于将数据拟合到指定的参数化分布。

color

设置直方图、KDE和rug plot的颜色。

vertical

布尔值,如果为True,绘制垂直直方图。

norm_hist

布尔值,如果为True,直方图高度显示密度而非计数。

axlabel

设置x轴标签。

使用代码:

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np

# 创建数据
data = np.random.randn(100)

# 创建图表
plt.figure(figsize=(8, 6))

# 绘制分布图
sns.distplot(data, bins=30, hist=True, kde=True, rug=True, 
             color='blue', norm_hist=True, axlabel='Data Values', 
             vertical=False, fit=None)

# 添加图例
plt.title('cjavapy Distribution Plot')
plt.legend(['Histogram', 'KDE', 'Rug Plot'])

# 使用 plt.draw() 显示画布
plt.draw()

# 显示图表
plt.show()

注意:distplot 函数已过时,在 seaborn v0.14.0 版本中移除。使用 displot(一个具有类似灵活性的图形级函数)或 histplot(一个用于显示直方图的轴级函数)替代。

2、使用 displot 和 histplot 绘制单变量分布

displot 和 histplot 都是用于绘制单变量分布的强大工具。displot 是一个 figure-level 函数,提供了多种方式来展示单变量分布,包括直方图、核密度估计等。而 histplot 是一个 axis-level 函数,专门用于绘制直方图。

1)displot 和 histplot 的区别

displot 是一个更高层次的函数,提供了更多的灵活性,能够创建更复杂的分布图,比如分面图(facet grid)。histplot 则更专注于创建直方图,是绘制这类图的专用工具。

2)displot 常用参数及示例

参数

描述

data

用于绘图的数据集,通常是 Pandas 的 DataFrame。

x

指定 DataFrame 中用于绘制的列名。

kind

指定图表的种类,如 'hist', 'kde', 'ecdf' 等。

bins

直方图的柱数,仅当 kind='hist' 时有效。

kde

布尔值,表示是否在直方图上绘制核密度估计线,仅当 kind='hist' 时有效。

rug

布尔值,表示是否添加 'rug',在 x 轴上每个数据点的位置添加小细条。

color

设置图形的颜色。

height

设置图形的高度(英寸)。

aspect

设置图形的纵横比。

facet_kws

传递给 FacetGrid 的其他关键字参数。

 使用示例:Python Seaborn 绘制单变量分布-CJavaPy

3)histplot 常用参数及示例

参数

描述

data

数据集,可以是 DataFrame、数组、列表或类似对象。

x

指定数据集中用于绘图的列名(如果

data

是 DataFrame)。用于水平轴。

y

指定数据集中用于绘图的列名(如果

data

是 DataFrame)。用于垂直轴。

bins

指定直方图的箱子数量或边界。可以是整数、序列或字符串。

binwidth

指定每个箱子的宽度。

kde

布尔值,指定是否添加核密度估计(KDE)曲线。

color

指定绘图使用的颜色。

stat

指定如何计算每个箱子的高度。如 'count', 'frequency', 'density', 'probability'。

cumulative

布尔值,指定是否绘制累积直方图。

multiple

指定多个变量的直方图如何显示在一起。如 'layer', 'stack', 'fill', 'dodge'。

使用示例:Python Seaborn 绘制单变量分布-CJavaPy

标签:Seaborn,Python,指定,布尔值,直方图,histplot,绘制,displot
From: https://www.cnblogs.com/tinyblog/p/17980998

相关文章

  • python中path[:]跟path有什么区别?
    问题:看到别写的算法里有path[:],不知道跟普通的有什么区别?AI答案:在Python中,`result.append(path[:])`和`result.append(path)`有本质的区别。result.append(path)这种方式,是将path列表的引用加入到result列表,如果后续更改了path列表,result中的相应元素也会随之改变。......
  • Python web crawler(5)多页网站拼接
    先搞单页网站:importrequestsfromlxmlimportetreeurl='https://*********.com/top250?start=1'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/120.0.0.0Safari/......
  • 使用 gdb 调试运行中的 Python 进程(转)
    addbyzhj: 虽然本文是以UbuntuPython2.7为例,但基本也适用于UbuntuPython3,但有两点不同1. aptintallpython<3.x>-dbg,这里的3.x是你要调试的Python程序使用的Python版本。如果你有两个Python程序需要调试,一个使用Python3.7,另一个使用Python3.9,那需要安装python3.7-dbg和pyt......
  • python学习笔记10(循环结构2)
    一)循环结构21、扩展模式语法:for循环变量in遍历对象:语句块1else:语句块2说明:else在循环结束后执行,通常和break和continue结合使用2、无限循环whilewhile表达式:语句块例子:answer=input('今天要上课么?y/n')whileanswer=='y':print('好好学习,天天向上')answer=input('今......
  • 快乐学Python,如何使用Python处理文件(csv、Excel、html)数据?
    在前面的文章中,我们了解了Python爬虫的一些内容。截止到现在,我们已经可以将需要的数据通过爬虫获取,并保存到CSV文件中。在有了数据集后,接下来我们就开始了解如何将数据集的内容加载到Python中。虽然在之前也有了解简单的读取csv数据。但是存在两个问题:只能读取csv文件,但数据分析......
  • python自动化测试学习路线(从入门到精通)
    python自动化测试学习路线(从入门到精通)一、Python的应用场景Python用于简单脚本编程,如编写2048小游戏或12306的自动抢票软件;Python用于系统编程,如开发系统应用;Python用于开发网络爬虫;网络爬虫的用途是进行数据采集,也就是将互联网中的数据采集过来。网络爬虫的难点其......
  • 测试开发技术:Python测试框架Pytest的基础入门
    测试开发技术:Python测试框架Pytest的基础入门  Pytest简介Pytestisamaturefull-featuredPythontestingtoolthathelpsyouwritebetterprograms.Thepytestframeworkmakesiteasytowritesmalltests,yetscalestosupportcomplexfunctionaltesting......
  • 如何从 0 开始学 Python 自动化测试开发(一)
    如何从0开始学Python自动化测试开发(一)Python:「TIOBE’s2018年度编程语言」Python作为大数据工程和AI的主流开发语言,近年来一直保持强劲的上升趋势。即使目前AI领域还没有大量的成功商业案例(盈利的)出现,Python语言就已经空前火爆了。2019新年伊始,Python果然......
  • Python 自动化测试开发
     测试开发WebUI测试自动化splinter-webUI测试工具,基于selnium封装。链接selenium-webUI自动化测试。链接--推荐文档参考mechanize-Python中有状态的程序化Web浏览。链接selene-使用Python+Ajax支持+PageObjects+Widgets进行简明UI测试链......
  • 基于python3 flet库的证书查看工具
    前言基于python3flet库实现了证书信息的提取,留作自用,如有错误欢迎指正。正文程序架构:主程序main.py证书解析程序certHandle.py运行pythonmain.pymain.py#-*-coding:utf-8-*-importbase64importtracebackimportjsonimportfletasftfromcertHandleimp......