首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >set_position()之后的matplotlib孪生怪行为

set_position()之后的matplotlib孪生怪行为
EN

Stack Overflow用户
提问于 2020-06-30 23:46:32
回答 2查看 273关注 0票数 3

我正在做一个函数,它可以让我很容易在任何地方添加寄生虫轴,但是我遇到了一个奇怪的情况。看看下面的代码:

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt

plt.plot()
plt.gca().set_position([1/3, 1/3, 1/3, 1/3])
plt.gca().twinx()

plt.show()

上面的代码显示如下所示:

如您所见,使用宿主图的旧位置生成孪生图。我原以为在宿主情节的新位置上会产生孪生情节。

我如何在宿主图形的新位置上绘制一幅孪生图?(--我知道事先绘制孪生图“解决”了这个问题,但这不是一个实用的解决方案)

谢谢你的帮忙!

EN

回答 2

Stack Overflow用户

发布于 2020-07-01 02:40:58

我想出了一个通过反复试验来解决这个问题的方法。但是,应该注意的是,我不知道twinx是如何工作的,而且我在matplotlib方面非常初级,所以我肯定无法理解正在发生的任何事情。

我为解决这个问题所做的是在创建孪生之前使用了plt.gcf().subplots_adjust()。但是,这样做有效地破坏了新的职位,所以我事先保存了它们,以便能够在创建twinx之后重新应用它们。守则如下:

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt

plt.plot()
plt.gca().set_position([1/3, 1/3, 1/3, 1/3])
pos = plt.gca().get_position()     #added line
plt.gcf().subplots_adjust()        #added line
plt.gca().twinx()
plt.gca().set_position(pos)        #added line

plt.show()

不过,我仍然愿意读一些比我的答案更好的答案,所以请随意提出你的建议!

注意到:上面的代码看起来相当愚蠢(我只是设置位置以重置它,然后在以后重新应用它),但是在我的实际应用程序中,第一个set_position应该是通过一个更早的函数调用来执行的,而后面的函数调用需要添加twinx,所以这是有一个用例的。

票数 2
EN

Stack Overflow用户

发布于 2021-10-21 02:21:41

您可以在调用twinx之后,使用twinx之前的初始设置中的位置数据来设置轴的位置。

有几种方法可以做到这一点。

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt

# Create original plot
plt.plot()
ax = plt.gca()
ax.set_position([1/3,1/3,1/3,1/3])
# Make twin axes.
ax2 = ax.twinx()
ax2.set_position(ax.get_position())

plt.show()

或者,您可以执行ax.set_position(ax.get_position())。但是一个关键点是将原始轴记录到变量,因为gca在调用twinx时指向新的轴(它们的位置不对)。

如果不想将轴存储在变量中,则可以将轴位置存储在变量中。

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt

# Create original plot
plt.plot()
plt.gca().set_position([1/3, 1/3, 1/3, 1/3])
# Make twin axes
pos = plt.gca().get_position()
plt.gca().twinx()
plt.gca().set_position(pos)

plt.show()

没有必要抛出以前设置的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62667696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档