David преди 10 години
родител
ревизия
bd3c58bce4
променени са 1 файла, в които са добавени 35 реда и са изтрити 29 реда
  1. 35 29
      scripts/plotter.py

+ 35 - 29
scripts/plotter.py

@@ -1,20 +1,30 @@
 #!/usr/bin/env python
+import json
 import numpy as np
 import matplotlib.pyplot as plt
+import sys
 
-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 plot(process_data):
+    fig, ax = plt.subplots(figsize=(10,5))
+    
+    index = list(range(len(process_data)))
+    
+    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()
 
 def latency(p):
     return p["primerTick"]-p["cargaTick"]
@@ -27,28 +37,24 @@ def cpu(p):
 def cpu_io(p):
     return p["ticksBlock"]+p["ticksCpu"]
 
-
 def plot_data(ind, data, color, label):
+    opacity = 0.9
+    index = list(range(len(data)))
     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()
+if sys.stdin.isatty():
+    print("lol")
+    sys.exit(1)
+
+try:
+    data = sys.stdin.read()
+    data = json.loads(data)
+    plot(data)
+except Exception as e:
+    print(data)
+    print(e)