Python数据可视化之直方图和密度图

news2024/11/13 13:28:35

Python数据可视化之直方图和密度图

提示:前言
Python数据可视化之直方图和密度图


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • Python数据可视化之直方图和密度图
  • 前言
  • 一、导入包
  • 二、选择数据集
  • 三、直方图
  • 四、密度图
  • 五、二维 KDE 图
  • 六、颜色编码图


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、导入包

import pandas as pd
pd.plotting.register_matplotlib_converters()
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
print("Setup Complete")

设置headers

# ffmpeg 视频名字 音频名字 输出文件名字 i -cc
headers = {
    "referer":"https://www.bilibili.com/",
    "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}

二、选择数据集

选择数据集

我们将使用包含 150 种不同花朵的数据集,或者来自三种不同种类的鸢尾(Iris setosa、Iris versicolor 和 Iris virginica)各 50 种的数据集。

在这里插入图片描述

加载并检查数据
数据集中的每一行对应一朵不同的花。 有四个测量值:萼片长度和宽度,以及花瓣长度和宽度。 我们还跟踪相应的物种。

# Path of the file to read
iris_filepath = "../input/iris.csv"

# Read the file into a variable iris_data
iris_data = pd.read_csv(iris_filepath, index_col="Id")

# Print the first 5 rows of the data
iris_data.head()

在这里插入图片描述

三、直方图

假设我们想创建一个直方图来查看鸢尾花的花瓣长度如何变化。 我们可以使用 sns.histplot 命令来做到这一点

# Histogram 
sns.histplot(iris_data['Petal Length (cm)'])

在这里插入图片描述
在上面的代码单元格中,我们必须为命令提供我们想要绘制的列(在这种情况下,我们选择“花瓣长度(厘米)”)。

四、密度图

下一类型的图是核密度估计 (KDE) 图。 如果您不熟悉 KDE 图,您可以将其视为平滑的直方图。

要制作 KDE 绘图,我们使用 sns.kdeplot 命令。 设置 shade=True 为曲线下方的区域着色(并且 data= 选择我们想要绘制的列)。

# KDE plot 
sns.kdeplot(data=iris_data['Petal Length (cm)'], shade=True)

在这里插入图片描述

五、二维 KDE 图

二维 KDE 图
在创建 KDE 图表时,我们并不局限于单列。 我们可以使用 sns.jointplot 命令创建二维 (2D) KDE 图。

在下图中,颜色编码向我们展示了我们看到萼片宽度和花瓣长度的不同组合的可能性有多大,图中较暗的部分更有可能出现。

# 2D KDE plot
sns.jointplot(x=iris_data['Petal Length (cm)'], y=iris_data['Sepal Width (cm)'], kind="kde")

在这里插入图片描述
请注意,除了中间的 2D KDE 图外,

图顶部的曲线是 x 轴上数据的 KDE 图(在本例中为 iris_data[‘Petal Length (cm)’]),以及
图右侧的曲线是 y 轴上数据的 KDE 图(在本例中为 iris_data[‘Sepal Width (cm)’])。

六、颜色编码图

对于本教程的下一部分,我们将创建图表以了解物种之间的差异。

我们可以使用 sns.histplot 命令(如上所述)创建三个不同的花瓣长度直方图(每个物种一个)。

data= 提供了我们用来读取数据的变量名
x= 使用我们要绘制的数据设置列的名称
hue= 设置我们将用于将数据拆分为不同直方图的列

# Histograms for each species
sns.histplot(data=iris_data, x='Petal Length (cm)', hue='Species')

# Add title
plt.title("Histogram of Petal Lengths, by Species")

在这里插入图片描述
我们还可以使用 sns.kdeplot(如上所述)为每个物种创建一个 KDE 图。 数据、x 和色调的功能与我们在上面使用 sns.histplot 时的功能相同。 此外,我们设置 shade=True 为每条曲线下方的区域着色。
参考链接:

# KDE plots for each species
sns.kdeplot(data=iris_data, x='Petal Length (cm)', hue='Species', shade=True)

# Add title
plt.title("Distribution of Petal Lengths, by Species")

在这里插入图片描述
在图中可以看到一个有趣的模式,即这些植物似乎属于两组之一,其中 Iris versicolor 和 Iris virginica 似乎具有相似的花瓣长度值,而 Iris setosa 属于一个类别。

事实上,根据这个数据集,我们甚至可以通过观察花瓣长度将任何鸢尾植物归类为山鸢尾(而不是 Iris versicolor 或 Iris virginica):如果鸢尾花的花瓣长度小于 2厘米,最有可能是山鸢尾

参考链接

https://www.kaggle.com/code/alexisbcook/distributions

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

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

相关文章

k8s之平滑升级

写在前面 通过POD 应用就有了存在的形式,通过deployment 保证了POD在一定的数量,通过service 可以实现一定数量的POD以负载均衡的方式对外提供服务。但,如果是程序开发了新功能,需要上线,该怎么办呢?对此k…

jvm相关,jvm内存模型,java程序运行流程及jvm各个分区的作用、对象的组成(针对hotspot虚拟机)--学习笔记

java程序运行时的运行模型 在jdk1.8之前的元空间,称为永久代并将元空间挪到了堆直接使用本地内存,不再占用堆空间 jvm内存结构划分 堆(方法区)和元空间是线程共有的,其他部分是线程私有的 每创建一个线程都会创建一个…

MYSQL中常见的知识问题(二)

1、B树和B树的区别,MYSQL为啥使用B树。 1.1、B树 目的:为了存储设备或者磁盘设计的一种平衡查找树。 定义(M阶B树):a、树中的每个节点最多有m个孩子。 b、除了根节点和叶子节点外,其他节点最少含有m/2(取上…

08-网络管理-iptables基础(四表五链、禁止ping、防火墙规则添加/删除、自建链使用、SNAT\DNAT模式、FTP服务器防火墙规则)待发布

文章目录1. 概述1.1 四表1.2 五链1.3 四表五链的关系1.4 使用流程2. 语法和操作1.1 语法1.2 常用操作命令1.3 基本匹配条件1.4 基本动作1.5 常用命令示例- 设置默认值- 禁止80端口访问- 查看防火墙规则- 保存规则- 允许ssh- 禁止ping- 删除规则- 清除规则(不包括默认…

HR软件如何识别保留优秀员工

在企业信息化的时代,越来越多的年轻员工开始追求他们的激情,辞掉那些乏味的工作,而选择加入重视员工生活质量的企业。他们不再追随那些以牺牲员工福利为代价追求利润的公司。 员工认可度有助于加强组织中的团队合作关系,反过来&a…

木马程序(病毒)

木马的由来 "特洛伊木马"(trojan horse)简称"木马",据说这个名称来源于希腊神话《木马屠城记》。古希腊有大军围攻特洛伊城,久久无法攻下。于是有人献计制造一只高二丈的大木马,假装作战马神&…

实用技巧盘点:Python和Excel交互的常用操作

大家好,在以前,商业分析对应的英文单词是Business Analysis,大家用的分析工具是Excel,后来数据量大了,Excel应付不过来了(Excel最大支持行数为1048576行),人们开始转向python和R这样…

【通信原理(含matlab程序)】实验六:模拟信号的数字化

💥💥💞💞欢迎来到本博客❤️❤️💥💥 本人持续分享更多关于电子通信专业内容以及嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步~ &#x…

一文理解JVM虚拟机

一. JVM内存区域的划分 1.1 java虚拟机运行时数据区 java虚拟机运行时数据区分布图: JVM栈(Java Virtual Machine Stacks): Java中一个线程就会相应有一个线程栈与之对应,因为不同的线程执行逻辑有所不同&#xff…

【JavaGuide面试总结】Java IO篇

【JavaGuide面试总结】Java IO篇1.有哪些常见的 IO 模型?2.Java 中 3 种常见 IO 模型BIO (Blocking I/O)NIO (Non-blocking/New I/O)AIO (Asynchronous I/O)1.有哪些常见的 IO 模型? UNIX 系统下, IO 模型一共有 5 种: 同步阻塞 I/O、同步非阻塞 I/O、…

浏览器兼容性 问题产生原因 厂商前缀 滚动条 css hack 渐近增强 和 优雅降级 caniuse

目录浏览器兼容性问题产生原因厂商前缀滚动条css hack渐近增强 和 优雅降级caniuse浏览器兼容性 问题产生原因 市场竞争标准版本的变化 厂商前缀 比如:box-sizing, 谷歌旧版本浏览器中使用-webkit-box-sizing:border-box 市场竞争,标准没有…

Java多线程案例之线程池

前言:在讲解线程池的概念之前,我们先来谈谈线程和进程,我们知道线程诞生的目的其实是因为进程太过重量了,导致系统在 销毁/创建 进程时比较低效(具体指 内存资源的申请和释放)。 而线程,其实做…

14岁初中生将免去四考,保送清华本硕博连读,乡亲们敲锣打鼓祝贺

导语: 很多学生在很小的时候,都曾有豪言壮语:“将来一定要考上清华北大”。可是真正接受教育,开始学习之后,学生们才能发现,原来学习这么难。不要说真的走进清华北大,即使是进入“985”大学&am…

C++ 智能指针(一) auto_ptr

文章目录前言 - 什么是智能指针?std::auto_ptrauto_ptr的使用常用成员方法:1. get()方法2. release()方法3. reset()方法4. operator()5. operator*() & operator->()auto_ptr的局限性前言 - 什么是智能指针? 在全文开始之前&#xf…

Redis事务的概述、设计与实现

1 Redis事务概述事务提供了一种“将多个命令打包, 然后一次性、按顺序地执行”的机制, 并且事务在执行的期间不会主动中断 —— 服务器在执行完事务中的所有命令之后, 才会继续处理其他客户端的其他命令。以下是一个事务的例子, 它…

mysql-事务以及锁原理讲解(二)

1、前言 众所周知,事务和锁是mysql中非常重要功能,同时也是面试的重点和难点。本文会详细介绍事务和锁的相关概念及其实现原理,相信大家看完之后,一定会对事务和锁有更加深入的理解。 2、什么是事务 在维基百科中,对事…

7 处理多维特征的输入

文章目录课程前提知识问题引入模型改进修改神经层的增加学习能力与超参数课本代码课程来源: 链接课程文本来源借鉴: 链接以及(强烈推荐)Birandaの课程前提知识 BCELoss - Binary CrossEntropyLoss BCELoss 是CrossEntropyLoss的一个特例&am…

JavaEE day7 初识JavaScript2

函数小结 1.可以赋值给变量(其实就是被变量所指向) 2.装入容器中作为元素存在 3.在函数调用的过程中,函数类型作为实参 4.函数作为另一个函数的返回值 可以直接return一个函数 5.和java不同,JS中允许在一个函数中定义另一个函数,也就是嵌…

介绍一个令强迫症讨厌的小红点组件

前言 在 App 的运营中,活跃度是一个重要的指标,日活/月活……为了提高活跃度,就发明了小红点,然后让强迫症用户“没法活”。 小红点虽然很讨厌,但是为了 KPI,程序员也不得不屈从运营同学的逼迫(讨好),得想办法实现。这一篇,来介绍一个徽标(Badge)组件,能够快速搞…

解决OpenEuler系统 Minimal BASH-like line editing is supported

2023年开工解决的第一个问题~呃,起因是这样的,由于业务需要,修改内核参数后重新打包内核,然后安装内核rpm包后,强制关机,结果就出现如上界面。网上搜索后绝大部分是因为安装了双系统后找不到grub系统引导文…