Участок над образом - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь нарисовать водяной знак, используя figimage, но независимо от того, что я делаю, изображение оказывается поверх графика.

Вот мой код:

import numpy as np
import matplotlib.pyplot as plt

im = np.zeros((40,40,3), dtype=np.float)

fig, ax = plt.subplots()
fig.figimage(im, 100, 60)
plt.scatter([0, 1, 2, 3, 4], [0, 1, 2, 3, 4], zorder=10)
plt.show()

Результат: result

Я пытался использовать аргумент zorder, но это тоже не работает. Любая идея, как я могу получить изображение за сюжетом?

1 Ответ

2 голосов
/ 23 мая 2019

zorder действительно путь сюда.Вы хотите, чтобы оси имели более высокий zorder, чем изображение.(Это потому, что figimage является дочерним элементом фигуры, а не осей.)

Итак,

ax.set_zorder(1)
im.set_zorder(0)

помещает изображение за осями.Теперь это может быть нежелательно, потому что это скрыто.Кроме того, вам необходимо сделать фон осей прозрачным.

import numpy as np
import matplotlib.pyplot as plt

im = np.zeros((40,40,3), dtype=np.float)

fig, ax = plt.subplots()
im = fig.figimage(im, 100, 60)
ax.scatter([0, 1, 2, 3, 4], [0, 1, 2, 3, 4])

ax.set_zorder(1)
im.set_zorder(0)
ax.patch.set_visible(False)

plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...