为某些行添加图例

时间:2015-11-16 15:31:35

标签: python numpy matplotlib

我想添加图例来说明a的不同值,图片中有6行,但是两个具有相同颜色的a具有相同的值aI想要添加一个图例中只有三行,表示不同颜色的$ a = 1 $,$ a = 2 $,$ a = 3 $。

请注意,此代码有一个循环,因此我不知道如何处理它。

import numpy as np
import math
import matplotlib.pyplot as plt

def f(a,x):
    return a*x
def g(a,x):
    return 5*a*x

const=[1,2,3]

fig=plt.figure()
ax=fig.add_subplot(1,1,1)
colors=['r','b','g']
xArray=np.linspace(0,2,20)
for i in const:
    ax.plot(xArray,f(i,xArray),color=colors[i-1])
    ax.plot(xArray,g(i,xArray),color=colors[i-1],ls='--')

plt.show()

1 个答案:

答案 0 :(得分:1)

仅在调用matplotlib.axes.Axes.plot()时包含标签,并且提供字符串作为标签变量的参数(例如label ='???')。

例如,这会向图例添加(仅)三行:

import numpy as np
import math
import matplotlib.pyplot as plt

def f(a,x):
    return a*x
def g(a,x):
    return 5*a*x

const=[1,2,3]

fig=plt.figure()
ax=fig.add_subplot(1,1,1)
colors=['r','b','g']
labels = ['a1', 'a2', 'a3']
xArray=np.linspace(0,2,20)
for i in const:
    ax.plot(xArray,f(i,xArray), color=colors[i-1], 
            label=labels[i-1])
    ax.plot(xArray,g(i,xArray), color=colors[i-1],ls='--')
plt.legend()
plt.show()