我试图在matplotlib中插入一个png图像图(参考)
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.figure import Figure
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
ax = plt.subplot(111)
ax.plot(
[1, 2, 3], [1, 2, 3],
'go-',
label='line 1',
linewidth=2
)
arr_img = plt.imread("stinkbug.png")
im = OffsetImage(arr_img)
ab = AnnotationBbox(im, (1, 0), xycoords='axes fraction')
ax.add_artist(ab)
plt.show()
插图:
获得的输出:
我想知道如何调整必须插入的图像的大小以避免重叠。
标签:Save the Figure
ax.figure.savefig("output.svg", transparent=True, dpi=600, bbox_inches="tight")
1条答案
按热度按时间gblwokeq1#
您可以缩放图像,并将框对齐设置为右下角(0,1)加上一些额外的边距:
你也可以使用数据坐标,这是默认的,并使用默认的box_alignment到中心,例如
ab = AnnotationBbox(im, (2.6, 1.45))
。有关各种坐标选项的更多信息,请参阅xycoords参数文档。