C
Cathy James
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 >= 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
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 >= 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