我不确定如何使用matplotlib相对于轴对象正确放置字体。
例:
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)
这使:
值的使用:
y_loc = 4.1
x_loc = 0.95
让我认为应该有一个更好的方法。
注意-我不想ax.text
在这里使用,title
问题主要是关于如何最好地相对于子图中的特定轴放置文本。理想情况下,如果它只是相对于特定轴,则也可以扩展到网格图。
默认情况下,ax.text
使用“数据坐标”,即x和y,如轴的刻度所示。要相对于轴定义的矩形进行绘制,请使用transform=ax.transAxes
。这0,0
是左下角1,1
的点,右上角的点。(定位图例时,这种坐标也非常有用。)
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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句