def clean_axis(ax): """Remove ticks, tick labels, and frame from axis""" ax.get_xaxis().set_ticks([]) ax.get_yaxis().set_ticks([]) ax.set_axis_bgcolor('#ffffff') for sp in ax.spines.values(): sp.set_visible(False)
def plot_gene_class(family_maps, outfname, can_siz): """Main plotting function """ maps=sorted(family_maps.keys()) nmaps=len(maps)+1 fig=plt.figure(figsize=(6,can_siz)) fig.subplots_adjust(top=0.91, bottom=0.3, left=0.4, right=0.9) # setting plotting structure color_code=['blue', 'green', 'grey'] for i,m in enumerate(maps): dis_nam=re.sub(r'_', r' ', m) gcnt=0 # n for keys in ['dif_exp', 'mod_exp', 'not_exp']: try:cnt=family_maps[m][keys] except:cnt=0 gcnt+=cnt xq, previous=[0], 0.0 for keys in ['dif_exp', 'mod_exp', 'not_exp']: try:element=family_maps[m][keys] except:element=0 xq.append(round(element/gcnt, 2)+previous) previous=xq[-1] ax=plt.subplot(nmaps, 1, i+1) plt.axis("off") cmap = mpl.colors.ListedColormap(color_code) cmap.set_over('0.15') cmap.set_under('0.75') norm = mpl.colors.BoundaryNorm(xq, cmap.N) cb2=mpl.colorbar.ColorbarBase(ax, cmap=cmap, norm=norm, orientation='horizontal', spacing='proportional', boundaries=xq) pos=list(ax.get_position().bounds) fig.text(pos[0] - 0.01, pos[1], dis_nam, fontsize=9, horizontalalignment='right') fig.text(0.91, pos[1], str(gcnt), fontsize=9, horizontalalignment='left') if m==maps[-1]: ax=plt.subplot(nmaps, 1, i+2) ax.patch.set_visible(False) for sp in ax.spines.itervalues(): sp.set_visible(False) ax.spines["bottom"].set_visible(True) ax.yaxis.set_visible(False) ax.xaxis.set_ticks_position('bottom') for tick in ax.xaxis.get_major_ticks(): tick.label.set_fontsize(9) blue_proxy=plt.Rectangle((0, 0), 0.1, 0.1, fc="blue") green_proxy = plt.Rectangle((0, 0), 0.1, 0.1, fc="green") grey_proxy = plt.Rectangle((0, 0), 0.1, 0.1, fc="grey") plt.legend([blue_proxy, green_proxy, grey_proxy],['diff. expressed', 'expressed', 'not expressed'], bbox_to_anchor = (0.75, -1.5), prop={'size':9}) plt.savefig(outfname, format='svg')
def plot_gene_class(family_maps, outfname, can_siz): """Main plotting function """ maps = sorted(family_maps.keys()) nmaps = len(maps) + 1 fig = plt.figure(figsize=(6, can_siz)) fig.subplots_adjust(top=0.91, bottom=0.3, left=0.4, right=0.9) # setting plotting structure color_code = ['blue', 'green', 'grey'] for i, m in enumerate(maps): dis_nam = re.sub(r'_', r' ', m) gcnt = 0 # n for keys in ['dif_exp', 'mod_exp', 'not_exp']: try: cnt = family_maps[m][keys] except: cnt = 0 gcnt += cnt xq, previous = [0], 0.0 for keys in ['dif_exp', 'mod_exp', 'not_exp']: try: element = family_maps[m][keys] except: element = 0 xq.append(round(element / gcnt, 2) + previous) previous = xq[-1] ax = plt.subplot(nmaps, 1, i + 1) plt.axis("off") cmap = mpl.colors.ListedColormap(color_code) cmap.set_over('0.15') cmap.set_under('0.75') norm = mpl.colors.BoundaryNorm(xq, cmap.N) cb2 = mpl.colorbar.ColorbarBase(ax, cmap=cmap, norm=norm, orientation='horizontal', spacing='proportional', boundaries=xq) pos = list(ax.get_position().bounds) fig.text(pos[0] - 0.01, pos[1], dis_nam, fontsize=9, horizontalalignment='right') fig.text(0.91, pos[1], str(gcnt), fontsize=9, horizontalalignment='left') if m == maps[-1]: ax = plt.subplot(nmaps, 1, i + 2) ax.patch.set_visible(False) for sp in ax.spines.itervalues(): sp.set_visible(False) ax.spines["bottom"].set_visible(True) ax.yaxis.set_visible(False) ax.xaxis.set_ticks_position('bottom') for tick in ax.xaxis.get_major_ticks(): tick.label.set_fontsize(9) blue_proxy = plt.Rectangle((0, 0), 0.1, 0.1, fc="blue") green_proxy = plt.Rectangle((0, 0), 0.1, 0.1, fc="green") grey_proxy = plt.Rectangle((0, 0), 0.1, 0.1, fc="grey") plt.legend([blue_proxy, green_proxy, grey_proxy], ['diff. expressed', 'expressed', 'not expressed'], bbox_to_anchor=(0.75, -1.5), prop={'size': 9}) plt.savefig(outfname, format='svg')
def make_patch_spines_invisible(ax): ax.set_frame_on(True) ax.patch.set_visible(False) for sp in ax.spines.values(): sp.set_visible(False)