Python Pandas(11):Pandas 数据可视化
数据可视化是数据分析中的重要环节,它帮助我们更好地理解和解释数据的模式、趋势和关系。通过图形、图表等形式,数据可视化将复杂的数字和统计信息转化为易于理解的图像,从而便于做出决策。Pandas 提供了与 Matplotlib 和 Seaborn 等可视化库的集成,使得数据的可视化变得简单而高效。在 Pandas 中,数据可视化功能主要通过 DataFrame.plot() 和 Series.plot() 方法实现,这些方法实际上是对 Matplotlib 库的封装,简化了图表的绘制过程。
| 图表类型 | 描述 | 方法 |
|---|---|---|
| 折线图 | 展示数据随时间或其他连续变量的变化趋势 | df.plot(kind='line') |
| 柱状图 | 比较不同类别的数据 | df.plot(kind='bar') |
| 水平柱状图 | 比较不同类别的数据,但柱子水平排列 | df.plot(kind='barh') |
| 直方图 | 显示数据的分布 | df.plot(kind='hist') |
| 散点图 | 展示两个数值型变量之间的关系 | df.plot(kind='scatter', x='col1', y='col2') |
| 箱线图 | 显示数据分布,包括中位数、四分位数等 | df.plot(kind='box') |
| 密度图 | 展示数据的密度分布 | df.plot(kind='kde') |
| 饼图 | 显示不同部分在整体中的占比 | df.plot(kind='pie') |
| 区域图 | 展示数据的累计数值 | df.plot(kind='area') |
1 Pandas 数据可视化概述
Pandas 提供的 plot() 方法可以轻松地绘制不同类型的图表,包括折线图、柱状图、直方图、散点图等。plot() 方法有很多参数,可以定制图表的样式、颜色、标签等。
1.1 基本的 plot() 方法
| 参数 | 说明 |
|---|---|
kind | 图表类型,支持 'line', 'bar', 'barh', 'hist', 'box', 'kde', 'density', 'area', 'pie' 等类型 |
x | 设置 x 轴的数据列 |
y | 设置 y 轴的数据列 |
title | 图表的标题 |
xlabel | x 轴的标签 |
ylabel | y 轴的标签 |
color | 设置图表的颜色 |
figsize | 设置图表的大小(宽, 高) |
legend | 是否显示图例 |
1.2 常用图表类型
| 图表类型 | 描述 | 常用用法 |
|---|---|---|
| 折线图 | 用于显示随时间变化的数据趋势 | df.plot(kind='line') |
| 柱状图 | 用于显示类别之间的比较数据 | df.plot(kind='bar') |
| 水平柱状图 | 与柱状图类似,但柱子是水平的 | df.plot(kind='barh') |
| 直方图 | 用于显示数据的分布(频率分布) | df.plot(kind='hist') |
| 散点图 | 用于显示两个数值变量之间的关系 | df.plot(kind='scatter', x='col1', y='col2') |
| 箱线图 | 用于显示数据的分布、异常值及四分位数 | df.plot(kind='box') |
| 密度图 | 用于显示数据的密度分布 | df.plot(kind='kde') |
| 饼图 | 用于显示各部分占总体的比例 | df.plot(kind='pie') |
| 区域图 | 用于显示累计数值的图表(类似于折线图,但填充了颜色) | df.plot(kind='area') |
2 数据可视化示例
2.1 折线图 (Line Plot)
折线图通常用于展示数据随时间的变化趋势。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data = {'Year': [2015, 2016, 2017, 2018, 2019, 2020],'Sales': [100, 150, 200, 250, 300, 350]}
df = pd.DataFrame(data)# 绘制折线图
df.plot(kind='line', x='Year', y='Sales', title='Sales Over Years', xlabel='Year', ylabel='Sales', figsize=(10, 6))
plt.show()

2.2 柱状图 (Bar Chart)
柱状图用于展示不同类别之间的比较,尤其适用于离散数据。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data = {'Category': ['A', 'B', 'C', 'D'],'Value': [10, 15, 7, 12]}
df = pd.DataFrame(data)# 绘制柱状图
df.plot(kind='bar', x='Category', y='Value', title='Category Values', xlabel='Category', ylabel='Value', figsize=(8, 5))
plt.show()

