在直方图上打印y轴并使用dict函数作为输入

时间:2011-06-24 02:38:25

标签: python label

如何使用另一个函数的dict作为下面的histo的输入参数,并用dict值(除了x轴)标记y轴?或者是否有更简单的替代代码?

def histo(his_dict = {1:1, 2:10, 3:10, 4:6, 5:5, 6:4, 7:2, 8:1} ):


    x_max = max(his_dict.keys()) + 2 #get maximum value of x
    y_max = max(his_dict.values()) + 2 #get minimum value of y
    # print line per line
    print ('^')
    for j in range(y_max, 0, -1):
        s = '|'
        for i in range(1, x_max): 
            if i in his_dict.keys() and his_dict[i] >= j:
                s += '*'
            else:
                s += '   '
        print (s)
    # print x axis
    s = '+'
    for i in range(1, x_max):
        s += '---' 
    s += '>'
    print (s)      

    # print indexes
    s = ' '
    for i in range(1, x_max): 
        s += ' %d ' % i
    print (s)

histo()

1 个答案:

答案 0 :(得分:1)

如果我是你,我会用pylab绘制直方图。

import pylab

pylab.hist([1,1,1,2,2,3])
pylab.show()

而不是传递一个字典,只需传递一个原始的值列表。 y轴将自动计算。