#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