Python matplotlib设置多子图、子图间距及外边距的几种方式

Python matplotlib

设置多子图

设置多子图纵向间距

设置多子图横向间距

设置外边距

1. 方式一。设置一个 2*2 的相同尺寸子图,统一添加。

  • 可选参数:sharex=True,sharey=False 共享X轴,不共享Y轴。
  • 可选参数:facecolor 背景填充色。
  • figsize 图片的大小。
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\')

Python matplotlib设置多子图、子图间距及外边距的几种方式

2. 方式二。设置一个 2*2 子图,单独添加尺寸相同的子图。

  • add_subplot 先创建 fig 再单独添加子图。
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\')  

Python matplotlib设置多子图、子图间距及外边距的几种方式

3. 方式三。单独设置尺寸不太的子图。

subplot2grid 单独设置子图所占的行列比例。

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,})

Python matplotlib设置多子图、子图间距及外边距的几种方式

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

  • subplots_adjust 调整间距。
  • 参数 left=0,right=1,top=1,bottom=0, 分别控制 上下左右 的位置。(整体边距)
  • 参数 wspace=0.4,hspace=0.1 分别控制横向和纵向的子图间距。(子图间距)
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)

Python matplotlib设置多子图、子图间距及外边距的几种方式

总结 

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容