python - 将带有背景的文本精确定位在 matplotlib 图的一角

标签 python matplotlib plot

我想在多轴图中按字母顺序标记我的图。使用 ax.text 和手动坐标,我可以在单个图形上实现这一点:

ax.text(0.01, 0.96, 
    'A', transform=ax.transAxes, fontweight='bold', va='top', ha='left',
    backgroundcolor='k', color='white')

Working example

我希望黑框与左上角完全匹配。将上面的代码应用到另一个图形上不起作用:

Not working example

有没有办法让文本背景的黑框与轴角完全匹配?

最佳答案

我找到了一种一致的方法,无论图形大小或轴的排列如何,都可以正常工作。对于作为 AxesSubplot 对象的 ax 使用:

ax.annotate(
    'A', 
    (0, 1),
    xytext=(4, -4),
    xycoords='axes fraction',
    textcoords='offset points',
    fontweight='bold',
    color='white',
    backgroundcolor='k',
    ha='left', va='top')

请注意,我的“全局”matplotlib 字体大小设置为 8。如果您使用其他字体大小,您可能必须更改 xytext 值。

关于python - 将带有背景的文本精确定位在 matplotlib 图的一角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49894386/

相关文章:

Matlab。将图例放在图外

python - 如何使用颜色栏中的 z 值生成线性颜色图 (cplot)

r - 带状图中按组的点颜色 (col) 和填充颜色 (bg)

python - Pandas Multiindex 到单列中的月日格式

python - Pygame根据位置重叠 Sprite (绘制顺序)

python - unauthorized_client : Client is unauthorized to retrieve access tokens using this method

python - matplotlib 和 readchar 可以同时工作吗?

python - 如何在 Matplotlib 中选择具有日期时间坐标的点?

python - pandas_ml 更改混淆矩阵图像大小

python - Pandas 面板数据更新