我从一篇期刊论文中实现了一个数字模型,并希望使用Python和Matplotlib将我的版本绘制在期刊论文pdf中的图形的屏幕截图上。我在论文pdf中截取了图的屏幕截图,并将其裁剪到边界(x1,y1)和(x2,y2),单位为毫米和牛顿。绘图可以是任何格式(jpg、png等)。
现在,我想在Matplotlib中显示一个绘图区域后面的图像,总图形尺寸从(0,0)到(x3,y3),同样以毫米和牛顿为单位。图像只占用绘图空间的一个子集,并且应该缩放以适合边界(x1,y1)和(x2,y2)定义的框。边界(x1,y1)和(x2,y2)不一定与图像的原始纵横比匹配,因此图像必须在x和y方向上独立缩放以适应。我不希望我的绘图与源图像中绘图的原始纵横比联系在一起。
如何将此图像映射到绘图上的物理空间?
发布于 2014-03-10 21:08:02
基本上,使用extent kwarg to imshow。如果您不希望将纵横比设置为1,则还需要autoscale='auto'。
举个简单的例子:
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
x = np.linspace(2, 8, 100)
y = np.cos(x)
x1, x2 = 3, 5.6
y1, y2 = -2.8, 9.6
im = np.array(Image.open('grace_hopper.jpg'))
fig, ax = plt.subplots()
ax.imshow(im, extent=[x1, x2, y1, y2], aspect='auto', cmap='gray')
ax.plot(x, y)
plt.show()

https://stackoverflow.com/questions/22288166
复制相似问题