在我的代码中,我有多个要自动化的绘图,我使用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仅执行一次。
答案 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()