pandas plot函数:数据可视化的快捷通道

一般来说,我们先用pandas分析数据,然后用matplotlib之类的可视化库来显示分析结果。而pandas库中有一个强大的工具--plot函数,可以使数据可视化变得简单而高效。

1. plot 函数简介

plot函数是pandas中用于数据可视化的一个重要工具,通过plot函数,可以轻松地将DataFrameSeries对象中的数据以图形的形式展示出来。

plot函数支持多种类型的图形,包括折线图、柱状图、散点图、饼图等,这些不同类型的图形适用于不同的数据分析场景。此外,plot函数还支持通过参数设置来调整图形的样式,如颜色、标签、图例等,以满足更加个性化的可视化需求。

plot函数的参数名称和含义了matplotlib绘图时的参数是类似的,如果熟悉matplotlib绘图的话,上手更快。

2. 数据准备

下面的示例中使用的数据采集自A股2024年1月和2月的真实交易数据。数据下载地址:https://databook.top/。

导入数据:

import pandas as pd
import matplotlib.pyplot as pltfp = r'D:\data\2024\历史行情数据-不复权-2024.csv'df = pd.read_csv(fp)
df = df.loc[:, ["股票代码", "日期", "开盘", "收盘", "最高", "最低", "成交量"]]
df

3. 使用示例

针对上面的交易数据,下面演示如何用plot函数快速绘图。

3.1. 折线图

折线图一般用于展示时间序列数据,可以提取某一支股票的数据并绘制出来。

# 提取870299这支股票
data = df.query("股票代码==870299")
data.index = data["日期"]# 绘制每天最高价和最低价的曲线
data.loc[:, ["最高", "最低"]].plot(kind="line", title="股票870299", rot=45)
plt.show()

image.png