2.3 散点图 (Scatter Plot)
散点图用于展示两个数值变量之间的关系。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data = {'Height': [150, 160, 170, 180, 190],'Weight': [50, 60, 70, 80, 90]}
df = pd.DataFrame(data)# 绘制散点图
df.plot(kind='scatter', x='Height', y='Weight', title='Height vs Weight', xlabel='Height (cm)', ylabel='Weight (kg)',figsize=(8, 5))
plt.show()

2.4 直方图 (Histogram)
直方图用于显示数据的分布,特别是用于描述数据的频率分布。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df = pd.DataFrame(data)# 绘制直方图
df.plot(kind='hist', y='Scores', bins=5, title='Scores Distribution', xlabel='Scores', figsize=(8, 5))
plt.show()

2.5 箱线图 (Box Plot)
箱线图用于展示数据的分布情况,包括中位数、四分位数以及异常值。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df = pd.DataFrame(data)# 绘制箱线图
df.plot(kind='box', title='Scores Boxplot', ylabel='Scores', figsize=(8, 5))
plt.show()

2.6 饼图 (Pie Chart)
饼图用于展示各部分占总体的比例。
import pandas as pd
import matplotlib.pyplot as plt# 示例数据
data = {'Category': ['A', 'B', 'C', 'D'],'Value': [10, 15, 7, 12]}
df = pd.DataFrame(data)# 绘制饼图
df.plot(kind='pie', y='Value', labels=df['Category'], autopct='%1.1f%%', title='Category Proportions', figsize=(8, 5))
plt.show()

3 Seaborn 可视化
Seaborn 是基于 Matplotlib 的高级数据可视化库,提供了更漂亮、更易用的图表和更丰富的统计图表类型。在 Pandas 中,可以直接与 Seaborn 配合使用。
3.1 热力图(Heatmap)
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt# 示例数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)# 绘制热力图
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()

3.2 散点图矩阵
数据集中所有数值特征之间的散点图矩阵:
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt# 示例数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)sns.pairplot(df)
plt.show()

4 Matplotlib 高级自定义
除了使用 Pandas 提供的 plot() 方法外,Matplotlib 还可以提供更灵活的自定义功能,例如添加标题、标签、设置图表风格、调整坐标轴等。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt# 示例数据
data = {'Year': [2015, 2016, 2017, 2018, 2019],'Sales': [100, 150, 200, 250, 300]}
df = pd.DataFrame(data)# 绘制折线图
plt.plot(df['Year'], df['Sales'], color='blue', marker='o')# 自定义
plt.title('Sales Over Years')
plt.xlabel('Year')
plt.ylabel('Sales')
plt.grid(True)# 显示
plt.show()

相关文章:
Python Pandas(11):Pandas 数据可视化
数据可视化是数据分析中的重要环节,它帮助我们更好地理解和解释数据的模式、趋势和关系。通过图形、图表等形式,数据可视化将复杂的数字和统计信息转化为易于理解的图像,从而便于做出决策。Pandas 提供了与 Matplotlib 和 Seaborn 等可视化库…...
【练习】图论
F. Friendly Group 图中选择一个点-1 边两端点都选择1 边一个端点选择-1 添加链接描述 #include<iostream> using namespace std; #include<vector> #include<cstring> const int N300010; int n,m; vector<int> G[N]; int temp1,temp2; bool vis[N…...
【RAG落地利器】Weaviate、Milvus、Qdrant 和 Chroma 向量数据库对比
什么是向量数据库? 向量数据库是一种将数据存储为高维向量的数据库,高维向量是特征或属性的数学表示。每个向量都有一定数量的维度,根据数据的复杂性和粒度,可以从数十到数千不等。 向量通常是通过对原始数据(如文本、图像、音频、视频等)…...
今日AI和商界事件(2025-02-14)
今日AI大事件主要包括以下几个方面: 一、苹果新品预告 事件概述:苹果CEO蒂姆库克在社交媒体发布7秒视频,配文“准备好迎接家庭的新成员”,并宣布2月19日将有新品发布。知名科技记者马克古尔曼称,新款低端iPhone SE将…...
【大语言模型】最新ChatGPT、DeepSeek等大语言模型助力高效办公、论文与项目撰写、数据分析、机器学习与深度学习建模等科研应用
ChatGPT、DeepSeek等大语言模型助力科研应用 随着人工智能技术的快速发展,大语言模型如ChatGPT和DeepSeek在科研领域的应用正在为科研人员提供强大的支持。这些模型通过深度学习和大规模语料库训练,能够帮助科研人员高效地筛选文献、生成论文内容、进行数…...
spring6(完结)
像是八大模式这种,放在后面八股文中再重点了解,对于源码部分也是后面会一起手敲。 个人觉得spring的重点在于注解开发,省去了很多耦合的问题,像是各种事务的管理,和bean类的管理都可以给spring容器管理,注入…...
Kubernetes (k8s) 常用指令速查表
以下是一份 Kubernetes (k8s) 常用指令速查表,涵盖集群管理、资源操作、故障排查等场景,适合日常运维和开发使用: 1. 集群与节点管理 命令说明kubectl cluster-info查看集群基本信息kubectl get nodes查看所有节点状态kubectl describe node…...
DeepSeek教unity------MessagePack-05
动态反序列化 当调用 MessagePackSerializer.Deserialize<object> 或 MessagePackSerializer.Deserialize<dynamic> 时,二进制数据中存在的任何值都将被转换为基本值,即 bool、char、sbyte、byte、short、int、long、ushort、uint、ulong、…...
Kotlin 优雅的接口实现
1. 日常遇到的冗余的接口方法实现 日常开发中,经常会要实现接口,但是很多场景中,只需要用到其中一两个方法,例如 ActivityLifecycleCallbacks,它有很多个接口需要实现,但是很多时候我们只需要用到其中的一…...
新的面试题CSS
解释CSS Hack 一般来说是针对不同的浏览器写不同的CSS,就是 CSS Hack。 IE浏览器Hack一般又分为三种,条件Hack、属性级Hack、选择符Hack(详细参考CSS文档:css文档)。例如: // 1、条件Hack <!--[if IE]> <sty…...
DeepSeek R1打造本地化RAG知识库
本文将详细介绍如何使用Ollama、Deepseek R1大语音模型、Nomic-Embed-Text向量模型和AnythingLLM共同搭建一个本地的私有RAG知识库。 一. 准备工作 什么是RAG? RAG是一种结合了信息检索和大模型(LLM)的技术,在对抗大模型幻觉、…...
聚铭网络入围2025年度江苏省政府采购信息安全设备协议供货名单
近日,2025年度江苏省党政机关、事业单位及团体组织信息安全设备框架协议采购项目入围结果公布。聚铭网络凭借自身专业实力和技术优势脱颖而出,成功入围22个分包。 此次采购项目是江苏省政府采购领域级别最高、覆盖面最广的项目之一。从资格评选到后期材料…...
基于Flask的影视剧热度数据可视化分析系统的设计与实现
【FLask】基于Flask的影视剧热度数据可视化分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 随着互联网技术的飞速发展,影视剧行业的数据量呈爆炸性增长&#x…...
【弹性计算】弹性计算的技术架构
弹性计算的技术架构 1.工作原理2.总体架构3.控制面4.数据面5.物理设施层 虽然弹性计算的产品种类越来越多,但不同产品的技术架构大同小异。下面以当前最主流的产品形态 —— 云服务器为例,探查其背后的技术秘密。 1.工作原理 云服务器通常以虚拟机的方…...
python-leetcode 31.K个一组翻转链表
题目: 给定链表的头节点head,每K个节点一组进行翻转,返回修改后的链表。 K是正整数,它的值小于等于链表的长度,如果节点总数不是K的整数组,那么将最后剩余的节点保持原有顺序。不能只改变节点内容的值,需…...
算法08-递归调用转为循环的通用方法
前导:问题引入 在Python中,递归调用过多会导致“递归深度过深”的错误,通常是因为递归没有正确终止条件或者递归层次太深。 这种错误通常会导致程序抛出 RecursionError 异常。 Python默认的递归深度限制大约是1000层(可以通过sys.getrecursionlimit()查看)。 修正方式…...
[创业之路-300]:进一步理解货币与金钱, 货币与货币政策
目录 一、货币 1.1 概述 1、货币的定义 2、货币的形态演变 3、货币的职能 4、货币的价值衡量 1.2 货币的分层 1、货币分层的目的与意义 2、货币分层的划分标准与层次 3、各国货币分层的实践 4、货币分层的影响与应用 1.3、M0、M1、M2变化对股市的影响 1、M0变化对…...
达梦:跟踪日志诊断
目录标题 参考连接**性能诊断:跟踪日志诊断****总结** 参考连接 性能诊断 -> 跟踪日志诊断 性能诊断:跟踪日志诊断 备份现有的日志配置文件 在修改文件之前,建议先备份原始文件,以防万一需要恢复。 cp /opt/dmdbms/dmdata/DA…...
Qwen2-VL 的重大省级,Qwen 发布新旗舰视觉语言模型 Qwen2.5-VL
Qwen2.5-VL 是 Qwen 的新旗舰视觉语言模型,也是上一代 Qwen2-VL 的重大飞跃。 Qwen2.5-VL主要特点 视觉理解事物:Qwen2.5-VL不仅能够熟练识别花、鸟、鱼、昆虫等常见物体,而且还能够分析图像中的文本、图表、图标、图形和布局。 代理性&…...
js考核第三题
题三:随机点名 要求: 分为上下两个部分,上方为显示区域,下方为控制区域。显示区域显示五十位群成员的学号和姓名,控制区域由开始和结束两个按钮 组成。点击开始按钮,显示区域里的内容开始滚动,…...
基于MCP协议构建AI助手与Google Drive的安全连接方案
1. 项目概述:一个连接Google生态与AI的桥梁 如果你正在尝试让AI助手(比如Claude、Cursor等)直接操作你的Google Drive、Gmail或者Google Calendar,而不是仅仅通过网页搜索获取信息,那么你很可能已经遇到了“MCP”&…...
ACAI平台:基于数据湖与智能调度的MLOps实验管理实践
1. 项目概述:当MLOps遇上数据湖与智能调度在机器学习(ML)项目从研究走向生产的漫长征途中,实验管理一直是个让人又爱又恨的环节。爱的是,每一次实验都可能是通往更高模型性能的钥匙;恨的是,随着…...
在Obsidian笔记中集成AI:ChatGPT MD插件打造私有智能工作流
1. 项目概述:在笔记软件里构建你的私人AI工作流 如果你和我一样,是个重度依赖 Obsidian 这类本地优先笔记软件的知识工作者,那你肯定也经历过这样的场景:在整理笔记时,突然冒出一个想法需要AI帮忙润色、扩展或分析&am…...
FFmpeg QSV滤镜实战:解决`get_buffer() failed`报错的两种内存访问方案对比
FFmpeg QSV滤镜实战:两种GPU显存访问方案深度解析与性能优化 在视频处理领域,Intel Quick Sync Video(QSV)硬件加速技术已经成为提升编解码效率的重要工具。然而,当开发者尝试在QSV解码后的视频帧上应用滤镜效果时&…...
复盘红日Vulnstack1:除了MSF和CS,我们还能用哪些“冷门”工具链完成内网横向?
红日Vulnstack1靶场实战:突破常规工具链的内网横向技术探索 当主流渗透工具遭遇严格监控时,如何构建替代性攻击链?红日安全团队的Vulnstack1靶场作为国内知名的内网渗透训练环境,常被用作测试Metasploit(MSF࿰…...
Windows系统RacEngn.dll文件丢失无法启动程序解决
在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…...
从零构建操作系统内核:nokodo-labs/os1项目核心架构与实现解析
1. 项目概述:一个开源操作系统内核的诞生最近在开源社区里,一个名为nokodo-labs/os1的项目引起了我的注意。乍一看,这只是一个托管在代码平台上的仓库名,但“os1”这个后缀,对于任何一个有经验的开发者来说,…...
如何彻底解决ComfyUI节点冲突:5种策略完整指南
如何彻底解决ComfyUI节点冲突:5种策略完整指南 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom nodes…...
一眨眼这只小狐狸发布 150 版了
一眨眼,这只小狐狸发布了 150 版。 还挺喜欢官方网站上使用的数字字体。 https://www.isharkfly.com/t/topic/9815...
神经网络剪枝技术:原理、挑战与Mix-and-Match框架实践
1. 神经网络剪枝技术演进与挑战深度神经网络在计算机视觉、自然语言处理等领域展现出强大性能的同时,其庞大的参数量也带来了显著的部署挑战。以典型的VGG-11为例,其参数规模达到28.1MB(FP32格式),而Vision Transforme…...
