一般来说,我们先用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. 解决pycharm编辑超大超大项目时CPU占用100%

    在编辑py文件时,cpu占用100%其实和内存的关系不大,因为这个现象是间歇性的,不是持续的. 我试过给pycharm分配16GB的内存,也是一样没有缓解CPU占用高. 项目和pycharam也都是存 ...

  2. Sqlite管理工具

    ! https://zhuanlan.zhihu.com/p/375188242 SQLiteStudio 开源免费的一款sqlite数据库管理软件,支持windows,linux,macos 官网: ...

  3. Keepalive-Haproxy高可用介绍

    假设我们现在开发了一个应用应用的端口号为 8080,这个应用我们想让它去实现一个负载均衡的访问,就是说我们有两台服务器都部署了我们的 8080 应用,我们想让它一会访问 ip 为: 192.168.0 ...

  4. 开源的ChatGPT项目

    自从 ChatGPT.Stable Diffusion 发布以来,各种相关开源项目百花齐放,着实让人应接不暇. 今天,我将着重挑选几个优质的开源项目,对我们的日常工作.学习生活,都会有很大的帮助. 今 ...

  5. 在K8s中,提供的DNS组件是什么?有什么特性?

    在Kubernetes (K8s)集群中,用于内部DNS服务的组件已经从早期的kube-dns过渡到了coredns. kube-dns(已弃用): 在Kubernetes 1.10版本之前,kube ...

  6. 关于SUPPLEMENTAL_LOG_DATA_MIN的设置问题

    Oracle数据库开启附加日志,用于Logminer或基于Logminer的一些操作. 客户咨询关于开启附加日志,SUPPLEMENTAL_LOG_DATA_MIN显示为啥是implicit,如何改成 ...

  7. SVC服务的发现

    目录 服务的发现 发现的方式 1. ClusterIP 2. 通过变量 3. 通过DNS(推荐) 服务的发现 发现的方式 服务的发现说的就是svc的ip只有集群内的资源可以访问到,比如集群内的节点,p ...

  8. 使用BP神经网络实现函数逼近

    1 一元函数逼近 1.1 待逼近函数 1.2 代码 clear,clc p=[-4:0.1:4]; %神经网络输入值 t=sin(0.5*pi*p)+sin(pi*p); %神经网络目标值 n=15; ...

  9. Laravel入坑指南(2)——路由、控制器

    接上一节,我们已经把Laravel有Hello World项目跑起来了. 现在各位小友最着急的,应该是想了解,我们怎么在"页面"echo一个自己的Hello World字符串. & ...

  10. centos7源码方式安装zabbix-4.0

    1.关闭防火墙 systemctl stop firewalld.service #临时关闭firewall systemctl disable firewalld.service #禁止firewa ...