2011-06-24 11 views
0

如何將其他函數的字典用作下面的組織的輸入參數,並用字典值(除x軸之外)標記y軸?還是有更簡單的替代這個代碼呢?在直方圖上打印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

你似乎在假設有人知道你的函數應該做什麼,「his_dict」是什麼意思,以及你的軸標籤指的是什麼。嘗試解釋更多你實際要做的事情。 – dkamins

回答

1

如果我是你,我只需繪製直方圖pylab

import pylab 

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

而不是傳遞一個字典,只是通過一個原始值的列表。 y軸將自動計算。

+0

感謝您的回覆。我從來沒有嘗試過Pylab,但我會研究這個。我仍然想知道如何使用字典,但如果任何人有想法... – python4gis