即使在draw()事件之後,我也無法找到獲取文本擴展盤區的情況。
但這裏是從它呈現只是文本,並獲得各種幾何信息的方式:
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
編輯
我一直在玩這個了一下,我有一個不一致我不明白。也許別人可以幫忙。規模顯得過,我不知道這是否是一個DPI的問題或錯誤或什麼,但這個例子相當多解釋說:
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()
你的意思''T = plt.text(0.5,0.5 ,'test')'' – nedim 2015-07-16 10:27:12
你爲什麼不加這個作爲答案?我試過了,雖然我不知道如何驗證其準確性,但它會返回一致的結果 – nedim 2015-07-17 09:07:55
這可能是我見過的關於MatPlotLib的最省時的信息。謝謝你,上帝該死的太多了! – 2016-04-01 13:27:57