简介
matplotlib是python上的一个2D绘图库,它可以在夸平台上边出很多高质量的图像。综旨就是让简单的事变得更简单,让复杂的事变得可能。我们可以用matplotlib生成 绘图、直方图、功率谱、柱状图、误差图、散点图等 。
matplotlib.pyplot:提供一个类似matlab的绘图框架。
pylab将pyplot与numpy合并为一个命名空间。这对于交互式工作很方便,但是对于编程来说,建议将名称空间分开,例如 :
# 画 y = sin x 图像
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.1);
y = np.sin(x)
plt.plot(x, y)
plt.show()
matplotlib实际上为面向对象的绘图库,它所绘制的每个元素都有一个对象与之对应的。例如上述例子中执行完 plt.plot(x,y) 之后得到:[matplotlib.lines.Line2D object at 0x01867D70]
好啦,现在开始学习:
配置属性:
因为是面向对象的绘图库,我们可以为每个对象配置它们的属性,应该说有三个方法,一个是通过对象的方法set_属性名()函数,二是通过对象的set()函数,三是通过pylot模块提供的setp()函数:
plt.figure()
line = plt.plot(range(5))[0] # plot函数返回的是一个列表,因为可以同时画多条线的哦;
line.set_color('r')
line.set_linewidth(2.0)
plt.show()
#———————————— 或者 ————————————
plt.figure()
line = plt.plot(range(5))[0] # plot函数返回的是一个列表,因为可以同时画多条线的哦;
line.set(color = 'g',linewidth = 2.0)
plt.show()
#———————————— 或者 ————————————
plt.figure()
lines = plt.plot(range(5),range(5),range(5),range(8,13)) # plot函数返回一个列表;
plt.setp(lines, color = 'g',linewidth = 2.0) # setp函数可以对多条线进行设置的;
plt.show()
如果想查看呢,怎么办呢?同样两个方法,一个是通过对象的方法get_属性名()函数,一个是通过pylot模块提供的getp()函数。
getp()有两个调用方法,一个是只有要的查看的对象一个参数,一个是要查看的对象现属性两个参数;如:
# getp(obj, property=None)
plt.getp(line)
plt.getp(line, 'color')
Artist 对象
matplotlib API包含有三层:
- backend_bases.FigureCanvas : 图表的绘制领域
- backend_bases.Renderer : 知道如何在FigureCanvas上如何绘图
- artist.Artist : 知道如何使用Renderer在FigureCanvas上绘图
FigureCanvas和Renderer需要处理底层的绘图操作,例如使用wxPython在界面上绘图,或者使用PostScript绘制PDF。Artist则处理所有的高层结构,例如处理图表、文字和曲线等的绘制和布局。通常我们只和Artist打交道,而不需要关心底层的绘制细节。
Artists分为简单类型和容器类型两种。简单类型的Artists为标准的绘图元件,例如Line2D、 Rectangle、 Text、AxesImage 等等。而容器类型则可以包含许多简单类型的Artists,使它们组织成一个整体,例如Axis、 Axes、Figure等。
直接使用Artists创建图表的标准流程如下:
- 创建Figure对象
- 用Figure对象创建一个或者多个Axes或者Subplot对象
- 调用Axies等对象的方法创建各种简单类型的Artists
Artist 对象
对于上面的很多很多对象,其实都是Artist对象,Artist对象共分为简单类型和容器类型两种哦。
举一个建立简单Artist对象的过程哈,直接上代码: