我在這里面臨一個奇怪的問題。
所以我的目的是在一張圖片下面畫一個矩形,文字包裹著這張圖片。
然后我創建了一個新的軸,并將兩個字串放在它的頂部和右側(使用transform=ax_img.transAxes選項)。
然后我使用r = fig.canvas.get_renderer() 和get_window_extent(renderer=r)函式來獲取影像和字串的坐標,并用它畫一個矩形。
from matplotlib import pyplotas plt
from matplotlib.patches import Rectangle
fig, ax = plt.subplots()
flash_pic = plt.imread("./statics/images/flash_decrease.png"/span>)
ax_img = fig.add_axes([0.3,0.3,0。 1,0.1], aspect='equal')
ax_img.imshow(flash_pic)
str_up = "這就是"。
str_right = "一個隨機字串"。
text_up = ax_img.text(0, 1.1, str_up, fontsize=14, transform=ax_img.transAxes)
text_right = ax_img.text(1.1, 0, str_right, fontsize=14, transform=ax_img.transAxes)
r = fig.canvas.get_renderer()
x0 = text_up.get_window_extent(renderer=r).transformed(ax_img.transAxes.inverted() ).x0
x1 = text_right.get_window_extent(renderer=r).transformed(ax_img.transAxes.inverted()).x1
y0 = text_right.get_window_extent(renderer=r).transformed(ax_img.transAxes.inverted() ).y0
y1 = text_up.get_window_extent(renderer=r).transformed(ax_img.transAxes.inverted() ).y1
寬度 = x1 - x0
高度 = y1 - y0
rect = ax.add_patch(Rectangle((x0, y0), width, height, transform=ax_img.transAxes, color='red'/span>)
plt.show()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/328926.html
標籤:

