Python 将已创建的matplotlib图形嵌套到新图形

Python 将已创建的matplotlib图形嵌套到新图形,python,matplotlib,figure,Python,Matplotlib,Figure,是否有办法将已创建的图形嵌套在matplotlib中的新图形中,以便它们并排显示 import matplotlib.pyplot as plt fig = plt.figure() # ... Can I nest fig1 and fig2 side to side inside fig? 这是我如何创造我的数字。我用皮皮亚诺罗图书馆绘制我的数字generate_random_multitrack只是创建随机示例 import numpy as np from pypianoroll im

是否有办法将已创建的图形嵌套在matplotlib中的新图形中,以便它们并排显示

import matplotlib.pyplot as plt
fig = plt.figure()
# ... Can I nest fig1 and fig2 side to side inside fig?
这是我如何创造我的数字。我用皮皮亚诺罗图书馆绘制我的数字
generate_random_multitrack
只是创建随机示例

import numpy as np
from pypianoroll import Multitrack, Track

def generate_random_multitrack():
    prs = np.random.randint(128, size=(3, 16, 128))
    tracks = []
    for pr in prs:
        tracks.append(
            Track(pianoroll=pr)
        )
    return Multitrack(tracks=tracks)
mt1 = generate_random_multitrack()
mt2 = generate_random_multitrack()
例如
mt1.plot()
返回轴列表并创建此图形

我想要这样的东西,mt1在左边,mt2在右边

我可以访问通过调用
.plot
创建的图形和轴

axes1 = mt1.plot()
fig1 = plt.gcf()
axes2 = mt2.plot()
fig2 = plt.gcf()
有没有办法将这两个图形并排嵌套在新的matplotlib图形中

import matplotlib.pyplot as plt
fig = plt.figure()
# ... Can I nest fig1 and fig2 side to side inside fig?
提前感谢您的帮助和评论。

根据,
pypianoroll
支持
axes
参数。因此,您可以定义绘图布局并用轨迹填充子绘图,例如

import numpy as np
from pypianoroll import Multitrack, Track
import matplotlib.pyplot as plt

def generate_random_multitrack():
    prs = np.random.randint(128, size=(3, 16, 128))
    tracks = []
    for pr in prs:
        tracks.append(
            Track(pianoroll=pr)
        )
    return Multitrack(tracks=tracks)

fig, axes = plt.subplots(3, 2, sharex=True)

mt1 = generate_random_multitrack()
mt2 = generate_random_multitrack()

mt1.plot(axs=axes.flat[::2])
mt2.plot(axs=axes.flat[1::2])
plt.tight_layout()
fig.subplots_adjust(hspace=0)
plt.show()
样本输出:


谢谢!我试着使用子地块,但它弄乱了轨道,很高兴你的解决方案!