Python可视化神器Seaborn入门系列——kdeplot

news2024/11/23 11:47:11

Seaborn是基于matplotlib的Python可视化库。 它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,不需要经过大量的调整就能使你的图变得精致。但应强调的是,应该把Seaborn视为matplotlib的补充,而不是替代物。
在这里插入图片描述

Seaborn安装

pip install seaborn

安装完Seaborn包后,我们就开始进入接下来的学习啦,首先我们介绍kdeplot的画法。

kdeplot(核密度估计图)

核密度估计(kernel density estimation)是在概率论中用来估计未知的密度函数,属于非参数检验方法之一。通过核密度估计图可以比较直观的看出数据样本本身的分布特征。具体用法如下:

seaborn.kdeplot(data,data2=None,shade=False,vertical=False,kernel='gau',bw='scott',
gridsize=100,cut=3,clip=None,legend=True,cumulative=False,shade_lowest=True,cbar=False, cbar_ax=None, cbar_kws=None, ax=None, **kwargs)

我们通过一些具体的例子来学习一些参数的用法:

  • 首先导入相应的库
%matplotlib inline  #IPython notebook中的魔法方法,这样每次运行后可以直接得到图像,不再需要使用plt.show()
import numpy as np  #导入numpy包,用于生成数组
import seaborn as sns  #习惯上简写成sns
sns.set()           #切换到seaborn的默认运行配置
  • 绘制简单的一维kde图像
x=np.random.randn(100)  #随机生成100个符合正态分布的数
sns.kdeplot(x)

在这里插入图片描述
cut:参数表示绘制的时候,切除带宽往数轴极限数值的多少(默认为3)

sns.kdeplot(x,cut=0)

在这里插入图片描述
cumulative :是否绘制累积分布

sns.kdeplot(x,cumulative=True)

shade:若为True,则在kde曲线下面的区域中进行阴影处理,color控制曲线及阴影的颜色

sns.kdeplot(x,shade=True,color="g")

在这里插入图片描述
vertical:表示以X轴进行绘制还是以Y轴进行绘制

sns.kdeplot(x,vertical=True)

二元kde图像

y=np.random.randn(100)
sns.kdeplot(x,y,shade=True)

在这里插入图片描述
cbar:参数若为True,则会添加一个颜色棒(颜色帮在二元kde图像中才有)

sns.kdeplot(x,y,shade=True,cbar=True)

在这里插入图片描述

举例说明二元kde图像

定义了一个函数


def plot_distribution_target(df, target, cols):
    dist_cols=5
    dist_rows=len(cols)
    plt.figure(figsize=(5*dist_cols,5*dist_rows))
    i=1
    for col in cols:
        ax=plt.subplot(dist_rows,dist_cols,i)
        ax=sns.kdeplot(df[df[target]==1][col],color='Red',shade=True)#train_data
        ax=sns.kdeplot(df[df[target]==0][col],color='Blue',shade=True)
        ax.set_xlabel(col)
        ax.set_ylabel('Frequency')
        ax=ax.legend(['target=1','target=0'])
        i+=1
    plt.show()

现在有个数据,保存在csv文件中:

import seaborn as sns  #习惯上简写成sns
sns.set()           #切换到seaborn的默认运行配置
#定义训练数据集的位置
pathTrain='./PROCESSING_DATA'
train_tag = pd.read_csv(pathTrain+'/df_tag.csv')
print(train_tag.head())

输出如下:

        id  flag  gdr_cd  age  mrg_situ_cd  edu_deg_cd  acdm_deg_cd  deg_cd  \
0  U7A4BAD     0       1   41            1           1            6       6   
1  U557810     0       1   35            0          12            5       6   
2  U1E9240     0       1   53            1           0            2       2   
3  U6DED00     0       0   41            1          12            6       6   
4  UDA8E28     0       0   42            1           1            6       1   

   job_year  ic_ind  ...  crd_card_act_ind  l1y_crd_card_csm_amt_dlm_cd  \
