python - 在 Python for 循环中创建多个图
问题描述
我想在单个图中为不同的 Pa 值创建一个(T/Tmax vs R/R0)图,如下所示。我已经编写了将值附加到列表的代码,但是 (T/Tmax vs R/R0) 的所有值都附加在单个列表中,这并没有给出好的图。我该怎么做才能有这样的情节?另外,如何从第 1 列是 T/Tmax 列表和第 2、3、4 列的循环中的数据制作 excel 表......是不同 pa 的相应 R/R0 值?
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()
推荐阅读
- html - ngclass 不适用
- sql - 如何根据oracle中的事件类型和时间戳配对两行
- python - 我有一个代码可以检测输入的句子是否是回文。但我想让它大写和小写都不重要
- powerbi-embedded - PowerBI-JavaScript:如何以编程方式清除连接的视觉对象触发的过滤?
- spring - 奇怪的行为 Spring boot 2.2.9,在响应反序列化期间 parentId 被复制到子 Id 之一
- html - 居中 CSS 网格布局卡片
- java - 在 bash 中将 .war 文件部署到 tomcat
- c# - 从名称 C# Windows 窗体中获取文本框数据
- python - 在Django中查询外键的反向关系
- kdb - q 和 kh 中的 NULL