2012-05-26 4 views
8

J'essaie de créer un histogramme basé sur du texte simple en utilisant python mais sans importer de fonctions de traçage telles que matplot ou gnuplot. J'importerai des données d'un fichier csv pour créer cet histogramme.Histogramme sans fonction de traçage

+0

double possible de [histogramme python one-liner] (http://stackoverflow.com/questions/2870466/ python-histogram-one-liner) – bernie

Répondre

12

Que diriez-vous quelque chose comme ça

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) 

qui imprime quelque chose comme ça

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)