2012-05-26 10 views
8

Próbuję utworzyć prosty histogram tekstowy przy użyciu Pythona, ale bez importowania żadnych funkcji drukowania, takich jak matplot lub gnuplot. Będę importować dane z pliku csv, aby utworzyć ten histogram.Histogram bez funkcji wykreślania

+0

możliwym duplikatu [python histogram jedno-liner] (http://stackoverflow.com/questions/2870466/ python-histogram-one-liner) – bernie

Odpowiedz

12

Jak o coś takiego

import random 

def plot(data): 
    """ 
    Histogram data to stdout 
    """ 
    largest = max(data) 
    scale = 50./largest 
    for i, datum in enumerate(data): 
     bar = "*" * int(datum * scale) 
     print "%2d: %s (%d)" % (i, bar, datum) 

data = [ random.randrange(100) for _ in range(20) ] 
plot(data) 

która drukuje coś takiego

0: ************************ (48) 
1: ************************************************** (99) 
2: *********************************** (71) 
3: ******************************************** (88) 
4: ********** (21) 
5: ************************************* (74) 
6: ********************************* (67) 
7: *************************** (54) 
8: ************************************************* (98) 
9: *************** (31) 
10: *********** (23) 
11: ****************************** (61) 
12: ********** (20) 
13: **************** (33) 
14: **** (8) 
15: **************************** (57) 
16: ***************************** (59) 
17: (1) 
18: ************************ (48) 
19: *** (6)