具有离散值的matplotlib中的2D地图

时间:2016-05-10 18:22:32

标签: python matplotlib plot

我目前正在尝试用matplotlib绘制用仪器记录的2d地图。仪器正在移动2个电机(它制作光栅)并记录相关的强度值。 我现在能够绘制数据并将我想要的值与轴相关联,但我想将这些值数字化(制作离散),以便在图像的每个像素处获得电机的相应值。 / p>

我目前正在使用以下代码(在示例中我将使用x和y来定义电机位置):

import pylab as pl
pl.imshow(intensity, extent=(x_min, x_max, y_min, y_max),
          interpolation='none')

代码效果很好但是如果我用光标选择我的绘图中的一个像素,它会返回带有多个数字的连续值(如图所示)。

example_map

是否可以通过将光标定位在它们上来直接获得电机的值(我为每个点/像素存储的值)?

感谢您的帮助,

的Fabio

1 个答案:

答案 0 :(得分:0)

您可以通过修改matplotlib文档中的coordinate formatter示例中的this来完成此操作。简单地适应您的要求是:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

X = 10*np.random.rand(5, 3)

fig, ax = plt.subplots()
ax.imshow(X, cmap=cm.jet, interpolation='nearest')

def format_coord(x, y):
    return 'x=%i, y=%i' % (x+1, y+1)

ax.format_coord = format_coord
plt.show()

,这将导致:

Changing the format of mouse position in matplotlib window

另外,您可能需要查看mpldatacursor更漂亮的内容。对于此选项,请参阅此处的this question