将在函数中创建的图形添加到另一个图形的子图中

6

我创建了两个函数来制作两个特定的图形,并返回相应的图像:

import matplotlib.pyplot as plt

x = range(1,100)
y = range(1,100)

def my_plot_1(x,y):
    fig = plt.plot(x,y)
    return fig

def my_plot_2(x,y):
    fig = plt.plot(x,y)
    return fig

现在,在我的函数之外,我想创建一个带有两个子图的图形,并将我的函数图形添加到其中。就像这样:

my_fig_1 = my_plot_1(x,y)
my_fig_2 = my_plot_2(x,y)

fig, fig_axes = plt.subplots(ncols=2, nrows=1)
fig_axes[0,0] = my_fig_1
fig_axes[0,1] = my_fig_2

然而,只是将创建的图形分配给这个新图形并不起作用。函数调用了图形,但它没有分配到子图中。有没有一种方法能够将我的函数图形放置在另一个图形的子图中?

最好将“Axes”传递给您的函数:def my_plot_1(x, y, ax):ax.plot(x, y) - BigBen
你能详细说明一下吗?我之后在主图中如何使用这个“Axes”?我的原始函数使用了“Axes”,但我想将所有内容发送到主图中。我的函数还修改了字体大小和其他内容,我希望将所有内容保留在主图中。 - Lucas Oliveira
1个回答

9
更易操作和更好的做法是将一个 Axes 对象传递给您的函数:
def my_plot_1(x, y, ax):
    ax.plot(x, y)

def my_plot_2(x, y, ax):
    ax.plot(x, y)

fig, axs = plt.subplots(ncols=2, nrows=1)

# pass the Axes you created above
my_plot_1(x, y, axs[0])
my_plot_2(x, y, axs[1])

我遇到了一个小问题。我的一个函数创建了一个带有色条的图形。由于没有图形,我无法携带这个色条。出现了以下错误:“找不到可映射对象用于创建色条。首先定义一个可映射对象,例如图像(使用imshow)或轮廓集(使用contourf)”。你有什么想法吗? - Lucas Oliveira
可能更有意义的做法是提出一个新问题,并附上相关的代码片段,这样我们才能提供最佳答案。 - BigBen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接