带补丁的剪裁轴
Clipping axes with patch
我在理解如何使用补丁剪辑轴时遇到了一些问题。我想让蓝色矩形位于轴的背景中。但是我的剪辑调用什么也没做。
import matplotlib.pyplot as plt
from matplotlib import patches
import numpy as np
fig = plt.figure()
X, Y = np.mgrid[-1:1:.1, -1:1:.1]
Z = X+Y
ax1 = fig.add_subplot(111)
ax1.contourf(X, Y, Z)
frame = patches.Rectangle(
(-.1,-.1), 1.2, 1.2, transform=ax1.transAxes, alpha=.5, fc='b', fill=True, linewidth=3, color='k'
)
ax1.set_clip_path(frame) # has no effect
fig.patches.append(frame)
fig.show()
我需要如何正确设置?文档非常缺乏。
您只需提供 zorder
即可将其置于后台。具体来说,zorder=0
在当前情况下用于您的 Rectangle
补丁。
将 zorder
视为决定什么堆叠在什么之上的参数。 zorder=0
将简单地发送堆栈中最低的补丁,这意味着绘图的最后层。
frame = patches.Rectangle(
(-.1,-.1), 1.2, 1.2, transform=ax1.transAxes, alpha=.5, fc='b', fill=True, linewidth=3, color='k'
, zorder=0) # <--- zorder specified here
ax1.set_clip_path(frame) # has no effect
fig.patches.append(frame)
我在理解如何使用补丁剪辑轴时遇到了一些问题。我想让蓝色矩形位于轴的背景中。但是我的剪辑调用什么也没做。
import matplotlib.pyplot as plt
from matplotlib import patches
import numpy as np
fig = plt.figure()
X, Y = np.mgrid[-1:1:.1, -1:1:.1]
Z = X+Y
ax1 = fig.add_subplot(111)
ax1.contourf(X, Y, Z)
frame = patches.Rectangle(
(-.1,-.1), 1.2, 1.2, transform=ax1.transAxes, alpha=.5, fc='b', fill=True, linewidth=3, color='k'
)
ax1.set_clip_path(frame) # has no effect
fig.patches.append(frame)
fig.show()
我需要如何正确设置?文档非常缺乏。
您只需提供 zorder
即可将其置于后台。具体来说,zorder=0
在当前情况下用于您的 Rectangle
补丁。
将 zorder
视为决定什么堆叠在什么之上的参数。 zorder=0
将简单地发送堆栈中最低的补丁,这意味着绘图的最后层。
frame = patches.Rectangle(
(-.1,-.1), 1.2, 1.2, transform=ax1.transAxes, alpha=.5, fc='b', fill=True, linewidth=3, color='k'
, zorder=0) # <--- zorder specified here
ax1.set_clip_path(frame) # has no effect
fig.patches.append(frame)