我正在做一个学校项目,正在使用matplotlib绘制所有图,但复制第一个图然后更改变量名称以添加其他图(子图)非常麻烦。

您可以在此链接上看到我的操作方式:

IPython Project Notebook

非常感谢您对改善工作流程的反馈,谢谢。

最佳答案

考虑将绘图制作机制隔离到它们自己的函数中,这样您就可以创建一个for循环,为每个变量调用该函数。这是一个示例(我只复制了两个参数列表,但是您可以看到如何添加其余的参数列表)。

fig, ax = plt.subplots(nrows=3, ncols= 2, figsize=(10,10))
x = np.linspace(0,1000000,num=10000)

def plot_maker(ax, x, var, var_name, ax_x, ax_y):
    sh, l, sc = sts.weibull_min.fit(var, floc=0)
    y = sts.weibull_min.pdf(x, sh, l, sc)
    print('Weibull parameters for {0}:\n Scale: {1:2.2f}\n Shape: {2:02.2f}'.format(var_name, sc, sh))
    ax[ax_x, ax_y].hist(var, normed=True)
    ax[ax_x, ax_y].plot(x, y, 'r', lw=2)

params = [
    [fuel['TTF or TBF'], 'Fuel TBF', 0, 0],
    [engine['TBF(TTF)'], 'Engine TBF', 0, 1],
]

for param_list in params:
    var, var_name, ax_x, ax_y = param_list
    plot_maker(ax, x, var, var_name, ax_x, ax_y)


有很多写方法,但是重要的是您将建模和绘图制作与各个参数分开,因此您可以根据需要添加任意参数。

关于python - Matplotlib工作流程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40362850/

10-12 22:39