首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matplotlib contourf:获取光标下的Z值

matplotlib contourf:获取光标下的Z值
EN

Stack Overflow用户
提问于 2012-04-10 07:21:33
回答 3查看 3.9K关注 0票数 6

当我使用contourf绘图时,我在绘图窗口的底部看到鼠标光标下的当前x和y值。有没有办法也能看到z值?

下面是一个示例contourf

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as hp
plt.contourf(np.arange(16).reshape(-1,4))
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-10 07:27:19

documentation example显示了如何将z值标签插入到图中

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

基本上,它是

代码语言:javascript
复制
plt.figure()
CS = plt.contour(X, Y, Z) 
plt.clabel(CS, inline=1, fontsize=10)
plt.title('Simplest default with labels')
票数 2
EN

Stack Overflow用户

发布于 2017-02-06 01:12:02

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

代码语言:javascript
复制
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)

func = si.interp2d(X, Y, data)
def fmt(x, y):
    z = np.take(func(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()
票数 6
EN

Stack Overflow用户

发布于 2018-03-03 01:29:02

如果你已经有了一个预先计算好的插值轮廓值的网格,因为你的数据是稀疏的,或者如果你有一个巨大的数据矩阵,这可能适合你。

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np

resolution = 100
Z = np.arange(resolution**2).reshape(-1, resolution)
X, Y = np.mgrid[:Z.shape[0], :Z.shape[1]]
cs = plt.contourf(X, Y, Z)

Xflat, Yflat, Zflat = X.flatten(), Y.flatten(), Z.flatten()
def fmt(x, y):
    # get closest point with known data
    dist = np.linalg.norm(np.vstack([Xflat - x, Yflat - y]), axis=0)
    idx = np.argmin(dist)
    z = Zflat[idx]
    return 'x={x:.5f}  y={y:.5f}  z={z:.5f}'.format(x=x, y=y, z=z)

plt.colorbar()
plt.gca().format_coord = fmt
plt.show()

例如:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10081100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档