matplotlib在子模块中绘制的空.png输出

时间:2012-01-05 17:21:12

标签: python matplotlib

我有一个Python模块,需要我生成大约24个不同的数字。为了清理代码,我将六个左右的子图组的各个绘图函数放入单独的子模块中,并使用它们为绘图目的所需的数组调用它们。

每个人的结构都遵循:

import os, numpy, scipy

import matplotlib.pyplot as plt

def plot(array1, array2):

    Initial Plotting Setup

    plt.clf()

    Plotting and saving commands

我导入顶部模块头部的所有绘图子模块,当我这样做时,生成的唯一绘图是导入的最后一个绘图子模块生成的绘图。其余的都是空白.png文件。我重新安排了导入订单,这就是它的工作原理。当我把它放在顶层模块的主体中​​时,在进行绘图时进行导入,发生了类似的事情。

有人知道为什么会发生这种情况,以及如何在将所有绘图工具保存在子模块中的同时修复它?

1 个答案:

答案 0 :(得分:0)

我不确定你是如何组织代码的。这有效:

m1.py

import matplotlib.pyplot as plt

def plot():
    plt.clf()
    plt.plot([10,2,30,4])
    plt.title("m1")
    plt.savefig('m1')

m2.py

import matplotlib.pyplot as plt

def plot():
    plt.clf()
    plt.plot([1,2,3,4])
    plt.title("m2")
    plt.savefig('m2')

par.py

import m1
import m2

m1.plot()
m2.plot()

文件夹结构:

folder\
....__init__
....m1.py
....m2.py
....par.py

你跑:

>> from folder import par

m1.png

enter image description here

m2.png

enter image description here