在matplotlib中动态添加箭头图例

时间:2018-08-03 21:41:59

标签: python matplotlib

import matplotlib.pyplot as plt
def plot_arrow(arrow_type):
    if arrow_type == 'good_arrow':
        arrow_color = 'g'
    ar = plt.arrow(x, y, dx , dy, label=arrow_type, fc=arrow_color)
    plt.legend([ar,], [arrow_type,])

上面的回调函数用于在图中绘制箭头。我需要为他们添加图例。这些箭头是动态绘制的。上面的代码将只有一个图例。我尝试了this之类的解决方案,但不适用于matplotlib.pyplot.arrow

修改

问题:我有两个彩色箭头,但只有一个图例

情节示例: enter image description here

1 个答案:

答案 0 :(得分:2)

为什么不只使用quiver()?参见here

enter image description here

import matplotlib.pyplot as plt
import numpy as np

plt.figure()

def rand(n):
    return 2.0*np.random.rand(n)-1.0

def plt_arrows(n, c, l, xpos, ypos):
    X, Y = rand(n), rand(n)
    U, V = 4.*rand(n), 4.*rand(n)
    Q = plt.quiver(X, Y, U, V, angles="xy", scale=30, label=l, color=c)
    qk = plt.quiverkey(Q, xpos, ypos, 2, label=l, labelpos='N', labelcolor=c)

plt_arrows(20, "g", "good", 1.05, 0.9)
plt_arrows(20, "r", "bad", 1.05, 0.8)

plt.show()