代码中有几个注意点:

  1. data.index = data["日期"]plot函数将索引列作为横轴,所以这里设置日期列为索引(index

  2. kind参数:设置图形的类型,这里设置line,表示折线图

  3. title参数:设置图形的标题

  4. rot参数:调整刻度的角度,这里将X轴的刻度旋转了45度,防止日期之间的重叠

3.2. 柱状图

柱状图多用于比对数据,下面我们用pandas挑选几支股票,然后比对它们的开盘价收盘价的平均值。

# 随便挑选一些股票代码
codes = [870299, 301138, 603825, 600579, 600640]
data = df.loc[:,["股票代码", "开盘", "收盘"]].query("股票代码==@codes")# groupby之后,绘制各个股票开盘价和收盘价的平均值
data.groupby(by=["股票代码"]).mean().plot(kind="bar")
plt.show()

image.png

代码中的注意点:

  1. kind参数:设置图形的类型,这里设置bar,表示柱状图

  2. groupby之后,"股票代码"变为索引列,所以绘图时作为横轴

如果要绘制横向的柱状图,只要把kind参数设置成barh即可。

data.groupby(by=["股票代码"]).mean().plot(kind="barh")

image.png

3.3. 饼图

饼图是另一种比较数据的方式,它可以比较数据之间的占比,更好的看出各种数据的分布情况。下面也随机挑选一些股票,用饼图比较它们的成交量情况。

codes = [870299, 301138, 603825, 600579, 600640]
data = df.loc[:,["股票代码", "成交量"]].query("股票代码==@codes")data.groupby(by=["股票代码"]).sum()["成交量"].plot(kind="pie", autopct="%1.1f%%")
plt.show()

image.png

代码中的注意点:

  1. kind参数:设置图形的类型,这里设置饼图pie,表示饼图

  2. autopct参数:各个区域所占百分比的显示方式

3.4. 其他...

除了上面常用的图形,plot函数还支持其他多种图形,其kind参数目前支持的图形包括:

  • line : 折线图

  • bar : 柱状图

  • barh : 横向柱状图

  • hist : 直方图

  • box : 箱型图

  • kde : 核密度估计图

  • area : 面积图

  • pie : 饼图

  • scatter : 散点图

  • hexbin : 六边形箱图

4. 总结

总的来说,plot函数为数据分析师提供了一个强大而灵活的数据可视化工具。通过plot函数,我们可以快速地将数据转化为直观的图形,从而更好地理解数据的分布、趋势和关系。这种直观的理解有助于我们发现数据中的潜在模式,进而做出更加准确和有效的决策。

无论是初学者还是资深的数据分析师,都可以通过掌握plot函数来提升自己的数据分析能力。

文章转载自:wang_yb

原文链接:https://www.cnblogs.com/wang_yb/p/18061435

体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构

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

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

相关文章

凌鲨本地接口架构

本地API通过监听本地端口,提供http服务,让本地应用可以获取信息和操作凌鲨客户端。 本地API架构 #mermaid-svg-seodZa6VsI4Qc8Cj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-seodZa6VsI4…

辽宁博学优晨教育:视频剪辑培训的安全正规之路

在当今数字化时代,视频剪辑已成为一项炙手可热的技能。为满足广大学习者的需求,辽宁博学优晨教育推出了一系列专业的视频剪辑培训课程。本文将重点介绍辽宁博学优晨教育的视频剪辑培训如何在保障学员安全和学习效果方面做出了卓越的努力。 一、正规资质&…

Linux操作系统-06-进程与服务管理

使用ps命令查看进程。包括过滤进程信息 使用systemctl命令管理和运行Linux服务 进程(Process):操作系统正在运行的应用程序。任意一个进程,都会消耗CPU和内存资源, 服务(Service)&#xff1a…

Word中解决插入脚注导致的分页位置错误问题

先放一个截图: 上面的截图中,样式为标题3的段落“四、固执的念头”前插入了连续型分节符,并且该分节符的样式为正文,前后的正文段落中有脚注,结果在分页时,标题3段落“四、固执的念头”后的正文段落自动进入…

【JAVA】我和“JAVA“的细水长流,输入输出

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-Ck59fYFNNdpuGmVT {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

JVM-3

HotSpot虚拟机对象 我在网上看了很多相关的文章,发现在创建对象和对象的结构中内容都不太一样,一些关键字也很不同,于是我通过参考《深入理解Java虚拟机》这本书,自己总结了一篇。 1.对象的创建 当JVM收到一条创建对象的字节码…

全面的 DevSecOps 指南:有效保护 CI/CD 管道的关键注意事项

数字化转型时代带来了对更快、更高效、更安全的软件开发流程的需求。DevSecOps:一种将安全实践集成到 DevOps 流程中的理念,旨在将安全性嵌入到开发生命周期的每个阶段 - 从代码编写到生产中的应用程序部署。DevSecOps 的结合可以带来许多好处&#xff0…

交叉编译x264 zlib ffmpeg以及OpenCV等 以及解决交叉编译OpenCV时ffmpeg始终为NO的问题

文章目录 环境编译流程nasm编译x264编译zlib编译libJPEG编译libPNG编译libtiff编译 FFmpeg编译OpenCV编译问题1解决方案 问题2解决方案 总结 环境 系统:Ubutu 18.04交叉编译链:gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu 我的路径/opt/toolch…

Java零基础入门-Comparable vs Comparator(上)

哈喽,各位小伙伴们好,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流学习,互相学习,才能成长的更快,对吧。 我是一名java开发,所以日常接触到最多…

System是什么?为什么不能直接输出null?

在看学习下面的知识前,得先对java核心类库有个大致的了解,详情可参考链接 java基本概念-扩展点-CSDN博客 1、System 1.1 System是什么? System是一个类,它包含了一些有用的属性和方法。 1.2 System实现的功能 (1&…

【深度学习】换脸新科技,InstantID: Zero-shot Identity-Preserving Generation in Seconds

论文:https://arxiv.org/abs/2401.07519 代码:https://github.com/InstantID/InstantID demo:https://huggingface.co/spaces/InstantX/InstantID 文章目录 1 引言2 相关工作2.1 文本到图像扩散模型2.2 主题驱动的图像生成2.3 保持ID的图像生成 3 方法3.…

zabbix5监控tomcat

zabbix tomcat客户端配置 1、配置tomcat catalina.sh文件 CATALINA_OPTS"$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port12345 -Dcom.sun.management.jmxremote.authenticatefalse -Dcom.sun.management.jmxremote.sslfalse -Djav…

smart-doc 社区 Committer 晋升公告

我们非常荣幸地宣布,经过 PMC 委员会的提名和讨论,社区成员李星志(GitHub ID: netdied)、陈琪(GitHub ID: chenqi146)和李兵(GitHub ID: abing22333)正式晋升为同程旅行 smart-doc 开…

Vue3全家桶 - Vue3 - 【3】模板语法(指令+修饰符 + v-model语法糖)

一、模板语法 主要还是记录一些指令的使用和vue2的区别;vue3指令导航; 1.1 v-text 和 v-html 指令的区别: v-text: 更新元素的文本内容;v-text 通过设置元素的 textContent 属性来工作,因此它将覆盖元素…

数据结构:静态链表(编程技巧)

链表的元素用数组存储, 用数组的下标模拟指针。 一、理解 如果有些程序设计语言没有指针类型,如何实现链表? 在使用指针类型实现链表时,我们很容易就可以直接在内存中新建一块地址用于创建下一个结点,在逻辑上&#x…

3、设计模式之工厂模式

工厂模式是什么?     工厂模式是一种创建者模式,用于封装和管理对象的创建,屏蔽了大量的创建细节,根据抽象程度不同,主要分为简单工厂模式、工厂方法模式以及抽象工厂模式。 简单工厂模式 看一个具体的需求 看一个…

面向对象(精髓)变继承关系为组和关系(_Decorator模式)

在软件开发中,设计模式是解决常见问题的可重用解决方案。在面向对象编程中,继承和组合是两种常用的代码复用方式。然而,随着软件需求的不断变化,我们需要更灵活的设计方式来应对不断变化的需求。在本文中,我们将讨论从…

计算机网络——TCP/IP网络层次模型

计算机网络——TCP/IP网络层次模型 TCP/IP网络模型的起源TCP/IP网络层次的结构TCP/IP如何交互 TCP/IP协议栈TCP/IP协议栈主要协议 TCP/IP 和 OSI之间的区别面向连接和无连接面向连接三次握手,四次挥手 无连接 我们上一次了解了OSI的网络层次模型,如果还没…

Linux学习-内存管理

目录 内存管理 malloc free 使用 字符串存储申请堆区 自主输入个数,然后通过malloc在程序中申请空间,不用必须提前指定大小 内存溢出 内存泄漏 内存碎片 内存管理 函数名就是指向该函数的函数指针。 堆区是自低向高,栈区是自高向低…

ffmpeg日记4001-原理介绍-视频切割原理

原理 打开输入---->打开输出---->根据输入来创建流---->拷贝流设置---->循环读帧---->判断时间点是否到达切割点,并做设置---->设置pts和dts---->写入---->善后 重点是pts和dts如何设置。参考《ffmpeg学习日记25-pts,dts概念的…