【发布时间】:2021-05-06 18:02:41
【问题描述】:
我有一个脚本,我正在调整它以包含 GUI。在其中,我创建了一个带有子图的图(其排列取决于图的数量 - 例如,4 个图进入一个正方形而不是 4 个交叉)。该图(每个分析的“目标”都有一个子图)保存到 .png。
在构建 GUI 时,我正在编写“结果”框架,并希望在它们自己的选项卡上显示这些单独的子图。我已经编写了代码来按我想要的方式布置框架,但是为了将子图分成它们自己的图,我需要将完成的 Axes 对象(例如该目标的整个子图)绘制到一个新图形上框架。
由于在运行之前不知道子图的数量,我已经在一个数组(/list?)axs 中有我的 Axes 对象/子图,其成员是单个 Axes 对象(每个都包含使用 @ 创建的数据点987654322@ 以及使用ax.plot() 和ax.annotate 创建的几行和注释)。
当我最初创建坐标区时,我会这样做
fig, axs = plt.subplots(num='Title', nrows=numrow, ncols=numcol,
figsize=[numcol*5, numrow*5],
subplot_kw={'adjustable':'box', 'aspect':1})
现在有没有办法将这些轴绘制到一个新图形上(将包含在 GUI 的“结果”框架中的图形)?在我的搜索中,我只想出了将多个轴绘制到单个图形上的方法(即如何使用subplots()),但没有想到如何将预先存在的 Axes 对象放入一个新图形中'最初没有关联。我宁愿不从头开始重新绘制坐标轴——已经有很多装饰和多个数据集/线绘制在它们上面。
有什么想法吗?很高兴按要求发布代码,但由于这更像是“我该怎么做”而不是“为什么我的代码不起作用”,所以我没有发布太多。
谢谢!
【问题讨论】:
-
不,那是不可能的。必须在给定图形上创建轴。计算机的一个好处是通常很容易告诉它们做两次。
标签: python matplotlib figure axes