Как управлять текстом при наведении курсора в matplotlib

Когда вы наводите курсор на изображение, показанное с помощью imshow, вы можете наводить курсор на изображение, чтобы проверить его значения RGB. В правом нижнем углу окна matplotlib (совместно с панелью инструментов) показаны координаты изображения и значения RGB пикселя, на который указывает:

x = 274.99  y = 235.584  [.241, .213, .203]

Однако, когда я наводил курсор на график колчана, он показывает только координаты x и y указателя, но не значение указываемого 2D-вектора. Есть ли способ получить векторные значения для отображения?

Я был бы в порядке с написанием собственного обработчика событий мыши, если бы я только знал, как установить этот бит текста в окне matplotlib.


person SuperElectric    schedule 02.10.2017    source источник


Ответы (1)


Были времена, когда информация о значении цвета отсутствовала по умолчанию. На самом деле я думаю, что текущая версия основана на каком-то коде, который появился в Stackoverflow по какому-то вопросу об этой функции.

Я быстро нашел эти два вопроса:

Идея заключалась бы в том, чтобы изменить функцию, которая вызывается при наведении мыши на оси. Эта функция хранится в ax.format_coord. Таким образом, возможное решение состоит в том, чтобы написать свою пользовательскую функцию для возврата желаемого результата на основе входных координат, например. что-то типа

def format_coord(x, y):
    try:
        z = # get value depending on x,y, e.g. via interpolation on grid
            # I can't fill this because the kind of data is unknown here
        return "x: {}, y: {}, z: {}".format(x,y,z)

    except:
        return "x: {}, y: {}".format(x,y)

ax.format_coord = format_coord
person ImportanceOfBeingErnest    schedule 02.10.2017