2017-11-18 42 views
2

工作实施例:标签多维阵列的每个输出被绘制

%matplotlib inline 
import numpy as np 
import matplotlib.pyplot as plt 
from scipy.integrate import odeint 

def BoatFishSystem(state, t, *args): 
    '''http://www.danham.me/r/2015/10/29/differential-eq.html''' 
    A = args[0] 
    B = args[1] 
    C = args[2] 
    fish, boat = state 
    d_fish = fish * (A - boat - fish) 
    d_boat = -boat * (B - C * fish) 
    return [d_fish, d_boat] 

A = 2.0 
B = 1.0 
C = 1.5 
params = (A, B, C) 
n_steps = 100000 
t = np.linspace(0, 20, n_steps) 
init_state = [1, 1] 
species = odeint(BoatFishSystem, init_state, t, args = (params)) 

plt.plot(t, species, label = ['a', 'b']) 
plt.legend() 
plt.show() 

期望的结果: 一个输出线被标记为“A”,另一种“B”

当前结果: 两个线被标记为[ '一', 'b']

回答

0

移动标记引入plt.legend()

plt.plot(t, species) 
plt.legend(['a', 'b']) 

enter image description here

+0

谢谢!我真的很感谢答案。 – NicholasDeLateur

+0

不客气!如果此答案解决了您的问题,请点击答案旁边的复选标记将其标记为已接受。 –