diff --git a/ohmpi/plots.py b/ohmpi/plots.py index 2acf7d65a56971fc02456d827d157d4ed23b6c65..34df534634b8f5530ff4175ff66f1791f136e096 100644 --- a/ohmpi/plots.py +++ b/ohmpi/plots.py @@ -3,7 +3,8 @@ import numpy as np from ohmpi.utils import parse_log 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) print(session) if last_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): names[cat] = np.array(np.unique(name[category == cat])) - fig, axarr = plt.subplots(len(names.keys()),sharex=True) - print(axarr) - if not isinstance(axarr,np.ndarray): - print('no') - axarr = np.array([axarr]) - for i,cat in enumerate(names.keys()): - print(cat) - y=0 - for j,n in enumerate(names[cat]): + fig, ax = plt.subplots(len(names.keys()),sharex=True) + if not isinstance(ax,np.ndarray): + ax = np.array([ax]) + for i, cat in enumerate(names.keys()): + y = 0 + for j, n in enumerate(names[cat]): cmap = matplotlib.cm.get_cmap('tab20') colors = [cmap(c/len(names[cat])) for c in range(len(names[cat]))] - event_ids = np.where((name==n) & (category==cat))[0] - y+=1 - axarr[i].set_title(cat) - label=True - for k,id in enumerate(event_ids[:-1]): - # print(state[event_ids[k]]) + event_ids = np.where((name == n) & (category == cat))[0] + y += 1 + ax[i].set_title(cat) + label = True + for k, id in enumerate(event_ids[:-1]): if state[event_ids[k]] == 'begin' and state[event_ids[k+1]] == 'end': 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 else: - axarr[i].fill_betweenx([y, y + 1], time[event_ids[k]], time[event_ids[k + 1]], color=colors[j]) - ylabels = names[cat] - ylabelpos = np.arange(len(names[cat]))+1.5 + ax[i].fill_betweenx([y, y + 1], time[event_ids[k]], time[event_ids[k + 1]], color=colors[j]) + y_labels = names[cat] + y_label_pos = np.arange(len(names[cat]))+1.5 - axarr[i].set_yticks(ylabelpos) - axarr[i].set_yticklabels(ylabels) - axarr[i].legend() + ax[i].set_yticks(y_label_pos) + ax[i].set_yticklabels(y_labels) + ax[i].legend() plt.show()