我想制作一个没有箭头头部的箭袋图。我还想要有边框,以便箭头可以从背景颜色图中脱颖而出。这是我试图产生这样一个情节的代码的主要部分:

plt.quiver(phia[sl1,sl2], R0a[sl1,sl2],u,v, color='white', headlength=0, headwidth = 1, pivot = 'middle', scale = scale, width=width, linewidth = 0.5)

如果这很重要,该图在极轴上。这适用于大多数线路,除了那些非常短的线路。在这些情况下,在线条之后会产生一些来自边界的人造尾部。我生成的受此影响最大的图之一如下:

没有头的Python箭袋图-LMLPHP

对此问题的任何解决方案或绕过它的建议将不胜感激!谢谢!

最佳答案

将箭头的 headaxislength 参数指定为零可以解决问题:

import numpy as np
import matplotlib.pyplot as plt

theta = np.linspace(0, 2*np.pi, 16)
r = np.linspace(0, 1, 6)
x = np.cos(theta)[:,np.newaxis]*r
y = np.sin(theta)[:,np.newaxis]*r

quiveropts = dict(color='white', headlength=0, pivot='middle', scale=3,
    linewidth=.5, units='xy', width=.05, headwidth=1) # common options
f, (ax1, ax2) = plt.subplots(1,2, sharex=True, sharey=True)
ax1.quiver(x,y, -y, x, headaxislength=4.5, **quiveropts) # the default
ax2.quiver(x,y, -y, x, headaxislength=0, **quiveropts)

上面的代码产生以下箭袋图,没有箭头。
没有头的Python箭袋图-LMLPHP

关于没有头的Python箭袋图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37154071/

10-11 08:09