no pude encontrar una manera de conseguir la extensión de texto como prestados en una parcela incluso después de un evento draw().
Pero aquí es una manera de hacer que sólo el texto y obtener todo tipo de información geométrica de ella:
t = matplotlib.textpath.TextPath((0,0), 'hello', size=9, prop='WingDings')
bb = t.get_extents()
#bb:
#Bbox(array([[ 0.759375 , 0.8915625],
# [ 30.4425 , 5.6109375]]))
w = bb.width #29.683125
h = bb.height #4.7193749
Editar
He estado jugando con esto por un poco y tengo una incoherencia que no puedo descifrar. Tal vez alguien más puede ayudar. La escala parece fuera y no sé si es un problema ppp o un fallo, o qué, pero este ejemplo explica más o menos:
import matplotlib
from matplotlib import pyplot as plt
plt.cla()
p = plt.plot([0,10],[0,10])
#ffam = 'comic sans ms'
#ffam = 'times new roman'
ffam = 'impact'
fp = matplotlib.font_manager.FontProperties(
family=ffam, style='normal', size=30,
weight='normal', stretch='normal')
txt = 'The quick brown fox'
plt.text(100, 100, txt, fontproperties=fp, transform=None)
pth = matplotlib.textpath.TextPath((100,100), txt, prop=fp)
bb = pth.get_extents()
# why do I need the /0.9 here??
rec = matplotlib.patches.Rectangle(
(bb.x0, bb.y0), bb.width/0.9, bb.height/0.9, transform=None)
plt.gca().add_artist(rec)
plt.show()
¿Quiere decir '' t = plt.text (0,5, 0,5 , 'prueba') '' – nedim
¿Por qué no agrega esto como respuesta? Lo probé, devuelve resultados consistentes aunque no sé cómo verificar su precisión – nedim
Esta es probablemente la información más rápida que he visto sobre MatPlotLib. ¡Gracias, maldito sea Dios! –