〇、准备数据
import numpy as npx = np.linspace(0, 5, 10)y = x ** 2
一、matlab风格的API
1.单图
from pylab import *figure()plot(x, y, 'r')xlabel('x')ylabel('y')title('title')show()
2.多子图
subplot(1,2,1)plot(x, y, 'r--')subplot(1,2,2)plot(y, x, 'g*-');
二、matplotlib面向对象风格的API:
1.两步走:先创建figure实例、接着创建axes实例
a.单图
fig = plt.figure()# 不关心位置axes = fig.add_subplot(1, 1, 1)# 关心位置axes = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # left, bottom, width, height (range 0 to 1)axes.plot(x, y, 'r')axes.set_xlabel('x')axes.set_ylabel('y')axes.set_title('title');
b.多子图
fig = plt.figure()# 不关心位置axes1 = fig.add_subplot(2, 1, 1)axes2 = fig.add_subplot(2, 1, 2)# 关心位置axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axesaxes2 = fig.add_axes([0.2, 0.5, 0.4, 0.3]) # inset axes# main figureaxes1.plot(x, y, 'r')axes1.set_xlabel('x')axes1.set_ylabel('y')axes1.set_title('title')# insertaxes2.plot(y, x, 'g')axes2.set_xlabel('y')axes2.set_ylabel('x')axes2.set_title('insert title')
2.一步走:同时创建figure、axes实例
a.单图(不关心位置)
fig, axes = plt.subplots()axes.plot(x, y, 'r')axes.set_xlabel('x')axes.set_ylabel('y')axes.set_title('title')
b.多子图(不关心位置)
1)单行,或者单列
fig, axes = plt.subplots(nrows=1, ncols=2)for ax in axes: ax.plot(x, y, 'r') ax.set_xlabel('x') ax.set_ylabel('y') ax.set_title('title')
2)多行多列
fig, axes = plt.subplots(nrows=3, ncols=2, sharex=True)# 此处不能用 for ax in axes:for i in range(6): axes[i//2, i%2].plot(x, y, 'r') axes[i//2, i%2].set_xlabel('x') axes[i//2, i%2].set_ylabel('y') axes[i//2, i%2].set_title('title')