matplotlib contourf:在光标下获取Z值

And*_*nca 4 python plot matplotlib contour

当我绘制一些东西时contourf,我在绘图窗口的底部看到鼠标光标下的当前x和y值.有没有办法看到z值?

这是一个例子contourf:

import matplotlib.pyplot as plt
import numpy as hp
plt.contourf(np.arange(16).reshape(-1,4))
Run Code Online (Sandbox Code Playgroud)

wil*_*mpa 5

显示光标位置的文本由ax.format_coord.生成.您可以覆盖该方法以显示z值.例如,

import matplotlib.pyplot as plt
import numpy as np
import scipy.interpolate as si
data = np.arange(16).reshape(-1, 4)
X, Y = np.mgrid[:data.shape[0], :data.shape[1]]
cs = plt.contourf(X, Y, data)


def fmt(x, y):
    z = np.take(si.interp2d(X, Y, data)(x, y), 0)
    return 'x={x:.5f}  y={y:.5f}  z={z:.5f}'.format(x=x, y=y, z=z)


plt.gca().format_coord = fmt
plt.show()
Run Code Online (Sandbox Code Playgroud)


j13*_*13r 2

文档示例展示了如何将 z 值标签插入到绘图中

脚本:http ://matplotlib.sourceforge.net/mpl_examples/pylab_examples/contour_demo.py

基本上,它是

plt.figure()
CS = plt.contour(X, Y, Z) 
plt.clabel(CS, inline=1, fontsize=10)
plt.title('Simplest default with labels')
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这很有用,但我要求在光标下实时显示 Z 值,与 X 和 Y 已经存在的值相同。 (3认同)
  • @AndreaZonca你确定这是你仍然想接受的答案吗?[wilywampa](http://stackoverflow.com/users/752720/wilywampa)最近的[解决方案](http://stackoverflow.com/a/42054903/2749397)正是您所要求的.. 。 (2认同)