Pandas数据可视化宝典:解锁图形绘制与样式自定义的奥秘
Pandas数据可视化宝典:解锁图形绘制与样式自定义的奥秘
引言
数据可视化是将数据以图形或图像的形式展示出来,使复杂的数据更容易被人类理解和分析。在数据分析、商业智能、科学研究等领域,数据可视化都扮演着至关重要的角色。Pandas作为一个强大的Python数据处理库,不仅提供了丰富的数据结构和处理功能,还通过与Matplotlib等可视化库的集成,使得数据可视化变得简单高效。本文将详细介绍如何使用Pandas结合Matplotlib等库绘制各种图形,并通过实战代码帮助读者掌握Pandas在数据可视化中的应用。
一、Pandas与数据可视化基础
Pandas是基于NumPy的一个开源Python数据分析工具库,提供了高效灵活的数据结构和数据分析工具。Pandas的数据结构主要包括Series(一维数组)和DataFrame(二维表格数据)。在进行数据可视化时,Pandas通常与Matplotlib、Seaborn等可视化库结合使用,通过简单的代码即可生成高质量的图形。
在进行数据可视化之前,需要确保已经安装了Pandas、Matplotlib等库。如果未安装,可以通过pip命令进行安装:
pip install pandas matplotlib
二、常见图形绘制与代码示例
1. 折线图
折线图用于展示数据随时间或其他连续变量的变化趋势。使用Pandas的plot()方法可以方便地绘制折线图。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt# 创建时间序列数据
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))
ts = ts.cumsum()# 绘制折线图
ts.plot()
plt.title('Random Walk')
plt.xlabel('Date')
plt.ylabel('Value')
plt.show()
2. 条形图
条形图用于展示分类数据的数值比较。使用plot.bar()方法可以绘制条形图。
# 创建DataFrame数据
df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])# 绘制条形图
df.plot.bar()
plt.title('Bar Chart')
plt.xlabel('Index')
plt.ylabel('Value')
plt.show()
3. 直方图
直方图用于展示数据的分布情况。使用plot.hist()方法可以绘制直方图。
# 创建DataFrame数据
data = pd.DataFrame({'A': np.random.randn(1000),'B': np.random.randn(1000) * 1.5 + 1
})# 绘制直方图
data.plot.hist(alpha=0.5, bins=30)
plt.title('Histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.legend(title='Columns')
plt.show()
4. 箱线图
箱线图用于展示数据的中位数、四分位数以及异常值等统计信息。使用plot.box()方法可以绘制箱线图。
# 创建DataFrame数据
df = pd.DataFrame(np.random.rand(10, 5), columns=['A', 'B', 'C', 'D', 'E'])# 绘制箱线图
df.plot.box()
plt.title('Boxplot')
plt.ylabel('Value')
plt.show()
5. 面积图
面积图用于展示随时间或其他连续变量变化的累计数值。使用plot.area()方法可以绘制面积图。
# 创建DataFrame数据
df = pd.DataFrame(np.random.rand(10, 4), columns=['A', 'B', 'C', 'D'])# 绘制面积图
df.plot.area()
plt.title('Area Chart')
plt.xlabel('Index')
plt.ylabel('Value')
plt.show()
6. 散点图
散点图用于展示两个变量之间的关系。使用plot.scatter()方法可以绘制散点图。
# 创建DataFrame数据
df = pd.DataFrame(np.random.rand(50, 2), columns=['X', 'Y'])# 绘制散点图
df.plot.scatter(x='X', y='Y')
plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')
plt.show()
三、自定义图形样式
Pandas允许通过参数自定义图形的颜色、线型、标签等样式。例如,修改饼图的颜色或为折线图添加标题和轴标签。
# 修改饼图颜色
sizes = [15, 30, 45, 10]
labels = ['Frogs', 'Hogs', 'Dogs', 'Logs']
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0.1, 0, 0, 0) # only "explode" the 2nd slice (i.e., 'Hogs')plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle.
plt.show()# 为折线图添加标题和轴标签
ts.plot()
plt.title('Custom Title')
plt.xlabel('Custom X Label')
plt.ylabel('Custom Y Label')
plt.show()
注意:虽然饼图的绘制不直接使用Pandas的绘图方法,但展示自定义图形样式的思路是相通的。
四、图形保存与导出
Pandas绘制的图形可以通过Matplotlib的savefig()方法保存为图片文件,支持多种格式如PNG、PDF等。
# 绘制图形并保存为PNG文件
ts.plot()
plt.savefig('timeseries_plot.png')
plt.close() # 关闭图形窗口# 绘制图形并保存为PDF文件
df.plot.bar()
plt.savefig('bar_chart.pdf')
plt.close()
五、总结与扩展
本文详细介绍了Pandas结合Matplotlib等库进行数据可视化的方法,通过实战代码展示了如何绘制折线图、条形图、直方图、箱线图、面积图和散点图等常见图形,并介绍了如何自定义图形样式以及保存和导出图形。Pandas在数据可视化中的应用远不止于此,读者可以进一步探索Pandas的其他功能,如时间序列分析、文本数据处理、机器学习整合等,以充分发挥Pandas在数据处理和分析中的强大作用。
相关文章:
Pandas数据可视化宝典:解锁图形绘制与样式自定义的奥秘
Pandas数据可视化宝典:解锁图形绘制与样式自定义的奥秘 引言 数据可视化是将数据以图形或图像的形式展示出来,使复杂的数据更容易被人类理解和分析。在数据分析、商业智能、科学研究等领域,数据可视化都扮演着至关重要的角色。Pandas作为一…...
2024前端面试真题【JS篇】
DOM DOM:文本对象模型,是HTML和XML文档的编程接口。提供了对文档的结构化的表述,并定义可一种方式可以使从程序中对该结构进行访问,从而改变文档的结构、样式和内容。 DOM操作 创建节点:document.createElement()、do…...
axios使用sm2加密数据后请求参数多了双引号解决方法
axios使用sm2加密数据后请求参数多了双引号解决 背景问题描述解决过程 背景 因项目安全要求,需对传给后端的入参加密,将请求参数加密后再传给后端 前期将axios降低到1.6.7后解决了问题,但最近axios有漏洞,安全要求对版本升级&…...
MybatisPlus 核心功能
MybatisPlus 核心功能 文章目录 MybatisPlus 核心功能1. 条件构造器1.1 QueryWrapper1.2 LambdaQueryWrapper(推荐)1.3 UpdateWrapper1.4 LambdaUpdateWrapper 2. 自定义SQL3. Service接口 1. 条件构造器 当涉及到查询或修改语句时,MybatisP…...
vivado EQUIVALENT_DRIVER_OPT、EXCLUDE_PLACEMENT
Vivado工具将所有逻辑上等效的信号的驱动程序合并为单个驱动程序 在逻辑优化过程中指定-merge_equivalent_drivers选项时 (opt_design)。请参阅《Vivado Design Suite用户指南:实施》中的此链接 (UG904)[参考文献20]了…...
docker也能提权??内网学习第6天 rsync未授权访问覆盖 sudo(cve-2021-3156)漏洞提权 polkit漏洞利用
现在我们来说说liunx提权的操作:前面我们说了环境变量,定时任务来进行提权的操作 rsync未授权访问覆盖 我们先来说说什么是rsync rsync是数据备份工具,默认是开启的873端口 我们在进行远程连接的时候,如果它没有让我们输入账号…...
TF卡病毒是什么?如何防范和应对?
在存储芯片及存储卡领域,TF卡病毒是一个备受关注的话题。在本文中,拓优星辰将详细解释TF卡病毒的含义、来源以及如何防范和应对这一问题,帮助客户更好地了解和处理TF卡病毒的风险。 1. TF卡病毒的含义 TF卡病毒是指针对TF存储卡(T…...
window对象监听浏览器页签之间的切换状态;前端监听浏览器切换页签的触发时机
window对象监听浏览器页签之间的切换状态 记录两种办法 第一种:会将任何鼠标点进或点出浏览器的操作监听;同页面也会触发 // 窗口获得焦点时的回调函数 function onWindowFocus() {console.log(窗口获得焦点);querySubmit() } // 窗口失去焦点时的回调函…...
MySQL 条件函数/加密函数/转换函数
条件函数 IF(): 如果条件为真,返回一个值,否则返回另一个值。 -- 示例:根据员工的薪水返回薪水等级 SELECT name, salary, IF(salary < 3000, Low, IF(salary BETWEEN 3000 AND 7000, Medium, High)) AS salary_level FROM employ…...
初学SpringMVC之接收请求参数及数据回显
pom.xml 文件导入 lombok 的依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.34</version></dependency> Controller 表示这是一个控制器 RequestParam 表示从前端接收…...
Java链表LinkedList经典题目
一.LinkedList的方法 首先先看一下链表的方法: 方法解释boolean add(E e)尾插void add(int index, E element)将 e 插入到 index 位置boolean addAll(Collection c)尾插 c 中的元素E remove(int index)删除 index 位置元素boolean remove(Object o)删除遇到的第一…...
【cocos creator】2.x,伪3d拖拽,45度视角,60度视角,房屋装扮
伪3d拖拽,45度视角,60度视角 工程下载:(待审核) https://download.csdn.net/download/K86338236/89530812 dragItem2.t s import mapCreat2 from "./mapCreat2";const {ccclass, property } = cc._decorator; /*** 拖拽类,挂在要拖拽的节点上*/ @ccclass export…...
【thingsbord源码编译】 显示node内存不足
编译thingsbord显示报错 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory问题原因分析 重新安装java版本 编译通过...
内存巨头SK海力士正深化与TSMC/NVIDIA合作关系,开发下一代HBM
据BusinessKorea报道,内存巨头SK海力士正深化与台积电(TSMC)及英伟达(NVIDIA)的合作关系,并计划在9月的台湾半导体展(Semicon Taiwan)上宣布更紧密的伙伴关系。 SK海力士与台积电的合作历史已久。2022年,台积电在其北美技术研讨会上宣布成立O…...
基于Pinia的WebSocket管理与优化实践(实现心跳重连机制,异步发送)
WebSocket作为一种全双工通信协议,允许服务器和客户端之间建立持久的连接,提供了比传统HTTP请求更为高效的数据交换方式。本文将探讨如何使用Pinia状态管理库在Vue应用中优雅地管理和优化WebSocket连接,以实现稳定、高效的实时数据传输。 环境…...
Perl词法作用域:自定义编程环境的构建术
🎭 Perl词法作用域:自定义编程环境的构建术 在Perl编程中,词法作用域(lexical scoping)是一种控制变量可见性的方式,它允许变量在特定的作用域内可见,从而避免变量名的冲突。Perl提供了灵活的机…...
vscode使用ssh连接远程服务器
开工啦 vscode连接远程服务器(傻瓜式教学) 正常根据上面文章的步骤就可以连接了 报错可以尝试的文章: VScode通过remote ssh连接虚拟机 & 报错过程试图写入的管道不存在(已解决) vscode remote ssh linux[血泪…...
linux 常用和不那么常用命令记录02 磁盘占用
常用的磁盘相关命令 du 有的时候我们想要查询一个文件所占用的磁盘空间大小,可以使用du命令来查看 命令 配置 参数 du [options] [files or directories]-h:以人类可读的格式显示输出(例如 KB、MB、GB)。 -s…...
mybatis日志记录方案
首先对指定表进行监控 对表进行监控,那么就要使用的是statementInterceptor 拦截器 使用拦截器那么就要写intercepts写拦截条件进行拦截 监控只对与增删改 查询不进行监控 对于字段的监控,是谁修改了字段,那么就进行报警,或者提醒 消息提醒使用钉钉机器人进行消息提醒 P…...
【LeetCode】最长连续序列
目录 一、题目二、解法完整代码 一、题目 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nu…...
3大核心技术深度解析:D3KeyHelper如何重新定义暗黑3游戏辅助体验
3大核心技术深度解析:D3KeyHelper如何重新定义暗黑3游戏辅助体验 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3KeyHelper是一款基于A…...
C++的std--ranges视图转换
C的std::ranges视图转换:现代序列处理的利器 在C20中,std::ranges库的引入彻底改变了序列处理的方式,其中视图转换(View Adaptors)作为核心功能之一,为开发者提供了高效、声明式的数据操作工具。通过视图转…...
如何通过抖音批量下载工具实现高效内容管理与分析
如何通过抖音批量下载工具实现高效内容管理与分析 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载…...
PyTorch 2.8镜像开发者案例:独立开发者打造个人AI视频工作室技术栈
PyTorch 2.8镜像开发者案例:独立开发者打造个人AI视频工作室技术栈 1. 从零搭建AI视频工作室的技术选择 作为一名独立开发者,我一直在寻找能够支撑个人AI视频创作的技术方案。经过多次尝试,最终选择了基于PyTorch 2.8的深度学习镜像作为核心…...
如何高效实现金融核心系统客户证件影像预览?kkFileView完整解决方案
如何高效实现金融核心系统客户证件影像预览?kkFileView完整解决方案 【免费下载链接】kkFileView Universal File Online Preview Project based on Spring-Boot 项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView 在金融行业日常运营中…...
忍者像素绘卷从零开始:基于Z-Image-Turbo的亮色像素AI绘画实战教程
忍者像素绘卷从零开始:基于Z-Image-Turbo的亮色像素AI绘画实战教程 1. 认识忍者像素绘卷 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站,它将忍者的热血意志与16-Bit复古游戏美学完美融合。与传统AI绘画工具不同,它采用了独…...
Ostrakon-VL 扫描终端嵌入式部署初探:在 STM32 生态下的轻量级应用
Ostrakon-VL 扫描终端嵌入式部署初探:在 STM32 生态下的轻量级应用 1. 嵌入式视觉的新机遇 在工业质检、智能零售和智慧农业等领域,越来越多的场景需要设备具备实时视觉理解能力。传统方案往往依赖高性能计算平台或云端处理,但在资源受限的…...
OpenClaw学习助手:用gemma-3-12b-it自动整理课程笔记与习题
OpenClaw学习助手:用gemma-3-12b-it自动整理课程笔记与习题 1. 为什么需要AI学习助手? 作为一名经常需要消化大量课程资料的技术从业者,我长期被三个问题困扰:PDF讲义信息碎片化难以形成体系、课堂重点难以快速提炼、错题整理耗…...
RNA Clean-Up and Concentration Kits:适用于小RNA测序的RNA纯化与浓缩方案
在分子生物学研究中,RNA的纯度与浓度直接影响下游实验的成败。无论是从TRIzol等酚类试剂中提取的RNA,还是经过体外转录、DNase处理、标记反应等酶促步骤的样本,均可能残留影响后续实验的杂质。由艾美捷代理的Norgen Biotek推出的RNA Clean-Up…...
Windows热键冲突终结者:Hotkey Detective让键盘操作回归掌控
Windows热键冲突终结者:Hotkey Detective让键盘操作回归掌控 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 当…...
