Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matplotlib 流程图始终在前景中_Matplotlib_Z Order - Fatal编程技术网

Matplotlib 流程图始终在前景中

Matplotlib 流程图始终在前景中,matplotlib,z-order,Matplotlib,Z Order,使用streamplot绘制艺术家时,第二个始终出现在前景中,尽管该绘制是在艺术家之前进行的: 对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

使用
streamplot
绘制
艺术家
时,第二个始终出现在前景中,尽管该绘制是在
艺术家
之前进行的:

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()

我该怎么做才能使
艺术家
覆盖
流程图

您可以更改艺术家的z顺序。对于您的示例,请尝试:

e = Rectangle(xy=(0,0), width=1, height=1, zorder=10)
根据,默认的z顺序似乎是:

  • 修补程序/修补程序集合=>1
  • Line2D/LineCollection=>2
  • Text=>3

这可以解释为什么流线图(直线)会绘制在矩形(面片)的顶部。

您可以更改艺术家的z顺序。对于您的示例,请尝试:

e = Rectangle(xy=(0,0), width=1, height=1, zorder=10)
根据,默认的z顺序似乎是:

  • 修补程序/修补程序集合=>1
  • Line2D/LineCollection=>2
  • Text=>3
这就解释了为什么流线图(线)会被画在矩形(一块补丁)的顶部。

Ah,太简单了:-)我认为它不起作用,因为流线图没有zorder参数。非常感谢。啊,太简单了:-)我不认为它会起作用,因为streamplot没有zorder参数。非常感谢。