【python】Matplotlib入门(三)

4.1 多合一显示

示意图
plt.figure()
plt.subplot(2,2,1)#创建小图
plt.plot([0,1],[0,1])
  • plt.subplot(2,2,1):分成2行2列,现在在第一个位置开始画图

  • 依次类推

  • plt.subplot(2,2,1)可以写成plt.subplot(221)

  • 在这一例中4个plt.subplot()中的数字分别是:
    2,2,1
    2,2,2
    2,2,3
    2,2,4
    如果要做这种效果的话该怎么设置呢?

    示意图2

  • 在这一例中4个plt.subplot()中的数字分别是:
    2,1,1
    2,3,4
    2,3,5
    2,3,6

  • 这种方法建议现在草稿上画好图框,标好各框数字

4.2 多合一显示2

方法一:subplot2grid

import matplotlib.gridspec as gridspec


方法1
plt.figure()
ax1=plt.subplot2grid((3,3), (0,0),colspan=3,rowspan=1)
ax1.plot([1,2], [1,2])
ax1.set_title('ax1_title')

ax2=plt.subplot2grid((3,3), (1,0),colspan=2)
ax3=plt.subplot2grid((3,3), (1,2),rowspan=2)
ax4=plt.subplot2grid((3,3), (2,0))
ax5=plt.subplot2grid((3,3), (2,1))
  • ax1=plt.subplot2grid((3,3), (0,0),colspan=3,rowspan=1)
    第一个括号里是表示这幅图要几行几列
    第二个括号是指这一张小图的起始位置
    colspan和rowspan表示这一张小图的覆盖范围
  • 在这一种方法中,对title,坐标等修改都改为形如:set_xxxx()

方法二:gridspec

import matplotlib.gridspec as gridspec

plt.figure()
gs=gridspec.GridSpec(3,3)
ax1=plt.subplot(gs[0,:])
ax2=plt.subplot(gs[1,:2])
ax3=plt.subplot(gs[1:,2])
ax4=plt.subplot(gs[-1,0])
ax5=plt.subplot(gs[-1,-2])
同样得到这张图

方法三:easy to define structure

f,((ax11,ax12),(ax21,ax22))=plt.subplots(2,2, sharex=True, sharey=True)
ax11.scatter([1,1],[2,2])
  • sharex=True, sharey=True共享x和y轴
  • plt.subplots()要等于一个f,然后在f里面填入名字
  • 接下来就可以用名字操控这些图了

你可能感兴趣的:(【python】Matplotlib入门(三))