我想在matplotlib的子网格中安排一些数字哦的hypertools图。通常hypertools.plot
会立即呈现,但可以通过传递show=False. It also returns a
hypertools.DataGeometry`对象来停止。如何将其作为网格中的子图而不是独立图进行渲染?
答案 0 :(得分:1)
为matplotlib编写一些绘图包装器的常用方法是允许将一个轴提供给包装器,例如:
def plot(data, ax=None):
if not ax:
fig, ax = plt.subplots()
else:
fig = ax.figure
# plot to ax ...
hypertools
不遵循这种标准方法,这使得将这些图中的一个绘制成现有图形非常麻烦。
将它作为一个问题放在他们的GitHub跟踪器上可能是值得的。
您拥有的选项是将轴从hypertools创建的图形移动到您自己的图形。
这可以使用this answer的方法完成。 (我无法测试以下内容,因为我没有可用的超文本)
import matplotlib.pyplot as plt
import hypertools
datageom = hypertools.plot(..., show=False)
ax = datageom.ax
ax.remove()
fig2 = plt.figure()
ax.figure=fig2
fig2.axes.append(ax)
fig2.add_axes(ax)
dummy = fig2.add_subplot(231)
ax.set_position(dummy.get_position())
dummy.remove()
# possibly:
# plt.close(datageom.fig)
plt.show()