【问题标题】:matplotlib multiple values under cursormatplotlib 光标下的多个值
【发布时间】:2023-03-22 20:29:01
【问题描述】:

这个问题和这里回答的很相似,

matplotlib values under cursor

In a matplotlib figure window (with imshow), how can I remove, hide, or redefine the displayed position of the mouse?

Interactive pixel information of an image in Python?

除了像素数据(x,y,z)之外,我有各种与我想在线图上描绘的(x,y)坐标相关的测量值。具体来说,(x,y) 是空间位置 (lat, lon),并且在每个 (lat,lon) 点都有一个数据集合(速度、RPM、温度等)。我只是快速画了一些东西来说明,一个带有连接线的散点图,然后当您将鼠标悬停在一个数据点上时,它会显示与该数据点相关的所有“z”值。

有没有简单的方法来做这样的事情?

【问题讨论】:

标签: python matplotlib


【解决方案1】:

您可能可以在此示例的基础上进行构建。它不显示图中的信息(目前仅使用print() 语句),但它演示了一种捕获对scatter 点的点击并显示这些点信息的简单方法:

import numpy as np
import matplotlib.pylab as pl

pl.close('all')

n = 10
lat = np.random.random(n)
lon = np.random.random(n)

speed = np.random.random(n)
rpm   = np.random.random(n)
temp  = np.random.random(n)

def on_click(event):
    i = event.ind[0]
    print('lon={0:.2f}, lat={1:.2f}: V={2:.2f}, RPM={3:.2f}, T={4:.2f}'\
        .format(lon[i], lat[i], speed[i], rpm[i], temp[i])) 

fig=pl.figure()
pl.plot(lon, lat, '-')
pl.scatter(lon, lat, picker=True)
fig.canvas.mpl_connect('pick_event', on_click)

点击一下给我:

lon=0.63, lat=0.58: V=0.51, RPM=0.00, T=0.43
lon=0.41, lat=0.07: V=0.95, RPM=0.59, T=0.98
lon=0.86, lat=0.13: V=0.33, RPM=0.27, T=0.85

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    相关资源
    最近更新 更多