我已经用imshow绘制了一张热图,但即使我做了,我也无法让x刻度标签居中对齐ha='center'
.
这是我的代码:
font= mpl.rcParams['font.size']=8.0 linelines.linewidth']= 1.0 absolute_max=abs(max_num) absolute_min=abs(min_num) cb_boundary=max(absolute_max,absolute_min) tree=Phylo.read("reorder.nwk","newick") a=1.0 cdict = {'red': ((0.0, 0.0, 0.0), (0.25,0.0, 0.0), (0.5, 0.8, 1.0), (0.75,1.0, 1.0), (1.0, 0.4, 1.0)), 'green': ((0.0, 0.0, 0.0), (0.25,0.0, 0.0), (0.5, 0.9, 0.9), (0.75,0.0, 0.0), (1.0, 0.0, 0.0)), 'blue': ((0.0, 0.0, 0.4), (0.25,1.0, 1.0), (0.5, 1.0, 0.8), (0.75,0.0, 0.0), (1.0, 0.0, 0.0)) } plt.register_cmap(name='BlueRed', data=cdict) norm = mpl.colors.Normalize(vmin=-3.0, vmax=3.0) cmap = plt.get_cmap('BlueRed') masked_array = np.ma.masked_where(full_len==np.NaN,full_len) cmap.set_bad('green',1.0) fig= plt.figure(figsize=(19,10)) rect_phyl = [-0.7, 0.3, 0.2, 0.6] rect_ht = [-0.5,0.3 , 0.3, 0.6] phyl_ax = plt.axes(rect_phyl,frameon=True) ht_ax = plt.axes(rect_ht) ##fig.suptitle(file_handle.replace('_del.csv',''),fontsize=22) phyl_ax.add_patch(Rectangle((8.1,17.6),6.5,16.9,edgecolor="brown", fill=False)) phyl_ax.add_patch(Rectangle((8.1,10.4),6.5,7.0,edgecolor="magenta", fill=False)) phyl_ax.add_patch(Rectangle((8.1,7.6),6.5,2.6,edgecolor="black", fill=False)) phyl_ax.add_patch(Rectangle((8.1,0.3),6.5,6.9,edgecolor="turquoise", fill=False)) fig.subplots_adjust(hspace=0,wspace=0) Phylo.draw(tree, axes=phyl_ax, do_show=False,show_confidence=False) ht_ax.set_xlim(0,34) ht_ax.set_ylim(0,34) phyl_ax.set_xlim(0,15) divider = make_axes_locatable(ht_ax) cbax = divider.append_axes("right", size="5%", pad=0.10) phyl_ax.set(xlabel='',ylabel='') plt.setp(phyl_ax.get_xticklabels(),visible=False) plt.setp(phyl_ax.get_yticklabels(),visible=False) plt.setp(ht_ax.get_xticklabels(),visible=True) plt.setp(ht_ax.get_yticklabels(),visible=False) plt.setp(phyl_ax.get_xticklines(),visible=False) plt.setp(phyl_ax.get_yticklines(),visible=False) plt.setp(ht_ax.get_xticklines(),visible=False) plt.setp(ht_ax.get_yticklines(),visible=False) img = ht_ax.imshow(masked_array, cmap=cmap, interpolation='none',aspect='auto',vmin=-cb_boundary,vmax=cb_boundary,extent=[34,0,34,0],origin='lower') xticks=range(34) ht_ax.xaxis.set_ticks(xticks) ht_ax.yaxis.set_ticks(xticks) ht_ax.grid(True, which='both') ha = ['right', 'center', 'left'] ht_ax.set_xticklabels(txtnames,rotation=45,fontsize=8,ha=ha[1],minor=False) plt.colorbar(img, cax=cbax) heatmap_file=fig.savefig('/home/Desktop/heatmap/'+file_handle.replace('.csv','')+'.pdf',bbox_inches='tight',dpi=150)
有人可以帮我找到错误吗?