• python中使用matplotlib绘图


    一、背景

    当我们在写python程序时,不可避免的需要将数据可视化,也就是绘制出数据的曲线图,以便我们更直观的观察数据间的变化,和方便对比。此时就要用到matplotlib库了。

    matplotlib官方给出的定义是:

    在这里插入图片描述
    翻译过来也就是:
    Matplotlib:使用python进行可视化。

    Matplotlib是一个用于在Python中创建静态、动画和交互式可视化的综合库。Matplotlib使容易的事情变得更容易,使困难的事情成为可能。

    matplotlib官网:https://matplotlib.org/

    二、一个简单的绘图例子和解析

    # -*- coding: utf-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt
    # from matplotlib import pyplot as plt
    t = np.linspace(0, 2*np.pi, 100)
    print(1.5*np.pi)
    y_demo = np.zeros((2, 100))
    y_demo[0,:] = np.sin(t)
    y_demo[1,:] = np.cos(t)
    plt.figure(figsize=(10, 7))
    plt.plot(y_demo[0, :], 'g-.', label='demo sine')
    plt.plot(y_demo[1, :], 'm', label='demo cosine')
    plt.legend(loc="lower left")
    plt.grid()
    plt.xlabel('time')
    plt.ylabel('y')
    plt.show()
    
    print(y_demo)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    绘制出的结果为:
    在这里插入图片描述
    代码解析:
    1、import numpy as np导入numpy库,进行一些数学运算;
    2、import matplotlib.pyplot as plt导入matplotlib库的pyplot模块,这个就是绘图的库,当然也可以写为:from matplotlib import pyplot as plt
    3、t = np.linspace(0, 2*np.pi, 100)定义横坐标 t t t,为0到 2 π 2\pi 2π,并将其分为100份,也就是从0到99(python是从0开始索引的)
    4、y_demo = np.zeros((2, 100))定义纵坐标y_demo,这里2是指两条曲线,且此处的100必须和步骤3的100对应,如果步骤3改为500,此处也应改为500。np.zeros是构造一个全0的数组,这里也就是构造2行100列的全零数组;
    5、y_demo[0,:] = np.sin(t),第一个函数的纵坐标是y_demo[0,:],切记python是从0检索
    6、y_demo[1,:] = np.cos(t),第二个函数的纵坐标是y_demo[1,:]
    7、plt.figure(figsize=(10, 7))绘制的图片大小为10*7
    8、plt.plot(y_demo[0, :], 'g-.', label='demo sine')使用plot绘制第一条曲线,颜色g是绿色,线的类型是----,曲线名称为demo sine
    9、plt.plot(y_demo[1, :], 'm', label='demo cosine')使用plot绘制第二条曲线,颜色m是红色,线的类型是实线,曲线名称为demo cosine
    10、plt.legend(loc="lower left")为添加图例,loc可以指定图例位置,可以选择'best', 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'upper center', 'center',当然也可以什么都不写,让他自动选择图例位置,也就是我们常看到的plt.legend()
    11、plt.grid()为图片添加网格,好看一些
    12、plt.xlabel('time')和plt.ylabel('y')添加横纵坐标的标签名称
    13、plt.show()显示图片

  • 相关阅读:
    【高级语言程序设计】python函数式编程(一)
    Conda常用命令及Pycharm使用虚拟环境
    基于强化学习的节能路由(Matlab代码实现)
    【CentOS 7】克隆虚拟机
    海量点云数据快速读取方法
    Spring 怎么解决循环依赖的呢?
    云扩RPA研习社 | 解析流程开发主要步骤
    配置交换机将Log发送到日志服务器
    Docker
    记一次web登录通杀渗透测试
  • 原文地址:https://blog.csdn.net/Time_Memory_cici/article/details/133324651