我一直在整理这个策划计划。它从一组文件中删除数字,进行一些数学运算,然后绘制条形图以显示数字如何变化。
据我所知,程序的pylab.bar()部分无法正确获取计算数据并使用它。该程序一直要求将高度设置为某个数字或标量。我认为问题是当我开始将事物转换为字符串时,但我不确定。任何建议或帮助都会很棒!
import glob
import numpy
from numpy import *
import pylab
from pylab import *
lable = "c 1n0 an1 an2 an3 an4".split()
fnam = "Cmos*.csv"
opfnam = glob.glob(fnam)
for s in opfnam:
words = s.strip().split("[]")
a = open(words[0], "r").readlines()
b = str(a).split(',')
simp = str(b).translate(None, """'()["n]""")
t = simp.split(',')
c = t[2]
an0 = t[3]
an1 = t[4]
an2 = t[5]
an3 = t[6]
an4 = t[7]
tie = t[0]+t[1]
data = c,an0, an1, an2, an3, an4
print data
y = (-1,0,1,2,3,4)
bar(y, data, width = .75 )
show()"
答案 0 :(得分:1)
我认为你是对的,它与你的数据仍然是字符串格式有关。这是您的程序的条纹版本:
import pylab
from pylab import *
simp = "11,22,1,.5,.75,1,1.2,.9"
t = [float(val) for val in simp.split(',')]
c = t[2]
an0 = t[3]
an1 = t[4]
an2 = t[5]
an3 = t[6]
an4 = t[7]
tie = t[0]+t[1]
data = c,an0, an1, an2, an3, an4
print data
y = (-1,0,1,2,3,4)
bar(y, data, width = .75 )
show()
我将simp
设置为以逗号分隔的随机值列表;我猜你解析文件的每一行后就是simp
。请注意,在将列表分配给float()
之前,我已使用列表推导将拆分列表的每个值转换为t
值。如果您想使t
成为整数列表,请在int()
的位置使用float()
。