np.loadtxt不会覆盖文件

时间:2016-07-13 23:07:08

标签: python python-2.7 python-3.x numpy while-loop

我正在导入一个未被np.loadtxt覆盖的列表。我有6个文本文件被添加到同一个数组中,但我想要做的是覆盖这个数组并为每个文件打印一个新图形。不幸的是,它打印了一个新图像,每个文件在另一个图形的顶部,直到达到长度(看起来像graph1.jpg,graph1 + 2 .jpg,graph1 + 2 + 3.jpg等等)。谁能帮我这个?我发现问题出在包含“np.loadtxt ....”的行中。但我不知道在覆盖前一个循环的代码时,用什么其他代码来提取文本文件并从中拉出一列。下面是我的代码的一部分。请注意,all_txt_PL是文件txt名称的列表。

while i!= x2:
    DataIn = np.loadtxt(all_txt_PL[i])
    #DataIn = np.array(DataIn)
    #print(DataIn, '\n')
    y = list()
    v = list()
    for column in DataIn:
        v.append(column[1])
        y.append(column[0])
    plt.plot(y,v, 'b')  
    plt.title('PL Spectrum')
    plt.ylabel('Intensity A.U')
    plt.xlabel('energy [eV]')
    DataIn_PL_name = str(all_txt_PL[i])
    #graphs_PL.append('PL_plot_coordinates_' + DataIn_PL_name.strip('.txt') + '.JPG')
    #plt.savefig('PL of ' + DataIn_PL_name.strip('.txt') + '.JPG')
    #print(i, all_txt_PL[i], '\n')
    i += 1
    #DataIn = np.delete(DataIn, [0,1], axis = None)
    #DataIn = np.delete(DataIn, 0, None)
    y[:] = []
    v[:] = []

1 个答案:

答案 0 :(得分:1)

我认为问题在于您的绘图代码。如果我理解正确,你希望每个情节都是自己的形象。除非你明确告诉matplotlib,否则它会继续将你所有的图添加到相同的轴上。

尝试在循环结束时添加对plt.figure()的调用。

或者,如果您希望它们彼此处于网格中,您可以查找matplotlib子图。