Python matplotlib设置多子图、子图间距和边距的方法详解

Python matplotlib
设置多子图
设置多子图间距
设置多子图边距

1. 方式一

设置一个 2*2 的子图,子图共用X轴,不共用Y轴

import matplotlib.pyplot as plt

fig,axes = plt.subplots(2,2,figsize=(6,6),dpi=100,facecolor="w",sharex=True,sharey=False)

# 遍历所有子图
for i,ax in enumerate(axes.flatten()):
    ax.text(0.5, 0.5, i, fontdict={'fontsize':20,})
    
# 对单一子图进行操作    
axes[0,0].set_title('0,0 title')

2. 方式二

设置一个 2*2 的子图

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(6,6),dpi=100,facecolor="w")

ax1 = fig.add_subplot(2,2,1)
ax4 = fig.add_subplot(2,2,4)

ax1.text(0.3, 0.5, '2,2,1', fontdict={'fontsize':20,})
ax4.set_title('2,2,4 title')  

3. 方式三

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8,8),dpi=100,facecolor="w")

# 3*3 的网格;(0,0)位置开始,跨度为 1 行 1 列
ax1 = plt.subplot2grid((3,3),(0,0),colspan=1,rowspan=1)
# 3*3 的网格;(1,0)位置开始,跨度为 1 行 2 列
ax2 = plt.subplot2grid((3,3),(1,0),colspan=2,rowspan=1)
# 3*3 的网格;(1,2)位置开始,跨度为 2 行 1 列
ax3 = plt.subplot2grid((3,3),(1,2),colspan=1,rowspan=2)

ax1.text(0.1, 0.5, '(0,0) rows 1, cols 1', fontdict={'fontsize':12,})
ax2.text(0.3, 0.5, '(1,0) rows 1, cols 2', fontdict={'fontsize':12,})
ax3.text(0.1, 0.5, '(1,2) rows 2, cols 1', fontdict={'fontsize':12,})

3. 子图间距调整、子图边距调整

import matplotlib.pyplot as plt

fig,axes = plt.subplots(2,2,figsize=(8,6),dpi=100,facecolor="#00CC67")

# 遍历所有子图
for i,ax in enumerate(axes.flatten()):
    ax.text(0.5, 0.5, i, fontdict={'fontsize':20,})

# left 控制左边位置;wspace,hspace 控制子图间距
fig.subplots_adjust(left=0,right=1,top=1,bottom=0,
                    wspace=0.4,hspace=0.1)

物联沃分享整理
物联沃-IOTWORD物联网 » Python matplotlib设置多子图、子图间距和边距的方法详解

发表评论