在Matplotlib中,我可以使用以下命令轻松将标题左对齐:ax.set_title(f"Title", ha='left', x=-0) 我得到: 但有时我想把标题对齐到左侧标签的位置,得到像这样的东西: 我通常通过试错来完成。最终我会得到任意的x偏移量,例如: ax.set_title(f"Title", ha='left', x=-.12) 我如何自动计算这个-.12的偏移量?
使用转换(参见转换教程),您可以找到标签边界框左侧位置的坐标,并将其转换为轴坐标系,然后传递给set_title()函数。fig, ax = plt.subplots() fig.canvas.draw() bbox = ax.get_yticklabels()[-1].get_window_extent() x,_ = ax.transAxes.inverted().transform([bbox.x0, bbox.y0]) ax.set_title('A title aligned with the y-axis labels', ha='left', x=x)
ax = sns.load_dataset('iris').plot.line();bbox = ax.get_yticklabels()[0].get_window_extent();x, _ = ax.transAxes.inverted().transform([bbox.x0, bbox.y0]);ax.set_title("My test", x=x, ha='left')
- nevesfig.canvas.draw()
这行代码后,上面的代码才能正常工作。我不明白。 - neves