2012-05-26 24 views
8

Estoy tratando de crear un histograma basado en texto simple utilizando Python pero sin importar ninguna función de trazado como matplot o gnuplot. Estaré importando datos de un archivo csv para crear ese histograma.Histograma sin función de trazado

+0

posible duplicado de [pitón histograma de una sola línea] (http://stackoverflow.com/questions/2870466/ python-histogram-one-liner) – bernie

Respuesta

12

¿Qué tal algo como esto

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) 

que imprime algo como esto

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)