【发布时间】:2018-10-10 04:01:22
【问题描述】:
当我使用 matplotlib 和 gridspec 在 python 中创建带有子图的图形时,我遇到的问题是我无法适当地调整子图之间的空间宽度。
虽然 hspace 参数的变化已经在 0 到 1 的范围内正常工作,但我必须将 wspace 变化到 100 才能在其中获得一些运动,但我无法将其设置得足够高这样 y 轴标签就不会触及其左侧的子图。
这是一个最小的工作示例。我还尝试改变 figsize 的宽度,但这只会使我的子图更宽/更小,并且不会影响它们之间的空间。
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
fig = plt.figure(figsize=([7,4]))
gs = gridspec.GridSpec(2,18)
gs.update(wspace=100., hspace=0.3)
ax1 = plt.subplot(gs[0,:6])
ax1.set_ylabel('ylabel', labelpad=0, fontsize=12)
ax2 = plt.subplot(gs[0,6:12])
ax2.set_ylabel('ylabel', labelpad=0, fontsize=12)
ax3 = plt.subplot(gs[0,12:18])
ax3.set_ylabel('ylabel', labelpad=0, fontsize=12)
ax4 = plt.subplot(gs[1,3:9])
ax4.set_ylabel('ylabel', labelpad=0, fontsize=12)
ax5 = plt.subplot(gs[1,9:15])
ax5.set_ylabel('ylabel', labelpad=0, fontsize=12)
一种解决方法是增加 gridspec 的单元格数量并在子图之间放置空单元格,但我想知道为什么改变 wspace 不起作用?
在 linux 集群上使用 python 2.7 和 matplotlib 1.5.1。
【问题讨论】:
标签: python matplotlib