【发布时间】:2020-11-22 08:52:59
【问题描述】:
我正在尝试通过数据坐标系中的给定坐标在图中的特定位置添加图片。然而它的运行有点出乎意料。这是我写的一段代码sn-p:
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(5,5))
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
ax.grid('on')
x = np.arange(0, 1, 0.005)
y = np.exp(-x/2.) * np.sin(2*np.pi*x)
ax.plot(x, y)
im_orange = plt.imread('./test100x100_orange.png')
im_blue = plt.imread('./test100x100_blue.png')
x0, y0 = ax.transData.transform((0,0))
print('transData(0,0) = {}'.format(ax.transData.transform((0,0))))
ax.figure.figimage(im_orange, alpha=0.5)
ax.figure.figimage(im_blue, x0, y0, alpha=0.5)
ax.transData.transform((0,0)) 返回transData(0,0) = [45. 45.],这是出乎意料的,因为它不代表图上 (0,0) 的实际位置。这是结果图像:
我的基本问题是如何将图片左下角精确地放在数据坐标中的 (0,0) 点?如果可能,请解释 matplotlib 的这种行为。
更新。上面有一些实验。我已经在 3 种模式下运行了一个稍微修改过的脚本(下面由 Iammuratc 提供,但使用 plt.savefig() 代替):
- 从 python 控制台(复制和粘贴):
-
Python 脚本(类似于
python test.py: 结果和以前一样。 -
ipython 来自 Jupiter Notebook:
子选项 A:
plt.show()
子选项 B:plt.savefig()
现在更加混乱了..
【问题讨论】:
标签: python image matplotlib