ああ!実際にlinestyle='dashed'
は動作します。矢筒の矢印はデフォルトでのみ塗りつぶされ、線幅が設定されていないだけです。それらはパスではなくパッチです。
次のようなことをすると:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.axis('equal')
ax.quiver((0,0), (0,0), (3,1), (1,0), angles='xy', scale_units='xy', scale=1,
linestyle='dashed', facecolor='none', linewidth=1)
ax.axis([-4, 4, -4, 4])
plt.show()

破線の矢印が表示されますが、おそらく意図したものとはまったく異なります。
いくつかのパラメーターをいじって少し近づけることはできますが、それでも見た目は正確ではありません。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.axis('equal')
ax.quiver((0,0), (0,0), (3,1), (1,0), angles='xy', scale_units='xy', scale=1,
linestyle='dashed', facecolor='none', linewidth=2,
width=0.0001, headwidth=300, headlength=500)
ax.axis([-4, 4, -4, 4])
plt.show()

したがって、別の回避策は、ハッチを使用することです。
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.axis('equal')
ax.quiver((0,0), (0,0), (3,1), (1,0), angles='xy', scale_units='xy', scale=1,
hatch='ooo', facecolor='none')
ax.axis([-4, 4, -4, 4])
plt.show()
