使用Pandas也可以进行数据可视化

news2024/7/6 19:48:12

数据可视化是数据分析的一个重要方面,它提供了一种理解数据并从中得出有意义见解的方法。Pandas 是最常见的于数据分析的 Python 库,它基于Matplotlib扩展了一些常用的可视化图表,可以方便的调用,本篇文章就让我们看看有哪些图表可以直接使用。

在本文中,我们介绍使用 Pandas 进行数据可视化的基础知识,包括创建简单图、自定义图以及使用多个DF进行绘图。

我们将导入必要的库并加载示例数据集。

 importpandasaspd
 importmatplotlib.pyplotasplt
 df=pd.read_csv("https://raw.githubusercontent.com/mwaskom/seaborn-data/master/titanic.csv")

我们使用泰坦尼克的示例数据集,包含有乘客的信息,包括他们的船舱等、年龄、票价和生存状态等信息。

创建简单的图

Pandas的 plot 方法提供了创建基本图(例如线图、条形图和散点图)的简单方法。让我们看几个例子。

线图

线图用于表示连续间隔或时间段内的数据趋势。要创建线图,调用plot 方法时需要将 kind 参数指定为 line。

 df.plot(kind="line", x="age", y="fare")

看着很乱对吧,这是因为我们展示的数据无法用线图进行表示,下面我们用更好的图表表示年龄这个字段

直方图

我们可以在字段后直接使用hist方法来生成数据的直方图

 df.age.hist(figsize=(7.3,4), grid=False)

这样是不是就一目了然了,能够清楚地看到年龄的分布情况

条形图

条形图用于表示分类数据,其中每个条代表一个特定类别。要创建条形图,可以 pandas DataFrame 上使用 plot 方法并将 kind 参数指定为 bar。

 df["class"].value_counts().plot(kind="bar")

饼图

饼图与条形图类似,但是它主要来查看数据的占比

 df["embark_town"].value_counts().plot(kind="pie", rot=0)

散点图

散点图用于表示两个连续变量之间的关系。要创建散点图使用 plot 方法将 kind 参数指定为 scatter。

 df.plot(kind="scatter", x="age", y="fare")

Plot方法

Pandas的可视化主要使用.plot()方法,它有几个可选参数。其中最重要的是kind 参数,它可以接受 11 个不同的字符串值,并根据这些值创建不同的图表:

  1. “area”面积图
  2. “bar”垂直条形图
  3. “barh”水平条形图
  4. “box”箱线图
  5. “hexbin” hexbin 图
  6. “hist”直方图。
  7. “kde”内核密度估计图表
  8. “density”是“kde”的别名
  9. “line”折线图
  10. “pie”饼图
  11. “scatter”散点图

如果你不指定kind 参数,它的默认值为“line”。也就是折线图。如果不向 .plot() 提供任何参数,那么它会创建一个线图,其中索引位于 x 轴上,所有数字列位于 y 轴上。虽然这对于只有几列的数据集来说是一个有用的默认值,但对于大型数据集及其多个数字列来说,它看起就不好了。

还有就是:作为将字符串传递给 .plot() 的 kind 参数的替代方法,DataFrame 对象有几种方法可用于创建上述各种类型的图:

     .area()
     .bar()
     .barh()
     .box()
     .hexbin()
     .hist()
     .kde()
     .density()
     .line()
     .pie()
     .scatter()

还记得我们第一个直方图的.hist方法吗,他就是kind=‘hist’的一个替代。

定制图表样式颜色

我们还可以通过使用不同的参数来自定义图表的外观,例如标记的颜色、大小和形状、标签和标题。

 df.plot(kind="scatter", x="age", y="fare", color="red", alpha=0.5)
 plt.xlabel("Age")
 plt.ylabel("Fare")
 plt.title("Relationship between Age and Fare")
 plt.show()

就像我们最初介绍的那样,pandas绘图的底层是使用Matplotlib,所以这些参数都是与Matplotlib一致的,我们可以随意进行调整。

多个DataFrame绘图

