Please Help with vertical histogram

Cathy James nambo4jb at gmail.com
Tue Jul 12 02:42:10 CEST 2011


Please kindly help- i have a project where I need to plot dict results
as a histogram. I just can't get the y- axis to print right.  May
someone please help?  I have pulled my hair for the past two weeks, I
am a few steps ahead, but stuck for now.


def histo(his_dict = {1:16, 2:267, 3:267, 4:169, 5:140, 6:112, 7:99,
8:68, 9:61, 10:56, 11:35, 12:13, 13:9, 14: 7, 15:2}):

    x_max = 17 #get maximum value of x
    y_max = 400 #get minimum value of y
    # print each line
    print ('^')
    for j in range(y_max, 0, -100):# draw

        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 (j)
        # 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()

# I need it to look like this:
400 -|
       |
       |
       |
       |
300 -|
       |
       |   ******
       |   ******
       |   ******
200 -|   ******
       |   ******
       |   *********
       |   ************
       |   ************
100 -|   ***************
       |   ******************
       |   ************************
       |   ***************************
       |*********************************
    0 -+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-
       | 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16



More information about the Python-list mailing list