打印文件名作为每个子图的标题

时间:2019-04-20 21:41:33

标签: python numpy matplotlib

我试图连续绘制三个图形,但是遇到了奇怪的现象。

我正在尝试在循环的每个子图之前打印出文件名。

answer

我程序的唯一问题是所有图形都在for file in filenames: data = np.loadtxt(file, delimiter = ",") x = np.mean(data,axis=0) y = np.min(data,axis=0) z = np.max(data,axis=0) f,(plot1,plot2,plot3) = plt.subplots(1,3,figsize=(20,5)) print(file) plot1.plot(x) plot2.plot(y) plot3.plot(z) 语句之后绘制。这样就变成了以下内容:

print(file)

我想要的是:

filename1
filename2
filename3

Graph1 Graph2 Graph3
Graph1 Graph2 Graph3
Graph1 Graph2 Graph3

我还试图查找子图的标题,显然没有这样的属性

为什么子图仅在所有打印语句之后绘制?如何在打印每个文件名后立即打印图形?有没有一种方法可以为每个子图提供标题名称?

1 个答案:

答案 0 :(得分:1)

尝试使用plt.suptitle(file)而不是print(file)

如果您坚持打印,请在plt的每次迭代后强制plt.show()进行渲染

for file in filenames:
    data = np.loadtxt(file, delimiter = ",")
    x = np.mean(data,axis=0)
    y = np.min(data,axis=0)
    z = np.max(data,axis=0)
    f,(plot1,plot2,plot3) = plt.subplots(1,3,figsize=(20,5))
    print(file)
    plot1.plot(x)
    plot2.plot(y)
    plot3.plot(z)
    plt.show()