def plotDepthHeterogenocity(): dpi = 300 sns.set_style("whitegrid", {"grid.color": "0.9", 'axes.linewidth': .5, "grid.linewidth": ".09"}) _, ax = plt.subplots(2, 2, sharex=True, figsize=(6, 4), dpi=dpi) d = pd.read_pickle(utl.outpath + 'real/CD.F59.df').xs('D', level='READ', axis=1) std = d.std(1) loc = [std.idxmax(), (std == std.quantile(0.52)).replace({False: None}).dropna().index[0], (std == std.median()).replace({False: None}).dropna().index[-1], (std == std.quantile(0.8)).replace({False: None}).dropna().index[0]] ax = ax.reshape(-1) fontsize = 6 for i, pos in enumerate(loc): eg = d.loc[pos] [eg[r].dropna().plot(marker='o', ax=ax[i], markersize=5) for r in range(3)]; plt.xticks(d.columns.get_level_values('GEN').unique()); plt.xlabel(''); plt.ylabel('') print 'position={}:{}'.format(eg.name[0], eg.name[1]), get_axis_limits() if i in [0, 2]: ax[i].set_ylabel('Read Depth') if i > 1: ax[i].set_xlabel('Generation') if i == 0: ax[i].legend(['Replicate 1', 'Replicate 2', 'Replicate 3'], loc='upper center', prop={'size': fontsize}) yrang = pplt.get_axis_limits(upper=True, ax=ax[i])[1] - pplt.get_axis_limits(upper=False, ax=ax[i])[1] ax[i].set_ylim([min(0, ax[i].get_ylim()[0] - 0.05 * yrang), ax[i].get_ylim()[1] + 0.03 * yrang]) ax[i].set_xlim([-2, 61]); ax[i].set_title('{}:{}'.format(eg.name[0], eg.name[1])) pplt.setSize(ax[i], fontsize) mpl.rc('font', **{'family': 'serif', 'serif': ['Computer Modern']}); mpl.rc('text', usetex=True) plt.gcf().subplots_adjust(bottom=0.15) pplt.savefig('depthHetero', dpi) plt.show()