在matplotlib上的画布上获取自定义图例

时间:2015-10-08 11:24:15

标签: python matplotlib

我在单个画布上绘制了多行图,使用了不同的线条样式。但不确定如何完成legend 我用来绘制的线条如下:

ax.plot(x_ra,y_ra,'g^-', x_rb,y_rb,'b-', x_rc,y_rc,'y^--', x_rd,y_rd,'^-', x_re,y_re,'b^-.', x_rf,y_rf,'--')

现在我可以利用一些想法如何获得一个类似的传奇盒子:
g^- - A
b- - B
y^-- - D等  谢谢。

1 个答案:

答案 0 :(得分:1)

如果您还为legend返回的Line2D对象命名,则可以在调用plot期间指定标签。

这是一个简单的MWE:

import matplotlib.pyplot as plt
import numpy as np

x_ra,y_ra = np.arange(0,10,1),np.arange(0,10,1)
x_rb,y_rb = np.arange(0,10,1),np.arange(1,11,1)
x_rc,y_rc = np.arange(0,10,1),np.arange(2,12,1)
x_rd,y_rd = np.arange(0,10,1),np.arange(3,13,1)
x_re,y_re = np.arange(0,10,1),np.arange(4,14,1)
x_rf,y_rf = np.arange(0,10,1),np.arange(5,15,1)

fig,ax = plt.subplots(1)
mylines = ax.plot(
            x_ra,y_ra,'g^-', 
            x_rb,y_rb,'b-', 
            x_rc,y_rc,'y^--', 
            x_rd,y_rd,'^-', 
            x_re,y_re,'b^-.', 
            x_rf,y_rf,'--'
            )

ax.legend(mylines,['A','B','C','D','E','F'],loc=0)
plt.show()

enter image description here