我试图通过以下方式使轴文本对象居中:
我已经看到了在绘制如下字符串后如何获得x坐标(边界)的示例:
import matplotlib as plt
f = plt.figure()
r = f.canvas.get_renderer()
t = plt.text(0, 0, 'test')
bb = t.get_window_extent(renderer=r)
width = bb.width
但是,我想在绘图之前知道字符串的宽度(以轴坐标表示),这样我就可以预测要进行的调整。在
我尝试了以下操作,但它没有返回正确的轴坐标,我认为可能需要进行转换:
^{pr2}$下面是一个要使用的示例(最后3行显示了我要做的):
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
%matplotlib inline
prf=[60,70,65,83,77,70,71]
figsize=3.5,4
fig, ax = plt.subplots(1, 1, figsize = figsize, dpi=300)
ind=np.arange(len(prf))
p=ax.bar(ind,prf,color=colrs,edgecolor='none')
t = matplotlib.textpath.TextPath((0,0), 'test', size=9)
bb = t.get_extents()
w = bb.width
center=len(ind)/2
xposition=center-w/2
ax.text(xposition,110,'test',size=9)
这个问题是this帖子的后续内容。在
我知道我可以使用ha='center',但这实际上是用于更复杂的文本(多色),它没有提供该选项。在
提前谢谢!在
可以创建文本对象,获取其边界框,然后再次删除文本。您可以将边界框转换为数据坐标(我假设您指的是数据坐标,而不是问题中的轴坐标),然后使用这些坐标创建左对齐文本。在
相关问题 更多 >
编程相关推荐