我想在如下图所示的单个图中为不同的Pa值创建(T / Tmax vs R / R0)的图。我编写了这段代码,将值附加到列表中,但是(T / Tmax与R / R0)的所有值都附加在单个列表中,这不能给出良好的绘图。我要怎么做才能有这样的情节?另外,我如何从第1列是T / Tmax列表,而第2、3、4列是不同pa的对应R / R0值的循环数据中制作一张excel表格?
KLMDAT1 = []
KLMDAT2 = []
for j in range(z):
pa[j] = 120000-10000*j
i = 0
R = R0
q = 0
T = 0
while (T<Tmax):
k1 = KLM_RKM(i*dT,R,q,pa[j])
k2 = KLM_RKM((i+0.5)*dT,R,q+0.5*dT*k1,pa[j])
k3 = KLM_RKM((i+0.5)*dT,R,q+0.5*dT*k2,pa[j])
k4 = KLM_RKM((i+1)*dT,R,q+dT*k3,pa[j])
q = q +1/6.0*dT*(k1+2*k2+2*k3+k4)
R = R+dT*q
if(R>0):
KLMDAT1.append(T / Tmax)
KLMDAT2.append(R / R0)
if(R>Rmax):
Rmax = R
if (abs(q)>c or R < 0):
break
T=T+dT
i = i+1
wb.save('KLM.xlsx')
np.savetxt('KLM.csv',[KLMDAT1, KLMDAT2])
plt.plot(KLMDAT1, KLMDAT2)
plt.show()
最佳答案
您正在绘制错误。您的第一个变量必须为T / Tmax。因此,初始化一个空的T列表,向其添加T值,将其除以Tmax,然后绘制两次:首先KLMDAT1
,然后KLMDAT2
。以下伪代码解释了它
KLMDAT1 = []
KLMDAT2 = []
T_list = [] # <--- Initialize T list here
for j in range(z):
...
while (T<Tmax):
...
T=T+dT
T_list.append(T) # <--- Append T here
i = i+1
# ... rest of the code
plt.plot(np.array(T_list)/Tmax, KLMDAT1) # <--- Changed here
plt.plot(np.array(T_list)/Tmax, KLMDAT2) # <--- Changed here
plt.show()
关于python - 在Python中为循环创建多个图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58757665/