matplotlib库

使用向导

matpoltlib库是一个二维图像库,用类似matlab的接口可以实现简单绘图,也可以通过创建类完成自己需要的绘图函数

基本概念

matplotlib库所有的方法按照不同的层次分布,在最高层是状态机环境,简单的函数用于向当前的图中添加绘图元素,matplot中的状态机环境表现的像matlab中一样;下一层是面向对象接口的第一层,也可以称之为pyplot级别,用于创建图像;再下面就是更多的控制,是纯粹的面向对象方法

图像分层

画板(原文中是figure,参考知乎上的讲解)

figure是坐标系,绘图元素以及画布的载体,一个figure可以有任意数量的坐标系,但是至少得有一个(暂时还不理解多个坐标系的意思),一般对于用户来说figure是仿佛能看到又看不到的样子

坐标系(原文中是axes,这个翻译是我自己的理解)

一个坐标系包含两个或者三个坐标轴对象,它们负责数据限制,也可以使用set_xlim()和set_ylim()轴方法的set来控制数据限制,每个坐标系都有一个标题,通过set_title方法设置,还有x,y标签,用方法set_xlabel和set_ylabel。坐标系类和它的成员函数面向对象接口最主要的入口

坐标轴(原文中是axis,也是自己的理解)

坐标轴对象是类似于数字行的对象,它们负责限制坐标轴的范围,坐标轴的刻度还有刻度的数值;坐标轴的刻度用Locator对象确定,刻度的数值由格式化字符串完成

绘图元素(原文中是artist,自己的理解)

当figure被创建之后,所有绘图元素都被绘制在画布上,大多数绘图元素被绑定在坐标系中,绘图元素不能从一个坐标系转移到另一个坐标系中

绘图函数的输入类型

绘图函数的输入类型都是np.array,其他的类型需要转换成这个类型

Matplotlib,pyplot,pylab之间的关系

Matplotlib是指整个matplotlib包,pyplot是matplotlib的一个模块

调用pyplot模块中的函数时,系统会自动创建当前的figure和axes,下面是一个绘图的例子

x = np.linspace(0, 2, 100)

plt.plot(x, x, label='linear')
plt.plot(x, x**2, label='quadratic')
plt.plot(x, x**3, label='cubic')

plt.xlabel('x label')
plt.ylabel('y label')

plt.title("Simple Plot")

plt.legend()

plt.show()

pylab是一个方便的模块,将pyplot和numpy合并在一个单独的命名空间里,这是不提倡使用的,因为造成了命名空间的污染

代码风格

pyplot风格:先导入库文件,然后进行一次pyplot调用,什么调用都行,反正会自动的生成figure和axes,然后使用pyplot接口完成剩下的工作。还有一种风格是matlab风格

Backends(后端)

不同的人对matplotlib有不同的使用形式,为了能够满足所有人的需求,matplotlib定义了不同的形式输出形式。前端就是用户使用的绘图代码,后端是生成指定图形的功能。后端有两种形式,用户界面后端、硬拷贝后端,有四种方法可以配置后端

以上是使用向导中的内容,并没有完全结束,但是感觉这些东西目前来说够用了,下一部分是pyplot教程

pyplot教程

pyplot介绍

pyplot是matplotlib包中的一个模块,它里面的每一个函数都会将画板改变一点,pyplot的接口不是特别灵活

plot命令(要注意它不是类对象调用的),当它接收两个数组参数时,将第一个数组作为横坐标,将第二个数组作为纵坐标;当它接收一个数组参数时,默认这是纵坐标,并根据纵坐标计算出横坐标,然后绘制出图形;

import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
plt.show()

plot命令还有一个可选的第三个参数,使用格式化字符串,用来控制线的形式还有颜色之类的

plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
plt.axis([0, 6, 0, 20])                    # [xmin, xmax, ymin, ymax]这是指定坐标的范围,和matlab很像
plt.show()

在plot命令中可以同时绘制多个曲线

import numpy as np

# evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)

# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()

使用关键字符串绘图

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值