一般来说,我们先用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 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()


代码中有几个注意点:

  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()


代码中的注意点:

  1. kind参数:设置图形的类型,这里设置bar,表示柱状图
  2. 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()


代码中的注意点:

  1. kind参数:设置图形的类型,这里设置饼图pie,表示饼图
  2. autopct参数:各个区域所占百分比的显示方式

3.4. 其他...

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

  • line : 折线图
  • bar : 柱状图
  • barh : 横向柱状图
  • hist : 直方图
  • box : 箱型图
  • kde : 核密度估计图
  • area : 面积图
  • pie : 饼图
  • scatter : 散点图
  • hexbin : 六边形箱图

4. 总结

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

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

pandas plot函数:数据可视化的快捷通道的更多相关文章

  1. 如和针对CPU时间百分比,Mem使用bytes,以及Network RecvBytes/SendBytes指标性能压测数据可视化

    设计思路:通过jmeter5.1压测获取cpu,Mem,Network的压测指标数据利用pandas+openpyxl进行数据可视化: 涉及添加jar包:下载地址:https://files.cnbl ...

  2. [数据可视化之一]Pandas单变量画图

    Pandas单变量画图 Bar Chat Line Chart Area Chart Histogram df.plot.bar() df.plot.line() df.plot.area() df. ...

  3. 动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题

    动态可视化 数据可视化之魅D3,Processing,pandas数据分析,科学计算包Numpy,可视化包Matplotlib,Matlab语言可视化的工作,Matlab没有指针和引用是个大问题 D3 ...

  4. 数据可视化基础专题(八):Pandas基础(七) 数据清洗与预处理相关

    1.数据概览 第一步当然是把缺失的数据找出来, Pandas 找缺失数据可以使用 info() 这个方法(这里选用的数据源还是前面一篇文章所使用的 Excel ,小编这里简单的随机删除掉几个数据) i ...

  5. 数据可视化之DAX篇(十四)DAX函数:RELATED和RELATEDTABLE

    https://zhuanlan.zhihu.com/p/64421378 Excel中知名度最高的函数当属VLOOKUP,它的确很有用,可以在两个表之间进行匹配数据,使工作效率大大提升,虽然它也有很 ...

  6. R可视化:plot函数基础操作,小白教程

    最近迷恋上了画图,一方面是觉得挺有意思的,另一方面是觉得自己确实画图方面比较弱,所以决定比较系统地回顾反思一下,同时顺带记录下来分享给大家.也确实是好久好久没更新文章了,真的是杂事太多太忙太牵扯精力没 ...

  7. 数据可视化基础专题(二):Pandas基础(一) excel导入与导出

    1.Excel 1.1 Excel导入 read_excel() pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col ...

  8. [译]学习IPython进行交互式计算和数据可视化(五)

    第四章:交互式绘图接口 本章我们将展示Python的绘图功能以及如何在IPython中交互式地使用它们. NumPy为处理大量的多维数组结构的数据提供了高效的方法.但是看行行列列的数字总不如直接看曲线 ...

  9. 【数据科学】Python数据可视化概述

    注:很早之前就打算专门写一篇与Python数据可视化相关的博客,对一些基本概念和常用技巧做一个小结.今天终于有时间来完成这个计划了! 0. Python中常用的可视化工具 Python在数据科学中的地 ...

  10. Python数据可视化的四种简易方法

    摘要: 本文讲述了热图.二维密度图.蜘蛛图.树形图这四种Python数据可视化方法. 数据可视化是任何数据科学或机器学习项目的一个重要组成部分.人们常常会从探索数据分析(EDA)开始,来深入了解数据, ...

随机推荐

  1. 使用Lua做为MMOARPG游戏逻辑开发脚本的一点体会

    项目背景 目前在一个大型MMOARPG游戏中使用Lua做为逻辑开发语言,Lua占整体代码量的80%. 我们这个MMO游戏开发近2年,客户端8人,项目组总体人数在100人(美术占70%),目前代码量很大 ...

  2. 语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解、Zero-shot CoT、Few-shot CoT 以及在LLM上应用

    大语言模型的预训练[6]:思维链(Chain-of-thought,CoT)定义原理详解.Zero-shot CoT.Few-shot CoT 以及在LLM上应用 1.思维链定义 背景 在 2017- ...

  3. Markdown-CSDN自带帮助语法

    这里写自定义目录标题 欢迎使用Markdown编辑器 新的改变 功能快捷键 合理的创建标题,有助于目录的生成 如何改变文本的样式 插入链接与图片 如何插入一段漂亮的代码片 生成一个适合你的列表 创建一 ...

  4. 基于.NET的机械运动模拟应用开发

    1 简介 机械运动在物理学中,把一个物体相对于另一个物体位置的变化称作为机械运动,简称运动.机械运动是指一个物体相对于其他物体的位置发生改变,是自然界中最简单,最基本的运动形态. 自然界中一切物体都在 ...

  5. 手把手教你-把Kali Linux系统安装到U盘 【超详细】(随身携带/即插即用)

    [0-背景说明]: 1)为什么想要把Kali Linux系统安装到U盘? 之前学习渗透测试的时候,有安装过虚拟机,在虚拟机上安装Kali Linux系统,但是因为是在现有系统上安装虚拟机又安装kali ...

  6. NOIp 2023 游记

    咕了正好一周的 NOIp 游记,是我第一篇游记,也是一张寄往四年后不得不退役的.即将画上青春句号的自己的,包含了自己的青涩.期待与成长的信笺. Day \((-\infty, -7)\) CSP-S ...

  7. NC20573 [SDOI2011]染色

    题目链接 题目 题目描述 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如 ...

  8. SSD接口与协议

    该图来源于<Linux开源存储全栈详解:从Ceph到容器存储>- 2.3 存储接口协议的演变 物理接口: 从物理形态上确定各种不同的接口(引脚形式等完全不同) 传输协议: 以SATA为例, ...

  9. Spring boot项目实战之记录应用访问日志

    1.说明 系统上线后往往我们需要知道都有哪些用户访问了应用的那些功能,以便更好的了解用户需求.防止恶意访问等.为此我们需要给应用添加记录访问日志的功能.下面就开始吧: 2.建表 CREATE TABL ...

  10. Java集合框架学习(六) LinkedList详解

    LinkedList介绍 ArrayList与LinkedList都是List接口的实现类,因此都实现了List的所有未实现的方法,只是实现的方式有所不同. LinkedList是采用链表的方式来实现 ...