即使执行顺序相反,在Matplotlib.pyplot之前输出打印功能

时间:2018-04-23 04:41:18

标签: python-3.x matplotlib

我准备了一个代码,它使用带子模块的导入模块作为matplotlib。我在Jupyter中执行了以下代码。 代码如下:

def run:
  plot_chart(a,b,c)
  print(10*'-')

run()

输出如下:

----------
<chart_graphics>

plot_chart()调用matplotlib.pyplot来创建图表。显示结果时,print()的输出显示在plot_chart()的输出之前。为什么这样,我该怎么做才能订购与代码执行相同的顺序?

Note this is a repeat question from a previous question to which I have not received any replies.

函数plot_chart()调用模块中的函数plot_trunc_gr_model()

import numpy as np
import matplotlib.pyplot as plt
from openquake.hmtk.plotting.seismicity.catalogue_plots import \
        (get_completeness_adjusted_table, _save_image)
....
....
def plot_trunc_gr_model(aval, bval, min_mag, max_mag, dmag, catalogue=None,
        completeness=None, figure_size=None, filename=None, filetype='png', 
        dpi=300):
    """
    Plots a Gutenberg-Richter model
    """
    input_model = TruncatedGRMFD(min_mag, max_mag, dmag, aval, bval)
    if not catalogue:
        # Plot only the modelled recurrence
        annual_rates, cumulative_rates = _get_recurrence_model(input_model)
        plt.semilogy(annual_rates[:, 0], annual_rates[:, 1], 'b-')
        plt.semilogy(annual_rates[:, 0], cumulative_rates, 'r-')
        plt.xlabel('Magnitude', fontsize='large')
        plt.ylabel('Annual Rate', fontsize='large')
        plt.legend(['Incremental Rate', 'Cumulative Rate'])
        plt.savefig(filename, dpi=resolution, format=filetype)
    else:
        completeness = _check_completeness_table(completeness, catalogue)
        plot_recurrence_model(input_model,
                              catalogue,
                              completeness,
                              input_model.bin_width,
                              figure_size,
                              filename,
                              filetype,
                          dpi)

已编辑 - 解决方案如下 我找到了与matplotlib的plt.savefig()函数有关的解决方案,这导致了不正确的输出显示顺序。我使用plt.show()并且完美无缺。因此,这是一个相关的问题,或者有些人可能会说类似的问题,您如何确定这是否是一个重复的问题?

0 个答案:

没有答案