【问题标题】:matplotlib - duplicate plot from one figure to another?matplotlib - 从一个图形复制到另一个图形?
【发布时间】:2013-04-12 04:04:10
【问题描述】:

我对 matplotlib 有点陌生。我想做的是编写代码,将几个数字保存到 eps 文件中,然后生成一个复合数字。基本上我想做的是有类似的东西

def my_plot_1():
    fig = plt.figure()
    ...
    return fig.

def my_plot_2():
    fig = plt.figure()
    ...
    return fig

def my_combo_plot(fig1,fig2):
    fig = plt.figure()
    gs = gridspec.GridSpec(2,2)
    ax1 = plt.subplot(gs[0,0])
    ax2 = plt.subplot(gs[0,1])
    ax1 COPY fig1
    ax2 COPY fig2
    ...

以后我可以在哪里做类似的事情

my_combo_plot( my_plot_1() , my_plot_2() )

并从前两个函数返回的图中复制所有数据和设置,但我不知道如何使用 matplotlib 完成。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    由于 pyplot 有点像状态机,我不确定您所要求的是否可行。相反,我会考虑出绘图代码,如下所示:

    import matplotlib.pyplot as plt
    
    def my_plot_1(ax=None):
        if ax is None:
            ax = plt.gca()
        ax.plot([1, 2, 3], 'b-')
    
    def my_plot_2(ax=None):
        if ax is None:
            ax = plt.gca()
        ax.plot([3, 2, 1], 'ro')
    
    def my_combo_plot():
        ax1 = plt.subplot(1,2,1)
        ax2 = plt.subplot(1,2,2)
        my_plot_1(ax1)
        my_plot_2(ax2)
    

    【讨论】:

    • 这是最好的解决方案恕我直言。我只是想补充一点,既然图形是可腌制的,从技术上讲,也可以复制图形实例——你甚至可以从一个后端到另一个后端这样做。
    • 这可能是一个快速的解决方法,但不是答案。如果您有需要花费大量时间的“绘图说明”,则此解决方案不可行。假设我有一个 3D 图,并且想在 3 个子图中显示 XZ、YZ 和 XY 视图。原则上,您可以使用相同的绘图并更改视图。使用此解决方案,您只需绘制 3 次而不是一次并更改视图。 (不幸的是,我也不知道如何实现这一点)。有人吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 1970-01-01
    • 2020-11-24
    相关资源
    最近更新 更多