Вывести ось Y на гистограмму и использовать функцию dict в качестве входных данных - PullRequest
0 голосов
/ 24 июня 2011

Как я могу использовать dict из другой функции в качестве входного аргумента для histo ниже и пометить ось y значениями dict (в дополнение к оси x)?Или есть более простая альтернатива этому коду?

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 Ответ

1 голос
/ 24 июня 2011

На вашем месте я бы просто нарисовал гистограмму с pylab .

import pylab

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

И вместо того, чтобы передавать диктат, просто передайте необработанный список значений. Ось Y будет вычислена автоматически.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...