流图总是在前台
Streamplot always in foreground
当用 streamplot
绘制 Artist
时,第二个总是出现在前景中,尽管绘图是在 Artist
之前绘制的:
对 pcolormesh
所做的与预期的相同:
这是两张图片的代码:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
Y, X = np.mgrid[-3:3:100j, -3:3:100j]
U = -1 - X**2 + Y
V = 1 + X - Y**2
speed = np.sqrt(U*U + V*V)
fig0, ax0 = plt.subplots()
working = False
if working:
strm = ax0.pcolormesh(X, Y, U, cmap=plt.cm.autumn)
else:
strm = ax0.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn)
fig0.colorbar(strm.lines)
#fig1, (ax1, ax2) = plt.subplots(ncols=2)
#ax1.streamplot(X, Y, U, V, density=[0.5, 1])
#
#lw = 5*speed / speed.max()
#ax2.streamplot(X, Y, U, V, density=0.6, color='k', linewidth=lw)
e = Rectangle(xy=(0,0), width=1, height=1)
e.set_facecolor([0.9,0.9,0.9])
ax0.add_artist(e)
plt.show()
我该怎么做才能让 Artist
覆盖 streamplot
?
您可以更改艺术家的 z 顺序。对于您的示例,请尝试:
e = Rectangle(xy=(0,0), width=1, height=1, zorder=10)
根据 a matplotlib example,默认的 z 顺序似乎是:
- 补丁/补丁集合 => 1
- Line2D/LineCollection => 2
- 文本 => 3
这可以解释为什么流线图(线条)会绘制在矩形(补丁)的顶部。
当用 streamplot
绘制 Artist
时,第二个总是出现在前景中,尽管绘图是在 Artist
之前绘制的:
对 pcolormesh
所做的与预期的相同:
这是两张图片的代码:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
Y, X = np.mgrid[-3:3:100j, -3:3:100j]
U = -1 - X**2 + Y
V = 1 + X - Y**2
speed = np.sqrt(U*U + V*V)
fig0, ax0 = plt.subplots()
working = False
if working:
strm = ax0.pcolormesh(X, Y, U, cmap=plt.cm.autumn)
else:
strm = ax0.streamplot(X, Y, U, V, color=U, linewidth=2, cmap=plt.cm.autumn)
fig0.colorbar(strm.lines)
#fig1, (ax1, ax2) = plt.subplots(ncols=2)
#ax1.streamplot(X, Y, U, V, density=[0.5, 1])
#
#lw = 5*speed / speed.max()
#ax2.streamplot(X, Y, U, V, density=0.6, color='k', linewidth=lw)
e = Rectangle(xy=(0,0), width=1, height=1)
e.set_facecolor([0.9,0.9,0.9])
ax0.add_artist(e)
plt.show()
我该怎么做才能让 Artist
覆盖 streamplot
?
您可以更改艺术家的 z 顺序。对于您的示例,请尝试:
e = Rectangle(xy=(0,0), width=1, height=1, zorder=10)
根据 a matplotlib example,默认的 z 顺序似乎是:
- 补丁/补丁集合 => 1
- Line2D/LineCollection => 2
- 文本 => 3
这可以解释为什么流线图(线条)会绘制在矩形(补丁)的顶部。