子模块中matplotlib绘图输出空白.png

0 投票
1 回答
794 浏览
提问于 2025-04-17 09:37

我有一个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

我不太确定你是怎么组织你的代码的。这个方法可以用:

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

在这里输入图片描述

m2.png

在这里输入图片描述

撰写回答