Python 将已创建的matplotlib图形嵌套到新图形
是否有办法将已创建的图形嵌套在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
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()
样本输出:
谢谢!我试着使用子地块,但它弄乱了轨道,很高兴你的解决方案!