【发布时间】:2017-05-29 04:40:46
【问题描述】:
我有一个返回 matplotlib.image.AxesImage 对象的函数,我想在同一个图中并排绘制其中两个对象。我尝试过这样的事情:
fig, (ax1, ax2) = plt.subplots(ncols=2)
ax1 = function_that_returns_AxesImage(some_arguments) # tried to reassign ax1
ax2 = function_that_returns_AxesImage(other_arguments) # tried to reassign ax2
但是,这只会产生一个带有两个空子图的图形,而我想要的两个图被绘制在一列中,而不是并排绘制 (see current plots output here)。 我的问题是我必须使用function_that_returns_axes,我不知道如何将返回的图放入子图中。或者,如果我可以在 Jupyter 中并排显示两个图形,那也可以。
【问题讨论】:
-
我认为我们需要更多关于
function_that_returns_axes的信息。似乎它确实考虑了代码的某些部分,否则它不会绘制到相同的现有图形。这个功能从何而来?你自己写的吗?能给个链接吗? -
@ImportanceOfBeingErnest 当然,我正在使用 galpy 库 https://github.com/jobovy/galpy.git。特定的函数是 galpy/galpy/potential_src/Potential.py 中的绘图函数。感谢您的帮助!
-
下面我的回答对你有用吗?如果是这样,我不需要深入研究 galpy 代码。
-
我不知道为什么,但我收到了这个错误。 AttributeError:“AxesImage”对象没有属性“set_position”。我尝试了一些其他方法,看起来 set_cmap 和 set_colorbar 都可以工作,但是 set_title 和 set_position 给出了 AttributeError。
-
好的,抱歉,我被
function_that_returns_axes误导了,因为它显然不返回轴而是图像(我知道你在代码的开头写了这个,但因为方法被调用不同, 我没注意到)。所以我用图像的方法更新了我的答案。
标签: matplotlib jupyter-notebook