【发布时间】:2013-09-14 04:40:16
【问题描述】:
我想知道是否可以“缩放”要绘制到绘图范围内的图像输入。 更清楚地说,这就是我需要的:
我有一个 400 * 400 的图像,它是基于间隔为 -1..1 的函数生成的。所以,我做了一个翻译来保存这些数据,像这样:
x = Utils.translate(pos_x, 0, self.width, -1, 1)
y = Utils.translate(pos_y, 0, self.height, -1, 1)
data = Utils.map_position_to_function(x, y)
即,首先我将其位置映射到我的范围,然后根据这个“新位置”计算 de f(x, y) 并保存数据。
问题是,后来,我必须在函数范围内表示图像轮廓。 所以,我有一个图像,400 * 400,我必须在一个范围为 -1..1 的图中表示。
这很好用:
import pylab as plt
im = plt.array(Image.open('Mean.png').convert('L'))
plt.figure()
plt.contour(im, origin='image')
plt.axis('equal')
但我找不到让 x/y 轴在 -1..1 范围内的方法
我试过了:
row = np.linspace(-1,1,0.25)
X,Y = np.meshgrid(row,row)
Z = plt.array(Image.open('Mean.png').convert('L'))
plt.contour(X,Y,Z)
但它不起作用,不起作用是有意义的,但我不知道我该怎么做我想要的。我有关于这张图片中数据的信息,所以我也尝试做类似这两种方法的事情:
# 1
plt.figure()
row = np.linspace(-1,1,0.25)
X,Y = np.meshgrid(row,row)
Z = ImageMedia[Utils.translate(X, 400, 400, -1, 1), Utils.translate(Y, 400, 400, -1, 1)]
plt.contour(X,Y,Z)
# 2
im = plt.array(Image.open('Mean.png').convert('L'))
plt.figure()
plt.contour(im, origin='image')
v = [-1, 1, -1, 1]
plt.axis(v)
这也不起作用。
任何帮助将不胜感激。 谢谢。
【问题讨论】:
-
你用错了linspace,是
linspace(min, max, number_of_steps) -
谢谢。我不知道。 (:
标签: python matplotlib axis