子图演示大全

说明 plt.subplots() 使用的示例。

此函数只需一次调用即可创建地物和子图网格,同时对各个图的创建方式提供合理的控制。要对子打印创建进行非常精细的调整,仍然可以直接在新地物上使用 add_subplot()。

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. # Simple data to display in various forms
  4. x = np.linspace(0, 2 * np.pi, 400)
  5. y = np.sin(x ** 2)
  6. plt.close('all')

只有一个图形和一个子图

  1. f, ax = plt.subplots()
  2. ax.plot(x, y)
  3. ax.set_title('Simple plot')

子图演示大全

两个子图,轴数组是一维的。

  1. f, axarr = plt.subplots(2, sharex=True)
  2. f.suptitle('Sharing X axis')
  3. axarr[0].plot(x, y)
  4. axarr[1].scatter(x, y)

子图演示大全2

Two subplots, unpack the axes array immediately

  1. f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
  2. f.suptitle('Sharing Y axis')
  3. ax1.plot(x, y)
  4. ax2.scatter(x, y)

子图演示大全3

共享x/y轴的三个子图

  1. f, axarr = plt.subplots(3, sharex=True, sharey=True)
  2. f.suptitle('Sharing both axes')
  3. axarr[0].plot(x, y)
  4. axarr[1].scatter(x, y)
  5. axarr[2].scatter(x, 2 * y ** 2 - 1, color='r')
  6. # Bring subplots close to each other.
  7. f.subplots_adjust(hspace=0)
  8. # Hide x labels and tick labels for all but bottom plot.
  9. for ax in axarr:
  10. ax.label_outer()

子图演示大全4

行和列共享

  1. f, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2, sharex='col', sharey='row')
  2. f.suptitle('Sharing x per column, y per row')
  3. ax1.plot(x, y)
  4. ax2.scatter(x, y)
  5. ax3.scatter(x, 2 * y ** 2 - 1, color='r')
  6. ax4.plot(x, 2 * y ** 2 - 1, color='r')

子图演示大全5

四个轴,作为二维数组返回

  1. f, axarr = plt.subplots(2, 2)
  2. axarr[0, 0].plot(x, y)
  3. axarr[0, 0].set_title('Axis [0,0]')
  4. axarr[0, 1].scatter(x, y)
  5. axarr[0, 1].set_title('Axis [0,1]')
  6. axarr[1, 0].plot(x, y ** 2)
  7. axarr[1, 0].set_title('Axis [1,0]')
  8. axarr[1, 1].scatter(x, y ** 2)
  9. axarr[1, 1].set_title('Axis [1,1]')
  10. for ax in axarr.flat:
  11. ax.set(xlabel='x-label', ylabel='y-label')
  12. # Hide x labels and tick labels for top plots and y ticks for right plots.
  13. for ax in axarr.flat:
  14. ax.label_outer()

子图演示大全6

四极轴

  1. f, axarr = plt.subplots(2, 2, subplot_kw=dict(projection='polar'))
  2. axarr[0, 0].plot(x, y)
  3. axarr[0, 0].set_title('Axis [0,0]')
  4. axarr[0, 1].scatter(x, y)
  5. axarr[0, 1].set_title('Axis [0,1]')
  6. axarr[1, 0].plot(x, y ** 2)
  7. axarr[1, 0].set_title('Axis [1,0]')
  8. axarr[1, 1].scatter(x, y ** 2)
  9. axarr[1, 1].set_title('Axis [1,1]')
  10. # Fine-tune figure; make subplots farther from each other.
  11. f.subplots_adjust(hspace=0.3)
  12. plt.show()

子图演示大全7

下载这个示例