首先,出于好奇,为什么要绘制对称数据?为什么绘制一半的图不正确?
说,这是一个可能的黑客。您可以按照Hooked的建议使用遮罩数组来绘制其中的一半:
mask = X>0BX_OUT = Bx.copy()BZ_OUT = Bz.copy()BX_OUT[mask] = NoneBZ_OUT[mask] = Noneres = plt.streamplot(X, Z, BX_OUT, BZ_OUT, color='k', arrowstyle='-',linewidth=1,density=2)
然后将流图的结果保存在res中,提取线并使用相反的X坐标进行绘制。
lines = res.lines.get_paths()for l in lines: plot(-l.vertices.T[0],l.vertices.T[1],'k')
我使用此技巧从2D图中提取流线和箭头,然后应用3D变换并使用mplot3d进行绘制。一张图片是我的一个问题在这里。



