| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/usr/bin/env python
- import numpy as np
- import matplotlib.pyplot as plt
- process_data = [
- {'cargaTick': 3, 'primerTick': 4, 'ticksBlock': 9, 'ticksCpu': 11, 'ultimoTick': 24},
- {'cargaTick': 5, 'primerTick': 25, 'ticksBlock': 11, 'ticksCpu': 5, 'ultimoTick': 41},
- {'cargaTick': 5, 'primerTick': 42, 'ticksBlock': 12, 'ticksCpu': 5, 'ultimoTick': 59}
- ]
- fig, ax = plt.subplots(figsize=(10,5))
- index = list(range(len(process_data)))
- bar_width = 0.25
- opacity = 0.9
- error_config = {'ecolor': '0.3'}
- def latency(p):
- return p["primerTick"]-p["cargaTick"]
- def ready(p):
- return (p["ultimoTick"]-p["primerTick"])-(p["ticksBlock"]+p["ticksCpu"])+(p["primerTick"]-p["cargaTick"])
- def cpu(p):
- return p["ticksCpu"]
- def cpu_io(p):
- return p["ticksBlock"]+p["ticksCpu"]
- def plot_data(ind, data, color, label):
- plt.bar([i + bar_width*ind for i in index],
- data,
- bar_width,
- alpha=opacity,
- color=color,
- error_kw=error_config,
- label=(label))
- plot_data(0,[latency(p) for p in process_data], 'r', 'Latency')
- plot_data(1,[ready(p) for p in process_data], 'g', 'Ready')
- plot_data(2,[cpu(p) for p in process_data], 'b', 'CPU')
- plot_data(3,[cpu_io(p) for p in process_data], '#fafafa', 'CPU+IO')
- ax.set_ylabel('Time')
- ax.set_title('title')
- ax.set_xticks([ i + 1.5 * bar_width for i in index])
- ax.set_xticklabels(["Process %d" % i for i in xrange(len(process_data))])
- plt.legend()
- plt.tight_layout()
- plt.grid()
- plt.show()
|