在等高线图中显示数组值

时间:2016-07-26 07:43:33

标签: python numpy matplotlib

我有一个数组A,其中包含使用X和Y作为坐标轴绘制的值,使用

plt.contourf(X,Y,A)

我想知道当我将光标悬停在绘图中的某个(X,Y)点上时,我是如何获取A的值的,或者我可以在任何其他位置获取值的任何其他替代方法我正在观看情节。

非常感谢!

1 个答案:

答案 0 :(得分:1)

您必须使用axis对象的format_coord属性:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)
A = np.arange(25).reshape(5,5)
X = np.arange(5)
Y = np.arange(5)
X,Y = np.meshgrid(X,Y)
plt.contourf(X,Y,A)

nrows, ncols = A.shape
def format_coord(x, y):
    i = int(x)
    j = int(y)
    if j >= 0 and j < ncols and i >= 0 and i < nrows: 
        return "A[{0}, {1}] = {2}".format(i, j, A[i][j])
    else: return "[{0} {1}]".format(i, j)

ax.format_coord = format_coord
plt.show()

示例:

enter image description here