我目前正在尝试用matplotlib绘制用仪器记录的2d地图。仪器正在移动2个电机(它制作光栅)并记录相关的强度值。 我现在能够绘制数据并将我想要的值与轴相关联,但我想将这些值数字化(制作离散),以便在图像的每个像素处获得电机的相应值。 / p>
我目前正在使用以下代码(在示例中我将使用x和y来定义电机位置):
import pylab as pl
pl.imshow(intensity, extent=(x_min, x_max, y_min, y_max),
interpolation='none')
代码效果很好但是如果我用光标选择我的绘图中的一个像素,它会返回带有多个数字的连续值(如图所示)。
是否可以通过将光标定位在它们上来直接获得电机的值(我为每个点/像素存储的值)?
感谢您的帮助,
的Fabio
答案 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()
,这将导致:
另外,您可能需要查看mpldatacursor更漂亮的内容。对于此选项,请参阅此处的this question。