python - font - Dimensiones del texto Matplotlib
plot title font size matplotlib (2)
No pude encontrar una forma de obtener las extensiones de texto como representadas en un diagrama, incluso después de un evento draw ().
Pero aquí hay una forma de representar solo el texto y obtener todo tipo de información geométrica de él:
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 tiempo y tengo una inconsistencia que no puedo descifrar. Tal vez alguien más puede ayudar. La escala parece estar apagada y no sé si es un problema de dpi o un error o qué, pero este ejemplo explica bastante:
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()
¿Es posible determinar las dimensiones de un objeto de texto matplotlib? ¿Cómo puedo encontrar el ancho y alto en píxeles?
Gracias
Editar : Creo que descubrí una manera de hacer esto. He incluido un ejemplo a continuación.
import matplotlib as plt
f = plt.figure()
r = f.canvas.get_renderer()
t = plt.text(0.5, 0.5, ''test'')
bb = t.get_window_extent(renderer=r)
width = bb.width
height = bb.height
import matplotlib as plt
f = plt.figure()
r = f.canvas.get_renderer()
t = plt.text(0.5, 0.5, ''test'')
bb = t.get_window_extent(renderer=r)
width = bb.width
height = bb.height