我试图连续绘制三个图形,但是遇到了奇怪的现象。
我正在尝试在循环的每个子图之前打印出文件名。
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
我还试图查找子图的标题,显然没有这样的属性
为什么子图仅在所有打印语句之后绘制?如何在打印每个文件名后立即打印图形?有没有一种方法可以为每个子图提供标题名称?
答案 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()