Pylab.bar绘制了精神

时间:2011-08-08 17:28:19

标签: python matplotlib

我一直在整理这个策划计划。它从一组文件中删除数字,进行一些数学运算,然后绘制条形图以显示数字如何变化。

据我所知,程序的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()"

1 个答案:

答案 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()