Python 绘图居然如此简单,真是大数据时代的神器

今天的文章讲解如何利用 Pandas 来绘图,前面写过 matplotlib 相关文章,matplotlib 虽然功能强大,但是 matplotlib 相对而言较为底层,画图时步骤较为繁琐,比较麻烦,因为要画一张完整的图表,需要实现很多的基本组件,比如图像类型、刻度、标题、图例、注解等等。目前有很多的开源框架所实现的绘图功能是基于 matplotlib 的,pandas是其中之一,对于 pandas 数据分析而言,直接使用 pandas 本身实现的绘图方法比 matplotlib 更方便简单。关于更多 Pandas 的相关知识请参考官方文档。

Python 绘图居然如此简单,真是大数据时代的神器

Pandas 绘制线状图

使用 Pandas 绘制线状图代码如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def craw_line():
    ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
    ts = ts.cumsum()
    ts.plot()
    plt.show()

if __name__ == '__main__':
    craw_line()

显示结果如下:

Python 绘图居然如此简单,真是大数据时代的神器

第二种绘画线状图方式如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

def craw_line1():
    ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
    df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list("ABCD"))
    df = df.cumsum()
    df.plot()
    plt.show()

if __name__ == '__main__':
    craw_line1()

线性图显示结果如下:

Python 绘图居然如此简单,真是大数据时代的神器

Pandas 绘制条形图

除了绘制默认的线状图,还能绘制其他图形样式,例如通过以下方法绘制条形图。绘图方法可以作为plot()的kind关键字参数提供。

绘制条形图1

通过如下方法绘制条形图1,详细代码如下:

def craw_bar():
    ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
    df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=list("ABCD"))
    plt.figure()
    df.iloc[5].plot(kind="bar")
    plt.show()

if __name__ == '__main__':
    craw_bar()

结果图显示如下:

Python 绘图居然如此简单,真是大数据时代的神器

绘制条形图2

通过如下方法绘制条形图2,详细代码如下:

def craw_bar1():
    #ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
    df2 = pd.DataFrame(np.random.rand(10, 4), columns=["a", "b", "c", "d"])
    df2.plot.bar()
    plt.show()

if __name__ == '__main__':
    craw_bar1()

图形结果展示如下:

Python 绘图居然如此简单,真是大数据时代的神器

生成堆叠条形图

上面的条形图2可以生成堆叠条形图,加上stacked=True参数即可,详细代码如下:

def craw_bar2():
    df2 = pd.DataFrame(np.random.rand(10, 4), columns=["a", "b", "c", "d"])
    df2.plot.bar(stacked=True)
    plt.show()

if __name__ == '__main__':
    craw_bar2()

堆叠条形图展示如下:

Python 绘图居然如此简单,真是大数据时代的神器

将以上条形图设置为水平条形图,详细代码如下:

def craw_bar3():
    df2 = pd.DataFrame(np.random.rand(10, 4), columns=["a", "b", "c", "d"])
    df2.plot.barh(stacked=True)
    plt.show()

if __name__ == '__main__':
    craw_bar3()

展示结果图如下:

Python 绘图居然如此简单,真是大数据时代的神器

总结

Python 绘图居然如此简单,真是大数据时代的神器

Original: https://blog.csdn.net/huang5333/article/details/121673894
Author: 爱摸鱼的菜鸟码农
Title: Python 绘图居然如此简单,真是大数据时代的神器

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/751769/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 机器学习期末考试单选题

    1.在NumPy中创建一个元素均为0的数组可以使用( A)函数。 A.zeros( ) B.arange( ) C.linspace( ) D.logspace( ) 2.通常( …

    Python 2023年9月26日
    051
  • python-*arg,**kwargs在pytest中的使用

    本文章引自其他文章,这里主要讲下在pytest中封装接口的使用。详细的使用可以看下原文章:https://www.cnblogs.com/cwind/p/8996000.html简…

    Python 2023年9月14日
    045
  • 【用ddt思想重构项目】Selenium使用csv模块读取csv文件,使用pytest参数化实现ddt

    前言 一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210421。 8、用ddt思想重构项目 Selenium读取CSV文件 Selenium读取XML文件 S…

    Python 2023年9月14日
    074
  • SpringCloud 网关 Gateway

    哈喽~大家好,这篇来看看SpringCloud 网关 Gateway。 🥇个人主页:个人主页​​​​​🥈 系列专栏:【微服务】🥉与这篇相关的文章: SpringCloud Sent…

    Python 2023年9月29日
    048
  • 设计模式—建造者模式

    类型:创建型 目的:创建对象时,提升属性设置的 灵活性。 灵活性 类中定义了大量属性时,通常为了创建对象时属性初始设置的便利随之定义大量的构造方法。为了既不定义过多的构造方法,又保…

    Python 2023年10月21日
    030
  • Django REST framework JWT

    Django REST framework JWT 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json …

    Python 2023年5月24日
    058
  • 防抖和节流

    简单理解节流就是节省资源开销,之前说回流是GPU给元素画图之前需要根据布局去计算元素的一些位置属性,例如宽、高、横纵坐标等等,那反复计算这些就是回流。节流又是节省资源开销,不让一些…

    Python 2023年10月12日
    029
  • 聊聊消息队列(MQ)那些事

    每年的双十一期间,各大电商平台流量暴增,同时,电商平台系统的负载压力也会很大。譬如订单支付的场景,每个订单支付成功后,服务器可能要完成扣减积分、扣减优惠券、扣减商品库存、发短信等一…

    Python 2023年10月15日
    038
  • Python保存文件

    将字典保存为.txt格式 with open(file_path, ‘w’) as f: f.write(str(data_dict)) f.close() with open(f…

    Python 2023年8月8日
    063
  • 聚类的评价指标

    聚类的评价指标 对于聚类结果的评价方法一般可以分为内部评估法(internal evaluation)与外部评估方法(external evaluation)。 外部评估方法是指在…

    Python 2023年10月26日
    049
  • 数据库基础操作-part2

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Python 2023年6月12日
    067
  • scrapy mysql pipeline_Scrapy用Pipeline写入MySQL

    编辑pipelines.py,添加自定义pipelines类: class MySQLPipeline(object): @classmethod def from_crawler…

    Python 2023年10月5日
    031
  • pandas之DataFrame基础

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年8月7日
    050
  • Python基础的四十二道题目(由易到难)

    声明: 1、字符三角形 2、输出第二个整数 3、求三个数的和 4、openjudge:判断子串 5、计算(a+b)*c的值 6、反向输出一个三位数 7、字符串交换 8、字符串中的整…

    Python 2023年8月1日
    053
  • Python函数进阶与文件操作

    Python函数进阶与文件操作 一、作业回顾 1、格式化输出与%百分号 以下结果中,可以正常输出”50%及格”语句是(B) A、print(“%…

    Python 2023年5月24日
    064
  • 上手Pandas,带你玩转数据(6)– 摆脱对pandas可视化丑图的刻板印象吧

    ### 回答1: Python_是一种功能强大的编程语言,可以用于各种 _数据分析_任务。而在 _Python_的 _数据分析_工具库中, _pandas_是最受欢迎和广泛使用的工…

    Python 2023年8月22日
    062
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球