Matplotlib X轴标签位置调整:如何将标签移至刻度'0'正下方?
如何将X轴标签“患者数量”移至X轴刻度值“0”的正下方?

修改方案
你可以通过获取绘图的轴对象,手动指定X轴标签的坐标来实现需求。以下是调整后的完整代码,同时将原英文标签翻译成中文:
# 获取轴对象,方便后续调整 ax = n_counts.plot.barh(stacked=True, width=0.7, figsize=(12,8), color=['navy','cornflowerblue']) plt.draw() # 获取当前刻度位置与标签 pos, lab = plt.xticks() # 修改刻度标签(负数转为正数) new_label = [int(x)*-1 if int(x)<0 else int(x) for x in pos] # 设置新刻度标签 plt.xticks(pos, new_label) plt.ylabel('区域', fontsize=13) plt.xlabel('患者数量', fontsize=13) # 将X轴标签移至0刻度正下方(轴坐标系下x=0.5对应中心位置) ax.xaxis.set_label_coords(0.5, -0.05, transform=ax.transAxes) plt.legend(['已就诊', '未就诊'], title='就诊情况') plt.title(' 前20个区域的就诊人数统计', loc='left', fontsize=16);
关键说明
ax.xaxis.set_label_coords(0.5, -0.05, transform=ax.transAxes):transform=ax.transAxes使用轴自身的坐标系(x范围0-1,对应轴的左端到右端;y范围0-1,对应轴的底部到顶部)x=0.5对应X轴的水平中心,也就是刻度“0”的位置y=-0.05控制标签在X轴下方的偏移距离,可根据实际显示效果调整数值(负数表示向下偏移)
内容的提问来源于stack exchange,提问作者Jenn
相关产品推荐
相关产品推荐

