matplotlib热图的中心对齐刻度标签

 fdsfdsfsfsfsfsfsfsfsafsf 发布于 2023-01-15 12:59

我已经用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)

有人可以帮我找到错误吗?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有