首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ax.text,matplotlib相对于轴定位字体

使用ax.text,matplotlib相对于轴定位字体
EN

Stack Overflow用户
提问于 2020-07-12 09:44:42
回答 1查看 1.5K关注 0票数 1

我不确定如何使用matplotlib正确定位相对于轴对象的字体。

示例:

代码语言:javascript
复制
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(10, 4), dpi=100)
x = [1, 2]
y = [3, 4]

y_loc = 4.1
x_loc = 0.95
fs = 12
ax = axes[0]
ax.plot(x, y)
_ = ax.text(x=x_loc, y=y_loc, s="Plot 1", fontsize=fs)

ax = axes[1]
ax.plot(x, y)
_ = ax.text(x=x_loc, y=y_loc, s="Plot 2", fontsize=fs)

ax = axes[2]
_ = ax.plot(x, y)
_ = ax.text(x=x_loc, y=y_loc, s="Plot 3", fontsize=fs)

这就给出了:

值的使用:

代码语言:javascript
复制
y_loc = 4.1
x_loc = 0.95

这让我觉得应该有更好的方法来解决这个问题。

注意-我想在这里使用ax.text,而不是title,问题主要是关于如何最好地相对于子图中的特定轴定位文本。理想情况下,如果它只是相对于特定的轴,它也会扩展到网格图。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-12 18:53:04

默认情况下,ax.text使用"data coordinates",即使用x和y,如轴的刻度所示。要相对于由轴定义的矩形进行打印,请使用transform=ax.transAxes。这里,0,0将是左下角的点,1,1将是右上角的点。(这种坐标在positioning a legend时也非常有用。)

代码语言:javascript
复制
from matplotlib import pyplot as plt
import numpy as np

fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(10, 4), dpi=100)

for ind, ax in enumerate(axes):
    ax.plot(np.random.randint(0, 10, 2), np.random.randint(0, 10, 2))
    ax.text(x=0, y=1.05, s=f"Plot {ind+1}", fontsize=12, transform=ax.transAxes)
plt.show()

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62856272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档