使用数组绘制

  1. plt.plot([1, 2, 3, 4])
  2. plt.show()

📃 Matplotlib基础图像绘制 - 图1

  1. plt.plot(np.arange(16).reshape(4,4))
  2. plt.show()

📃 Matplotlib基础图像绘制 - 图2

  1. plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
  2. plt.show()

📃 Matplotlib基础图像绘制 - 图3

使用函数绘制

  1. x = np.arange(-10, 10, 0.01)
  2. y = x ** 2
  3. plt.plot(x, y)
  4. plt.xlabel('x')
  5. plt.ylabel('y')
  6. plt.show()

📃 Matplotlib基础图像绘制 - 图4

  1. x = np.arange(0, 2*np.pi, .001)
  2. y = np.sin(2 * np.pi * x)
  3. plt.clf()
  4. plt.plot(x, y)
  5. l = plt.axhline(linewidth=1, color='black')
  6. l = plt.axvline(linewidth=1, color='black')
  7. plt.show()

📃 Matplotlib基础图像绘制 - 图5

绘制离散点

添加 ro 参数即可得到离散点图像

  1. plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
  2. plt.axis([0, 6, 0, 20])
  3. plt.show()

📃 Matplotlib基础图像绘制 - 图6

在同一个坐标轴中绘制多个曲线

  1. t = np.arange(0., 5., 0.2)
  2. plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
  3. plt.show()

以上, 分为三组:

  • t, t, 'r--'
  • t, t**2, 'bs'
  • t, t**3, 'g^'

其中, 前两个参数分别为x和y轴上的自变量和因变量, 第三个参数指定了曲线的颜色和形状, r b g 分别为 红 蓝 绿, 后面的 -- s ^ 为曲线的形状。

📃 Matplotlib基础图像绘制 - 图7

绘制散点图

通过 scatter 函数可以绘制散点图, 首先看看 scatter 的定义:

  1. scatter(
  2. x, y, s=None, c=None, marker=None, cmap=None, norm=None,
  3. vmin=None, vmax=None, alpha=None, linewidths=None, verts=None,
  4. edgecolors=None, *, data=None, **kwargs)

首先来绘制一个点:

  1. plt.scatter(2, 4)
  2. plt.show()

ok, 这样就绘制了一个坐标为 (2, 4) 的点

📃 Matplotlib基础图像绘制 - 图8

绘制多个点

  1. x_values = [1, 2, 3, 4, 5]
  2. y_values = [1, 4, 9, 16, 25]
  3. plt.scatter(x_values, y_values, s=100)
  4. plt.show()

📃 Matplotlib基础图像绘制 - 图9

  1. x_values = list(range(1, 1001, 10))
  2. y_values = [x**2 for x in x_values]
  3. plt.scatter(x_values, y_values, s=1)
  4. plt.axis([0, 1100, 0, 1100000])
  5. plt.show()

如果间隔足够小, 其实图像就变成了一条肉眼看上去连续的曲线 (如果放大, 还是会发现是一些散列点):

  1. x_values = list(range(1, 1001))
  2. y_values = [x**2 for x in x_values]
  3. plt.scatter(x_values, y_values, s=.1)
  4. plt.axis([0, 1100, 0, 1100000])
  5. plt.show()

📃 Matplotlib基础图像绘制 - 图10

修改大小

  1. plt.scatter(2, 4, s=200)
  2. plt.show()

📃 Matplotlib基础图像绘制 - 图11

修改颜色

  1. plt.scatter(2, 4, c='r')
  2. plt.show()

📃 Matplotlib基础图像绘制 - 图12

默认为蓝色点和黑色轮廓,可在调用 scatter() 时传递实参 edgecolor='none' 删除轮廓:

  1. plt.scatter(x_values, y_values, edgecolor='none', s=40)

颜色可以是一个序列, 用于设置多个颜色:

  1. x_values = list(range(1, 1001))
  2. y_values = [x**2 for x in x_values]
  3. plt.scatter(x_values, y_values, c=y_values, edgecolor='none', s=40)
  4. plt.show()

📃 Matplotlib基础图像绘制 - 图13

颜色映射

颜色映射 (colormap) 是一系列颜色,它们从起始颜色渐变到结束颜色。

  1. x_values = list(range(1, 1001))
  2. y_values = [x**2 for x in x_values]
  3. plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues, edgecolor='none', s=40)
  4. plt.show()

📃 Matplotlib基础图像绘制 - 图14

指定数据源

以下示例, 随机绘制了一些不同颜色、不同大小的点:

  1. data = {
  2. 'x': np.arange(50),
  3. 'c': np.random.randint(0, 50, 50),
  4. 's': np.abs(np.random.randn(50)) * 100
  5. }
  6. data['y'] = data['x'] + 10 * np.random.randn(50)
  7. plt.scatter('x', 'y', c='c', s='s', data=data)
  8. plt.xlabel('entry x')
  9. plt.ylabel('entry y')
  10. plt.show()

通过指定 data 为数据源, 其为一个字典, x y c s 取值均为 data 中的 key

📃 Matplotlib基础图像绘制 - 图15

参考:

绘制标注、坐标轴

添加label

以下代码添加 x 和 y 轴的 label

  1. plt.xlabel("x", fontsize=14)
  2. plt.ylabel("y", fontsize=14)

添加title

以下代码, 为图像添加标题:

  1. plt.title("Chart", fontsize=24)

修改坐标轴参数

  1. plt.tick_params(axis='both', which='major', labelsize=16)

不显示坐标轴:

  1. plt.axis('off')

绘制网格

  1. plt.grid(True)

绘制文字

使用 text 在图像中添加文字:

  1. mu, sigma = 100, 15
  2. x = mu + sigma * np.random.randn(10000)
  3. n, bins, patches = plt.hist(x, 50, density=1, facecolor='r', alpha=0.75)
  4. plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
  5. plt.axis([40, 160, 0, 0.03])
  6. plt.grid(True)
  7. plt.show()

📃 Matplotlib基础图像绘制 - 图16

使用 annotate 为图像添加标注

  1. ax = plt.subplot(111)
  2. t = np.arange(0.0, 5.0, 0.01)
  3. s = np.cos(2*np.pi*t)
  4. line, = plt.plot(t, s, lw=2)
  5. plt.annotate('max', xy=(2, 1), xytext=(3, 1.5),
  6. arrowprops=dict(facecolor='red', shrink=0.05),
  7. )
  8. plt.ylim(-2, 2)
  9. plt.show()

📃 Matplotlib基础图像绘制 - 图17