繁体   English   中英

matplotlib:意外的gridspec行为

[英]matplotlib: Unexpected gridspec behavior

我尝试使用gridspec在一个图中垂直绘制两个图。 上层的高度应该是下层的两倍(即比例为2:1,垂直部分相等为3),并且它们必须共享x轴比例。 我有以下最小示例,该示例可生成正确的三部分图,但它不会跨越上部子图,是下部子图的两倍。 第一个情节在顶部三分之一处,第二个情节在底部三分之一处,中间为空错误在哪里?

import matplotlib.gridspec as gridspec
x = y = [1,2,3]
gs = gridspec.GridSpec(3, 1)
ax1 = plt.subplot(gs[0:1, 0])
ax1.plot(x, y)
ax2 = plt.subplot(gs[2, 0], sharex=ax1)
ax2.plot(x,y)
plt.show()

使用gridspec ,索引的作用类似于numpy数组 因此,您需要gs[0:2, 0]来获取所需的输出。

import matplotlib.pyplot as plt
from matplotlib import gridspec

x = y = [1,2,3]

gs = gridspec.GridSpec(3, 1)

ax1 = plt.subplot(gs[0:2, 0])
ax1.plot(x, y)

ax2 = plt.subplot(gs[2, 0], sharex=ax1)
ax2.plot(x,y)

plt.show()

请注意,您可以使用plt.tight_layout()删除轴的重叠

输出图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM