2015-11-16 3 views
1

Я хочу добавить легенду, чтобы проиллюстрировать различное значение a, есть 6 строк на картинке, однако у двух одинакового цвета есть одинаковое значение 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

Этикетки включаются только тогда, когда matplotlib.axes.Axes.plot() называется и строка предоставляется в качестве аргумента для переменной этикетки (например этикетке = «???»).

Например, это добавляет (только) три строки в легенде:

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() 
Смежные вопросы