我正在为CFD模拟的输出数据创建直方图。
由于输出变量不止一个,我想循环包含输出变量的列表,并为输出变量的每个直方图创建单独的数字。
以下是我目前工作的示例代码:
import numpy as np
import matplotlib.pyplot as plt
import os
# set default directory and import data
path="C:/Users/Pacman/Data files"
os.chdir(path)
data =np.genfromtxt('MCS_10000cases_Sc_B.txt')
#Create output vectors
Power=data[:,][:,9]
Per_Lk=data[:,][:,10]
VFR_Fan=data[:,][:,11]
VFR_MF=data[:,][:,13]
TP=data[:,][:,14]
#Plotting histgram
numbins=40
var=['Power','Per_Lk','VFR_Fan','VFR_MF','TP']
for i in var:
plt.hist(i,numbins,color='g')
plt.figure()
plt.show()
当我运行上面显示的代码时,它给出了一个很长的错误,以下面的语句结束:
TypeError:未确定对象的len()
当我尝试在没有循环的情况下逐个绘制直方图时,它可以正常工作。我已经尝试查找错误并实施一些修复,但它没有帮助。
任何有关修复的想法都将受到高度赞赏。
答案 0 :(得分:3)
尝试使用此代码:
var = {'Power': data[:,][:,9],
'Per_Lk': data[:,][:,10],
'VFR_Fan': data[:,][:,11],
'VFR_MF': data[:,][:,13],
'TP': =data[:,][:,14],
}
numbins = 40
for i in var:
plt.hist(var[i], numbins, color='g')
plt.figure()
plt.show()