如何使用另一个函数的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()
答案 0 :(得分:1)
如果我是你,我会用pylab绘制直方图。
import pylab
pylab.hist([1,1,1,2,2,3])
pylab.show()
而不是传递一个字典,只需传递一个原始的值列表。 y轴将自动计算。