在Python Matplotlib中让X轴标签向右对齐并且向右稍微移动一些距离
在Matplotlib中画图时,当x轴标签很长时,我们通常会使用rotation对标签进行倾斜显示。但是这个时候有些标签(长度过长的,例如很长的单词)会重叠。这个时候我们会使用ha
参数来让标签向左或者向右对齐。但是对齐的标签过于偏离x tick的位置,如下图所示。
如何让向右对齐的标签再次向右移动呢?
请看如下代码:
# 引入包
import matplotlib.pyplot as plt
import matplotlib.transforms as mtransforms
# 其他画图代码
# ......
labels = ax.get_xticklabels() # 获取标签
shift = 5 # 定义向右移动的距离
# 使用mstransforms设置标签的位置
for label in labels:
offset = mtransforms.ScaledTranslation(shift/72, 0, plt.gcf().dpi_scale_trans)
label.set_transform(label.get_transform() + offset)
# 其他画图代码
# ......
效果如下: