我正在开发一个函数,它可以让我很容易地在绘图的任何地方添加寄生虫轴,但我遇到了一个奇怪的情况。请看下面的代码:
import matplotlib.pyplot as plt
plt.plot()
plt.gca().set_position([1/3, 1/3, 1/3, 1/3])
plt.gca().twinx()
plt.show()
如您所见,twinx绘图是使用主机绘图的旧位置生成的。我本来希望在主机绘图的新位置上生成twinx绘图
如何在主体图的新位置绘制twinx图?(我知道事先绘制twinx图“解决”了这一问题,但这不是一个实际的解决方案)
谢谢你的帮助
我通过反复试验找到了解决这个问题的办法。然而,应该注意的是,我不知道
twinx
是如何工作的,我对matplotlib非常熟悉,因此我肯定无法理解正在发生的任何事情为了解决这个问题,我在创建twinx之前使用了
plt.gcf().subplots_adjust()
。但是,这样做会有效地破坏新的位置,因此我事先保存了它们,以便在创建twinx
之后能够重新应用它们。代码变为:不过,我仍然愿意阅读一些比我更好的答案,所以请随意给出您的建议
注意:上面的代码看起来相当愚蠢(我设置位置只是为了重置它,然后稍后重新应用),但在我的实际应用程序中,第一个
set_position
将由前面的函数调用执行,而后面的函数调用需要添加twinx
,因此这确实有一个用例您可以在调用
twinx
之后,使用twinx
之前的初始设置中的位置数据来设置轴的位置有几种方法可以做到这一点
或者,您可以执行
ax.set_position(ax.get_position())
。但是一个关键点是将原始轴记录到变量中,因为一旦调用gca
时twinx
就指向新轴(位置错误)如果不想将轴存储在变量中,可以将轴位置存储在变量中
不必放弃以前设置的位置
相关问题 更多 >
编程相关推荐