You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何调整Matplotlib色条(Colorbar)刻度标签的垂直对齐方式

解决Matplotlib Colorbar刻度标签垂直对齐问题
  • 问题根因:你遇到的这个情况是Matplotlib在旋转刻度标签时,默认给不同位置的标签设置了不一致的垂直对齐规则,导致底部和中间的标签和顶部显示不对齐。
  • 解决方案:在设置yticklabels时,显式指定垂直对齐方式为顶部(va='top',强制所有标签遵循统一的对齐基准。

修改后的完整代码如下:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable

ax = plt.subplot(111)
data = np.random.uniform(0., 10., (50, 50))
im = plt.imshow(data)

# Colorbar on the right side of ax.
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="2%", pad=0.05)
cbar = plt.colorbar(im, cax=cax)

cbar.set_ticks([np.min(data), np.ptp(data) * .5, np.max(data)])
print(np.min(data), np.ptp(data) * .5, np.max(data))

# 添加va='top'参数统一垂直对齐方式
cbar.ax.set_yticklabels(
    ['{:.1E}'.format(0.00000133), '{:.1E}'.format(0.00000561), '{:.1E}'.format(0.0000948)],
    rotation=90,
    va='top'
)

plt.show()
  • 效果说明:加上va='top'后,三个刻度标签都会以顶部为基准垂直对齐,和最上方的标签显示效果完全一致,整个colorbar的视觉呈现会更规整美观。

内容的提问来源于stack exchange,提问作者Gabriel

火山引擎 最新活动