pandas plot函数:数据可视化的快捷通道
一般来说,我们先用pandas
分析数据,然后用matplotlib
之类的可视化库来显示分析结果。
而pandas
库中有一个强大的工具--plot
函数,可以使数据可视化变得简单而高效。
1. plot 函数简介
plot
函数是pandas
中用于数据可视化的一个重要工具,
通过plot
函数,可以轻松地将DataFrame
或Series
对象中的数据以图形的形式展示出来。
plot
函数支持多种类型的图形,包括折线图、柱状图、散点图、饼图等,这些不同类型的图形适用于不同的数据分析场景。
此外,plot
函数还支持通过参数设置来调整图形的样式,如颜色、标签、图例等,以满足更加个性化的可视化需求。
plot
函数的参数名称和含义了matplotlib
绘图时的参数是类似的,
如果熟悉matplotlib
绘图的话,上手更快。
2. 数据准备
下面的示例中使用的数据采集自A股2024年1月和2月的真实交易数据。
数据下载地址:https://databook.top/。
导入数据:
import pandas as pd
import matplotlib.pyplot as plt
fp = 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()
代码中有几个注意点:
data.index = data["日期"]
:plot
函数将索引列作为横轴,所以这里设置日期列为索引(index
)kind
参数:设置图形的类型,这里设置line
,表示折线图title
参数:设置图形的标题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()
代码中的注意点:
kind
参数:设置图形的类型,这里设置bar
,表示柱状图groupby
之后,"股票代码"变为索引列,所以绘图时作为横轴
如果要绘制横向的柱状图,只要把kind
参数设置成barh
即可。
data.groupby(by=["股票代码"]).mean().plot(kind="barh")
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()
代码中的注意点:
kind
参数:设置图形的类型,这里设置饼图pie
,表示饼图autopct
参数:各个区域所占百分比的显示方式
3.4. 其他...
除了上面常用的图形,plot
函数还支持其他多种图形,其kind
参数目前支持的图形包括:
line
: 折线图bar
: 柱状图barh
: 横向柱状图hist
: 直方图box
: 箱型图kde
: 核密度估计图area
: 面积图pie
: 饼图scatter
: 散点图hexbin
: 六边形箱图
4. 总结
总的来说,plot
函数为数据分析师提供了一个强大而灵活的数据可视化工具。
通过plot函数,我们可以快速地将数据转化为直观的图形,从而更好地理解数据的分布、趋势和关系。
这种直观的理解有助于我们发现数据中的潜在模式,进而做出更加准确和有效的决策。
无论是初学者还是资深的数据分析师,都可以通过掌握plot
函数来提升自己的数据分析能力。
pandas plot函数:数据可视化的快捷通道的更多相关文章
- 如和针对CPU时间百分比,Mem使用bytes,以及Network RecvBytes/SendBytes指标性能压测数据可视化
设计思路:通过jmeter5.1压测获取cpu,Mem,Network的压测指标数据利用pandas+openpyxl进行数据可视化: 涉及添加jar包:下载地址:https://files.cnbl ...
- [数据可视化之一]Pandas单变量画图
Pandas单变量画图 Bar Chat Line Chart Area Chart Histogram df.plot.bar() df.plot.line() df.plot.area() df. ...
- 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题
动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...
- 数据可视化基础专题(八):Pandas基础(七) 数据清洗与预处理相关
1.数据概览 第一步当然是把缺失的数据找出来, Pandas 找缺失数据可以使用 info() 这个方法(这里选用的数据源还是前面一篇文章所使用的 Excel ,小编这里简单的随机删除掉几个数据) i ...
- 数据可视化之DAX篇(十四)DAX函数:RELATED和RELATEDTABLE
https://zhuanlan.zhihu.com/p/64421378 Excel中知名度最高的函数当属VLOOKUP,它的确很有用,可以在两个表之间进行匹配数据,使工作效率大大提升,虽然它也有很 ...
- R可视化:plot函数基础操作,小白教程
最近迷恋上了画图,一方面是觉得挺有意思的,另一方面是觉得自己确实画图方面比较弱,所以决定比较系统地回顾反思一下,同时顺带记录下来分享给大家.也确实是好久好久没更新文章了,真的是杂事太多太忙太牵扯精力没 ...
- 数据可视化基础专题(二):Pandas基础(一) excel导入与导出
1.Excel 1.1 Excel导入 read_excel() pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col ...
- [译]学习IPython进行交互式计算和数据可视化(五)
第四章:交互式绘图接口 本章我们将展示Python的绘图功能以及如何在IPython中交互式地使用它们. NumPy为处理大量的多维数组结构的数据提供了高效的方法.但是看行行列列的数字总不如直接看曲线 ...
- 【数据科学】Python数据可视化概述
注:很早之前就打算专门写一篇与Python数据可视化相关的博客,对一些基本概念和常用技巧做一个小结.今天终于有时间来完成这个计划了! 0. Python中常用的可视化工具 Python在数据科学中的地 ...
- Python数据可视化的四种简易方法
摘要: 本文讲述了热图.二维密度图.蜘蛛图.树形图这四种Python数据可视化方法. 数据可视化是任何数据科学或机器学习项目的一个重要组成部分.人们常常会从探索数据分析(EDA)开始,来深入了解数据, ...
随机推荐
- 每日一道面试题:Java中序列化与反序列化
写在开头 哈喽大家好,在高铁上码字的感觉是真不爽啊,小桌板又拥挤,旁边的小朋友也比较的吵闹,影响思绪,但这丝毫不影响咱学习的劲头!哈哈哈,在这喧哗的车厢中,思考着这样的一个问题,Java中的对象是如何 ...
- 从零开始匹配vim(1)——选项设置
前面我们算是对 vimscript 做了一个入门,并且实现了一个 输出 hello world 的语句.现在我们继续进行 vimscript 的学习. set语句 之前在介绍 vim 基础的时候,我们 ...
- 跑通的第一个ethers.js程序HelloVitalik.js
简介 ethers.js是一个本地库,可以让你调用接口,用官方写好的轮子来使用一些常用的函数!学习完这个库,你对node.js就有比较深入的了解了,如果你不做项目,就不涉及智能合约的编写,那么写点脚本 ...
- 不同网段之间实现GDB远程调试功能
前言 在开发过程中,使用gdb远程调试时,会碰到 Linux 服务器的网段和板载设备的网段不是一样的,不能正常使用 gbd 远程调试功能. 板载设备和电脑连接路由器,属于同一个网段,如192.168. ...
- 解密JavaChassis3:易扩展的多种注册中心支持
本文分享自华为云社区<JavaChassis3技术解密:易扩展的多种注册中心支持>,作者:liubao68. Java Chassis 的早期版本依赖于 Service Center,提供 ...
- .Net Core + 微信赋能企业级智能客服系统--学习笔记
摘要 围绕目前需求猛增的微信及移动端企业智能客服业务,利用 .NET Core 的一系列优秀特性及 SignalR 模块打造全双工.跨微信/QQ/钉钉等应用平台.跨系统平台.跨终端.支持企业级并发的移 ...
- webpack学习笔记(二)核心概念理解及基础配置
上一篇文章 记录了 webpack 初次安装与基础使用,本篇则是记录一下如何使用webpack构建一个比较完整,基础的项目 1. webpack 的4个核心概念 入口(entry):选择项目构建的入口 ...
- 程序员减少BUG的两个小妙招!
原创:陶朱公Boy(微信公众号ID:taozhugongboy),欢迎分享,转载请保留出处. 点评: 我们说衡量一个程序员水平的高低往往有很多因素,但有一个因素至关重要即代码质量. 如果程序员写的 ...
- npm修改源地址,使用nrm管理源仓库地址
壹 ❀ 引 事实上现在大部分的公司,都会有自己的npm三方包管理仓库,利于三方包版本管理以及项目三方依赖稳定性.但如果我们npm配置了公司的源仓库地址,以后所有的三方包来源都将以这个仓库为准,假设你现 ...
- Python OS.mkdirs与OS.makedirs的区别
os.mkdir只创建最外层目录,如果创建多级目录,报错"FileNotFoundError: [WinError 3] 系统找不到指定的路径".目录存在报错. os.makedi ...