Exemplo n.º 1
0
from evilplot import Plot, Points, RawData

MAX_BAR_SAMPLES = 40
MAX_SAMPLES = 500

parser = optparse.OptionParser()
parser.add_option('--print', dest='print_page', action='store_true',
        help='Send to the printer')
opts, args = parser.parse_args()

if not args:
    parser.error('Log file not specified.')

plot = Plot()
plot.ylogscale = 10
plot.xlabel = 'Function Evaluations'
plot.ylabel = 'Best Function Value'

for filename in args:
    data = PSOData(open(filename))
    trim = int(len(data) / 10)
    points = []
    bars = []
    iterations = len(data[0])
    samples_step = int(math.ceil(iterations / MAX_SAMPLES))
    bar_samples_step = int(math.ceil(iterations / MAX_BAR_SAMPLES))
    for iteration in islice(data[0], 0, None, samples_step):
        points.append((iteration, data.average(iteration)))
    for iteration in islice(data[0], 0, None, bar_samples_step):
        low, med, high = data.statistics(iteration, trim)
        bars.append((iteration, med, low, high))