0         3       0  ...                 0                            0   
1         4       0  ...                 0                            0   
2         9       0  ...                 0                            0   
3         0       0  ...                 0                            0   
4         3       1  ...                 0                            0   

   atdd_type  perm_crd_lmt_cd  cur_debit_cnt  cur_credit_cnt  \
0          0                3              1               0   
1          0                1              1               0   
2          0                7              2               0   
3          0                1              1               0   
4          0                2              7               0   

   cur_debit_min_opn_dt_cnt  cur_credit_min_opn_dt_cnt  cur_debit_crd_lvl  \
0                      3492                         -1                 10   
1                      4575                         -1                 10   
2                      4894                         -1                 40   
3                      4938                         -1                 10   
4                      2378                         -1                 20   

   isTest  
0      -1  
1      -1  
2      -1  
3      -1  
4      -1  

[5 rows x 44 columns]
plot_distribution_target(train_tag,'flag', ['gdr_cd','age'])

在这里插入图片描述
这几个特征,在target=0和target=1时的kde,发现这几个特征对target的区分能力都非常有限。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT 火爆全球,我们能抓住的下一个风口在哪?

中国互联网行业正面临着巨大的压力和挑战,但也孕育着新的发展机遇。当下正值ChatGPT火爆,整个互联网行业充满了机遇和挑战,身处其中的我们能抓住什么呢? 思你所思,帮大家整理出了五大风口!希望对大家有所帮…

html SpeechSynthesis文字转语音

web 页面使用speechSynthesis实现文字转语音 网页语音 API 的SpeechSynthesis 接口是语音服务的控制接口;它可以用于获取设备上关于可用的合成声音的信息,开始、暂停语音,或除此之外的其他命令。 属性 SpeechSynthesis 也从它的父接口继承属…

腾讯云服务器选择购买流程(一步步详细配置)

腾讯云服务器购买流程直接在官方活动上选择比较合适,在云服务器CVM或轻量应用服务器页面自定义购买费用比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动机,选择范围窄,但是云服…

数据结构 -- 队列

1、Queue队列 先进先出 2、双端队列 --- Deque Deque的实现类是LinkedList,ArrayDeque,LinkedBlockingDeque。 ArrayDeque底层实现是数组,LinkedList底层实现是链表。 双端队列可以作为普通队列使用,也可以作为栈使用。Java官方推荐使用Deque替代Stac…

【flask + sqlalchemy】连接clickhouse数据库的踩的坑,在这里记录一下

文章目录 前言1. 发现问题2. 复盘2.1 上面试一次错误的问题记录2.2 flask使用clickhouse2.2.1 配置2.2.2 orm2.3 如何插入数据 前言 使用clickhouse有一段时间了,现在要重构一个项目,重度依赖clickhouse,现在终于理顺了,记录一下…

数据库管理-第七十七期 再探分布式(20230523)

数据库管理 2023-05-23 第七十七期 再探分布式1 单机分布式2 分布式改造3 尝试改造一个订单系统3.1 表类型和分片键选择3.2 扩展分片3.3 业务扩展 总结 第七十七期 再探分布式 上一次系统探讨分布式数据库还是在第三十六期,经过大半年的“进步”加上中间参加了不少…

Linux启动过程的问题解决

文章目录 Linux启动过程的问题解决忘记root密码的解决因文件系统错误而无法启动 Linux启动过程的问题解决 当我们在使用Linux时,可能会因为某些设置或突然断电等原因导致文件系统出现错误,从而导致Linux无法正常启动。但这并不意味着我们需要重新安装系…

ASEMI代理长电可控硅MAC97A8图片,MAC97A8大小

编辑-Z 长电可控硅MAC97A8参数: 型号:MAC97A8 VDRM/VRRM:600V IT(RMS):1A ITSM:8A 栅极电流(峰值):1A 栅极电压(峰值):5V 栅极功率&#…

翼辉+飞腾全国产实时操作系统与全国产主板工控方案在电力产品的应用

SylixOS(MS-RTOS)电力产品应用简介 一、电网传统装置: 继电保护、测控、稳控、PMU、时间同步、故障录波等装置(输变电) 一般使用AMP方案,少数客户使用SMP方案。2019年11月使用SylixOS的国内首台100%全国…