Pandas还没有提供多个DataFrame的方法,所以我们只能使用Matplotlib,就像下面这样:

 df_survived=df[df["survived"] ==1]
 df_not_survived=df[df["survived"] ==0]
 
 plt.scatter(df_survived["age"], df_survived["fare"], color="green", label="Survived")
 plt.scatter(df_not_survived["age"], df_not_survived["fare"], color="red", label="Not Survived")
 plt.xlabel("Age")
 plt.ylabel("Fare")
 plt.title("Relationship between Age and Fare")
 plt.legend()
 plt.show()

总结

作为最常用的数据分析库 Pandas 提供了一种创建图表的简单方法,这种方法可以帮我们快速对数据集进行简单的分析,快速的了解数据集的情况。如果需要对数据进行更高级的可视化,可以使用Seaborn、Plotly等更高级的库。

Panda的可视化文档在这里,有兴趣的可以详细查看:

https://avoid.overfit.cn/post/1c48aa67ac3045d490bba284f625d8b0

希望本文对你有所帮助。

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

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

相关文章

使用JavaScript+Selenium玩转Web应用自动化测试

自动化测试 在软件开发过程中, 测试是功能验收的必要过程, 这个过程往往有测试人员参与, 提前编写测试用例, 然后再手动对测试用例进行测试, 测试用例都通过之后则可以认为该功能通过验收. 但是软件中多个功能之间往往存在关联或依赖关系, 某一个功能的新增或修改可能或影响到…

牛客网Python篇数据分析习题(四)

1.现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔): Nowcoder_ID:用户ID Level:等级 Achievement_value:成就值 Num_of_exercise&a…

每日学术速递2.14

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CL 1.Type-Aware Decomposed Framework for Few-Shot Named Entity Recognition 标题:识别少数命名实体的类型感知分解框架 作者:Yongqi Li, Tieyun Qian 文章链…

Flink 连接流详解

连接流 1 Union 最简单的合流操作,就是直接将多条流合在一起,叫作流的“联合”(union)。联合操作要求必须流中的数据类型必须相同,合并之后的新流会包括所有流中的元素,数据类型不变。这种合流方式非常简…

tensorflow.js 对视频 / 直播人脸检测和特征点收集

前言:这里要介绍的是 Tensorflow.js 官方提供的两个人脸检测模型,分别是 face-detection 和 face-landmarks-detection。他们不但可以对视频中的人间进行精确定位,而且还能对当前设备 (手机 / 电脑摄像头) 采集的直播流实时监测人脸。所以这些…

大华城市安防监控系统平台管理存在任意文件下载漏洞

大华城市安防监控系统平台管理存在任意文件下载漏洞1.大华城市安防监控系统平台管理存在任意文件下载漏洞1.1.漏洞描述1.2.漏洞影响1.3.FOFA2.漏洞复现2.1.登录页面2.2.抓包1.大华城市安防监控系统平台管理存在任意文件下载漏洞 1.1.漏洞描述 大华城市安防监控系统平台管理存在…

企业级数据平台为什么要“可观测”? | StartDT Hackathon

近日,奇点云黑客马拉松“StartDT Hackathon”正式收官。 这期黑客松以“可观测性”为核心选题,旨在通过加强数据云平台DataSimba的可观测性,提升企业用户“自交付、自运维”的易用性和友好度,降低运维门槛,提升发现、…

4.7 反射

文章目录1.概述2.为什么需要反射3.反射需要用到的API3.1 获取字节码对象3.2 常用方法4.反射的应用4.1 创建 : 测试物料类4.2 练习 : 获取类对象4.3 练习 : 类获取构造方法4.4 练习 : 获取成员方法4.5 练习:获取成员变量4.6 练习 : 创建对象4.7 熟悉API4.7.1 创建物科…

定时任务框架xxl-job及quartz

本文主要介绍分布式定时任务框架xxl-job,本文首先会对xxl-job做一个基本的介绍,接着将xxl-job与quartz做一个比较,最后就是介绍xxl-job调度的详细过程。 xxl-job官方文档 xxl-job的介绍 xxl-job是一个开源的分布式定时任务框架,其…

若依前后端分离版集成nacos

