我正在尋找的正是對準(重疊),我的形象的角落邊緣與文本框邊緣的角落和邊緣(BBOX或其他方式)的方式對齊文本框邊緣與圖像的角落
的有問題的代碼是:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1)
ax.imshow(np.random.random((256,256)), cmap=plt.get_cmap("viridis"))
ax.axis("off")
ax.annotate(
s = 'image title',
xy=(0, 0),
xytext=(0, 0),
va='top',
ha='left',
fontsize = 15,
bbox=dict(facecolor='white', alpha=1),
)
plt.show()
正如你所看到的,文本框的邊緣在圖像之外。對於我的生活,我無法找到將文本框的角落與圖像的角落對齊的一致方式。理想情況下,我希望對齊獨立於字體大小和圖像像素大小,但這可能會有點太多。
最後,我想用一個網格圖像實現這一點,就像下面的第二個例子。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8, 8))
images = 4*[np.random.random((256,256))]
gs = gridspec.GridSpec(
nrows=2,
ncols=2,
top=1.,
bottom=0.,
right=1.,
left=0.,
hspace=0.,
wspace=0.,
)
for g, i in zip(gs, range(len(images))):
ax = plt.subplot(g)
im = ax.imshow(
images[i],
cmap=plt.get_cmap("viridis")
)
ax.set_xticks([])
ax.set_yticks([])
ax.annotate(
s = 'image title',
xy=(0, 0),
xytext=(0, 0),
va='top',
ha='left',
fontsize = 15,
bbox=dict(facecolor='white', alpha=1),
)
使用'clip_on = TRUE'作爲參數到'ax.annotate'將剪輯的文本框中的軸限制。也許這有助於(?)。 –