Matplotlib图仅使最终图循环

时间:2018-07-30 20:43:36

标签: python python-3.x matplotlib

在我的代码中,我有多个要自动化的绘图,我使用for循环遍历代码并为每个循环创建1个绘图。但是,该代码似乎只能创建最终图。如果我在一个循环中调用该函数,这似乎可行,但是我不明白为什么它不能像我在这里做的那样创建所有图表。

for i in range(num_x):
        curr = usehdr[xcols[i]]

        for j in range(num_y):
            domain = data[:,xcols[i] - 1]
            image  = data[:,ycols[j] - 1]
            plt.plot(domain,image,'.', color = 'black')
            plt.xlabel(curr + ' NN distances (Mpc)')
            plt.ylabel(usehdr[ycols[j]])
            plt.title('D4000_N vs NN distances')

i变量是更改x数据集的图的数量 j变量是更改y数据集的图的数量。通常,我从0到9(含0),而j仅执行一次。

1 个答案:

答案 0 :(得分:0)

我修复了它,发现它与MATLAB非常相似,我需要实现子图来保留我的其他图。现在这段代码可以工作了:

for i in range(num_x):
        curr = usehdr[xcols[i]]

        for j in range(num_y):
            domain = data[:,xcols[i] - 1]
            image  = data[:,ycols[j] - 1]
            plt.subplot(num_x,num_y,i+1)
            plt.plot(domain,image,'.', color = 'black')
            plt.xlabel(curr + ' NN distances (Mpc)')
            plt.ylabel(usehdr[ycols[j]])
            plt.title('D4000_N vs NN distances')

或使用plt.show()进行几个单独的绘图。

for i in range(num_x):
    curr = usehdr[xcols[i]]

    for j in range(num_y):
        domain = data[:,xcols[i] - 1]
        image  = data[:,ycols[j] - 1]
        plt.plot(domain,image,'.', color = 'black')
        plt.xlabel(curr + ' NN distances (Mpc)')
        plt.ylabel(usehdr[ycols[j]])
        plt.title('D4000_N vs NN distances')
        plt.show()