在figimage上绘制

时间:2019-05-23 18:55:32

标签: python matplotlib

我正在尝试使用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 个答案:

答案 0 :(得分:2)

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