centos8 安装mysql8

1、下载mysql8软件库 wget https://repo.mysql.com//mysql80-community-release-el8-3.noarch.rpm 2、安装软件库 rpm -ivh mysql80-community-release-el8-3.noarch.rpm 3、安装mysql yum install mysql-server 4、启动mysql systemctl start mysqld systemctl enable…

【非集中申请期】国家自然科学基金最新申请指南情况汇总

2023年国自然集中申请期函评季临近尾声。当下,申请人除了在日常的科研工作中也要合理、及时的关注一些非集中申请期的项目动态,恰如2023年各类非集中期申请项目指南正在陆续发布中,这些仍然是非常好的申请机会。近期的项目指南名称与申请截止…

快速上手MATLAB:科研、工程、数据分析,MATLAB入门(下)教你基础知识!分享《MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)》

快速上手MATLAB:科研、工程、数据分析,MATLAB入门(上)教你基础知识! 福利:文末有资料分享!!前言一、文件读取1. 工作空间数据读取2. 文本文件读取3. 常用的数据导入和导出函数4. 图像…

不吹不黑,安利5个网工必备工具包

大家好,我是老杨。 要说网工的好用工具,你心里肯定有不少选项。工具常用常新,与时俱进,但你的思维却不一定。 研究一个新工具,除了能提升你的工作效率,也能对你的认知有所开拓和提升。 所以,…

《程序员面试金典(第6版)》面试题 02.01. 移除重复节点(哈希映射,多指针暴力破解,链表)

题目描述 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 题目传输门:面试题 02.01. 移除重复节点 示例1: 输入:[1, 2, 3, 3, 2, 1]输出:[1, 2, 3]示例2: 输入:[1, 1, 1, 1, 2]输出:[1, 2]…

Hive---拉链表设计与实现

1 数据同步问题 Hive在实际工作中主要用于构建离线数据仓库,定期的从各种数据源中同步采集数据到Hive中,经过分层转换提供数据应用。比如每天需要从MySQL中同步最新的订单信息、用户信息、店铺信息等到数据仓库中,进行订单分析、用户分析。 …

【C++修炼之路】定位new(项目记录)

————————————每一个不曾起舞的日子都是对生命的辜负。 C之定位new 1. 什么是定位new2. 定位new的语法3. 具体实例 1. 什么是定位new 一般的new运算符负责在heap堆中找到一个足以能够满足要求的内存块。 而定位new(Placement new)是C中的一…

运行100万个并发任务,不同语言各需要多少内存

作者:DataStax 公司(美国的一家数据库系统开发商)Piotr Kołaczkowski 原文见: https://pkolaczk.github.io/memory-consumption-of-async/ 在这篇博客文章中,探讨了处理大量网络连接时候的Rust、Go、Java、C#、Pyth…

企企通“码上顺”清洗工具 | 让数据更有价值,让业务更出色

数据清理工作是企业数据管理、数据治理中的最基础的工作之一,不仅是一项苦活、累活,也是一个既考验业务又检验技术的活。 物料主数据作为企业核心的数据资产,在智慧供应链、业财一体化等数字化建设中发挥着重要作用。在当今高速发展的商业环…

《汇编语言》- 读书笔记 - 实验2 用机器指令和汇编指令编程

《汇编语言》- 读书笔记 - 实验2 用机器指令和汇编指令编程 1. 预备知识: Debug 的使用2 .实验任务 1. 预备知识: Debug 的使用 统一完善到:实验 1 查看 CPU 和内存,用机器指令和汇编指令编程。不在这拆开写了。 2 .实验任务 使用 Debug,将…

功率放大器在压电驱动器中的作用及应用

功率放大器在压电驱动器中的作用是将低功率信号放大为足够大的电力信号,以驱动压电陶瓷材料产生相应的机械振动。 压电陶瓷材料是一种特殊的陶瓷材料,能够将机械能转换为电能,因此被广泛应用于各种类型的振动器件和传感器中。这些器件通常需要…