根据公司要求,需要将项目集成到nacos中,当前项目是基于若依前后端分离版开发的,若依的版本为3.8.3,若依框架中整合的springBoot版本为2.5.14。Nacos核心提供两个功能:服务注册与发现,动态配置管理。 一、服…

【django项目开发】用户登录后缓存权限到redis中(十)

这里写目录标题一、权限的数据的特点二、首先settings.py文件中配置redis连接redis数据库一、权限的数据的特点 需要去数据库中频繁的读和写,为了项目提高运行效率,可以把用户的权限在每次登录的时候都缓存到redis中。这样的话,权限判断的中…

基于投票策略的室内家具检测:VoteNet、BRNet 最全总结

文章目录一、基本概述二、VoteNet三、BRNet四、最新研究成果一、基本概述 最近几年,基于点云的3D目标检测是自动驾驶场景研究的热点。但是,自动驾驶主要聚焦于室外场景。本文,我们主要介绍两篇文章(VoteNet,BRNet&…

HTML第一章总结

<h1~h6>标题标签 <br />换行标签&#xff08;单&#xff09; <p>分段标签 <strong>加粗标签 <em>倾斜标签 <del>删除线标签 <ins>下划线标签 <div>独占一行的布局标签 <span>进行分割的布局标签 <img>图片标签&a…

Go-micro[windows]安装以及踩坑

一.首先安装protochttps://github.com/protocolbuffers/protobuf/releases进入网址&#xff0c;点击tag&#xff0c;然后选择v3版本进入之后找到随后下载安装然后将protoc解压缩到任意目录&#xff08;自己选&#xff09;再将protoc/bin的路径放置环境变量中二.获取protoc-gen-…

RK3568 UBOOT的问题解决案例

一、UBOOT下的波特率 原始的波特率为1500000,串口工具虽然可以设置任意波特率&#xff0c;但工作时不正常。 输入不了。本文描述如何修改成115200。 二、确认UBOOT的配置 ./build.sh uboot processing option: uboot Start building uboot TARGET_UBOOT_CONFIGrk3568## make …

【C++】二叉树之力扣经典题目1——详解二叉树的递归遍历,二叉树的层次遍历

如有错误&#xff0c;欢迎指正。 如有不理解的地方&#xff0c;可以私信问我。 文章目录题目1&#xff1a;根据二叉树创建字符串题目实例思路与解析代码实现题目2&#xff1a;二叉树的层序遍历题目思路与解析代码实现题目1&#xff1a;根据二叉树创建字符串 点击进入题目链接—…

C++——多态|虚函数|重写|虚表

文章目录1. 多态的概念1.1 概念2. 多态的定义及实现2.1多态的构成条件2.2 虚函数2.3虚函数的重写虚函数重写的三个例外&#xff1a;2.4 普通调用和多态调用&#xff1a;2.5 C11 override 和 final2.6 重载、虚函数的覆盖(重写)、隐藏(重定义)的对比3. 抽象类(有关纯虚函数)3.1 …

互联网新时代要到来了(一)什么是Web3.0?

什么是Web3.0? tips&#xff1a;内容来自百度百科、知乎、搜狐新闻、李留白公众号、CSDN「Meta.Qing」博客等网页 什么是Web3.0?1.什么是Web3.0&#xff08;概念介绍&#xff09;&#xff1f;2.Web3.0简单理解3.Web3.0的技术特点4.Web3.0项目1.什么是Web3.0&#xff08;概念…

greenDao的使用文档

介绍&#xff1a;greenDAO 是一款轻量级的 Android ORM 框架&#xff0c;将 Java 对象映射到 SQLite 数据库中&#xff0c;我们操作数据库的时候&#xff0c;不在需要编写复杂的 SQL语句&#xff0c; 在性能方面&#xff0c;greenDAO 针对 Android 进行了高度优化&#xff0c; …

Ubuntu 20中安装snaphu

Ubuntu 20中安装snaphu0 前言1 snaphu安装步骤1.1 在控制台用命令行安装1.2 在官网下载安装包0 前言 snaphu是一个解缠软件。基于欧空局的SNAP snaphu的官网&#xff1a;https://web.stanford.edu/group/radar/softwareandlinks/sw/snaphu/ 1 snaphu安装步骤 大致有两种 在…