Commit 4a640caf authored by Olivier Kaufmann's avatar Olivier Kaufmann
Browse files

Adds plot_exec_log in test

Showing with 20 additions and 23 deletions
+20 -23
...@@ -3,7 +3,8 @@ import numpy as np ...@@ -3,7 +3,8 @@ import numpy as np
from ohmpi.utils import parse_log from ohmpi.utils import parse_log
import matplotlib import matplotlib
def plot_exec_log(exec_log,names=None,last_session=True): #TODO: select session id instead of last session (if -1 : last)
def plot_exec_log(exec_log,names=None,last_session=True): # TODO: select session id instead of last session (if -1 : last)
time, process_id, tag, msg, session = parse_log(exec_log) time, process_id, tag, msg, session = parse_log(exec_log)
print(session) print(session)
if last_session: if last_session:
...@@ -29,34 +30,30 @@ def plot_exec_log(exec_log,names=None,last_session=True): #TODO: select session ...@@ -29,34 +30,30 @@ def plot_exec_log(exec_log,names=None,last_session=True): #TODO: select session
for cat in np.unique(category): for cat in np.unique(category):
names[cat] = np.array(np.unique(name[category == cat])) names[cat] = np.array(np.unique(name[category == cat]))
fig, axarr = plt.subplots(len(names.keys()),sharex=True) fig, ax = plt.subplots(len(names.keys()),sharex=True)
print(axarr) if not isinstance(ax,np.ndarray):
if not isinstance(axarr,np.ndarray): ax = np.array([ax])
print('no') for i, cat in enumerate(names.keys()):
axarr = np.array([axarr]) y = 0
for i,cat in enumerate(names.keys()): for j, n in enumerate(names[cat]):
print(cat)
y=0
for j,n in enumerate(names[cat]):
cmap = matplotlib.cm.get_cmap('tab20') cmap = matplotlib.cm.get_cmap('tab20')
colors = [cmap(c/len(names[cat])) for c in range(len(names[cat]))] colors = [cmap(c/len(names[cat])) for c in range(len(names[cat]))]
event_ids = np.where((name==n) & (category==cat))[0] event_ids = np.where((name == n) & (category == cat))[0]
y+=1 y += 1
axarr[i].set_title(cat) ax[i].set_title(cat)
label=True label = True
for k,id in enumerate(event_ids[:-1]): for k, id in enumerate(event_ids[:-1]):
# print(state[event_ids[k]])
if state[event_ids[k]] == 'begin' and state[event_ids[k+1]] == 'end': if state[event_ids[k]] == 'begin' and state[event_ids[k+1]] == 'end':
if label: if label:
axarr[i].fill_betweenx([y,y+1],time[event_ids[k]],time[event_ids[k+1]],color=colors[j],label=n) ax[i].fill_betweenx([y,y+1],time[event_ids[k]],time[event_ids[k+1]],color=colors[j],label=n)
label=False label=False
else: else:
axarr[i].fill_betweenx([y, y + 1], time[event_ids[k]], time[event_ids[k + 1]], color=colors[j]) ax[i].fill_betweenx([y, y + 1], time[event_ids[k]], time[event_ids[k + 1]], color=colors[j])
ylabels = names[cat] y_labels = names[cat]
ylabelpos = np.arange(len(names[cat]))+1.5 y_label_pos = np.arange(len(names[cat]))+1.5
axarr[i].set_yticks(ylabelpos) ax[i].set_yticks(y_label_pos)
axarr[i].set_yticklabels(ylabels) ax[i].set_yticklabels(y_labels)
axarr[i].legend() ax[i].legend()
plt.show() plt.show()
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment