下面的代码会在子图之间产生间隙.如何消除子图之间的间隙并使图像成为紧密的网格?
import matplotlib.pyplot as plt
for i in range(16):
i = i + 1
ax1 = plt.subplot(4, 4, i)
plt.axis('on')
ax1.set_xticklabels([])
ax1.set_yticklabels([])
ax1.set_aspect('equal')
plt.subplots_adjust(wspace=None, hspace=None)
plt.show()
Run Code Online (Sandbox Code Playgroud) 我有一个很长的列表(大约4000项)当我尝试在ipython笔记本输出单元格中显示它时,其内容被抑制.可能会显示三分之二,但结尾有一个"......",而不是列表中的所有内容.如何让ipython笔记本显示整个列表而不是截止版本?
我试图使用GridSpec控制4 x 1网格的宽高比.我想要在水平方向上绘制非常宽的图,并且在垂直方向上要紧凑,但是我无法预测地改变纵横比(参见第一张图片).下面'height_ratios'的所有三个设置都给我相同的宽高比(见下面第二张图):
一:
gs = gridspec.GridSpec(4, 1, width_ratios=[1], height_ratios=[0.1, 0.1, 0.1, 0.1])
gs.update(wspace = 0, hspace = 0)
ax1 = plt.subplot(gs[0])
ax2 = plt.subplot(gs[1])
ax3 = plt.subplot(gs[2])
ax4 = plt.subplot(gs[3])
plt.show()
Run Code Online (Sandbox Code Playgroud)
二:
gs = gridspec.GridSpec(4, 1, width_ratios=[1], height_ratios=[1, 1, 1, 1])
Run Code Online (Sandbox Code Playgroud)
三:
gs = gridspec.GridSpec(4, 1, width_ratios=[1], height_ratios=[0.5, 0.5, 0.5, 0.5])
Run Code Online (Sandbox Code Playgroud)
通过这样做,我能够像我想的那样得到细长的情节:
ax1.set_aspect(0.1)
ax2.set_aspect(0.1)
ax3.set_aspect(0.1)
ax4.set_aspect(0.1)
Run Code Online (Sandbox Code Playgroud)
但这增加了我不想要的子图之间的空间,我使用hspace = 0删除了.如何在不增加子图之间的空间的情况下控制宽高比?
这就是我想要的,但我似乎无法再次得到它,我不知道为什么:

相反,我得到的只是:

这是我使用ax.set_aspect(0.1)得到的,它具有正确的宽高比,但它在图之间引入了空间,我不想要:
