我在网格中有一些数据,我用streamplot绘制流线,用颜色和宽度与速度相关。我怎样才能改变箭头的颜色,或者只改变边缘颜色? 我的目标是强调流向。如果有人有别的办法。。
我试着用c.arrows
,编辑c.arrows.set_edgecolor
,c.arrows.set_edgecolors
,c.arrows.set_facecolor
和{plt.draw()
资料图:
代码:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-10,-1, 50)
y = np.linspace(-30, -28, 50)
xi, yi = np.meshgrid(x,y)
u = 3*np.cos(xi)*((-3)*np.sin(yi))**3
v = 2*np.sin(xi)*3*np.cos(yi)
speed = np.sqrt((u**2)+(v**2))
lw = 4*speed/speed.max()
plt.ion()
plt.figure()
plt.plot(xi,yi,'-k',alpha=0.1)
plt.plot(xi.T,yi.T,'-k',alpha=0.1)
c = plt.streamplot(xi,yi,u,v,linewidth=lw,color=speed)
(请注意,下面的分析可能并不完全正确,我只是粗略地查看了一下来源。)
在创建箭头时,
streamplot
似乎做了两件事:FancyArrowPatch
)添加到轴PatchCollection
(c.arrows
)添加相同的箭头补丁出于某些原因(我想获得正确的缩放比例是背后的原因),集合似乎没有被使用,也没有添加到轴上。因此,如果更改颜色贴图或集合的颜色,则不会对绘图产生任何影响。在
可能有更漂亮的方法,但是如果你想要,例如,黑色箭头进入你的情节,你可以这样做:
这将产生:
然后是通常的警告:这是丑陋和脆弱的。在
相关问题 更多 >
编程相关推荐