子模块中matplotlib绘图输出空白.png
我有一个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