Matplotlib: imshow выдает значения за пределами экстента (ошибка?)

#matplotlib #coordinates #python-3.7 #imshow #extent

#matplotlib #координаты #python-3.7 #imshow #экстент

Вопрос:

С помощью этого кода вы можете создать такое изображение:

 import matplotlib.pyplot as plt
import numpy as np

axes = plt.subplot()
axes.set_aspect(1)
axes.format_coord = "x={:1.2f}, y={:1.2f}".format

pltRange = range(-1, 12)
axes.set_xlim(min(pltRange), max(pltRange))
axes.set_ylim(min(pltRange), max(pltRange))
axes.set_xticks(pltRange)
axes.set_yticks(pltRange)
plt.grid(True)

array = np.random.random((10, 10))
image = axes.imshow(array, extent=[0, 10, 0, 10], origin='lower')
image.format_cursor_data = " |  Value: {:8f}".format

plt.show()
  

введите описание изображения здесь

В правом нижнем углу вы можете увидеть координаты курсора мыши и значение массива, по которому вы перемещаетесь.
Это отлично работает на цветных фрагментах. Но я также ожидаю, что не получу никакого значения при наведении курсора мыши на белые пластины.

Сверху и с правой стороны это действительно происходит. Но не внизу, а слева. Допустим, если вы наведете курсор мыши на позицию (-0.5, 2.5) , вы все равно получите значение. Для меня это не имеет смысла.

Я делаю что-то не так или это ошибка? Я использую Matplotlib 3.0.3. и Numpy 1.16.2.

Спасибо 🙂

Комментарии:

1. Похоже, это исправлено в текущей версии разработки. В ближайшее время будет выпущен matplotlib 3.1. В любом случае наблюдаемое поведение не наносит ущерба, вы просто видите значение соседнего пикселя при перемещении мыши наружу и влево и / или вниз. Значения внутри верны.

2. Так что это действительно ошибка: O