2016-09-28 96 views
1

我絕對肯定我做了一些簡單的錯誤與我的函數定義,但我現在完全耗盡,不能出來。如果有人能夠幫助,我會永遠愛他們。Python的陰謀將不會運行:'x和y必須有相同的第一維'

import matplotlib.pyplot as plt 
import scipy as sp 

lamb = sp.array([1100, 1650, 2200, 2750, 3300, 3850, 4400, 4950, 5500, 6050, 6600]) 
fno = sp.array([3.779, 2.443, 1.788, 1.361, 1.049, 0.831, 0.689, 0.590, 0.524, 0.486, 0.463]) 
fla = sp.array([0.743, 0.622, 0.555, 0.507, 0.468, 0.434, 0.401, 0.371, 0.348, 0.336, 0.320]) 
ebv = .1433 

fig = plt.figure() 
ax = fig.add_subplot(111) 

def alam(fno, fla): 
    return (2.5*sp.log(fno/fla)) 

def rlam(lamb): 
    return (alam/ebv) 

plt.plot(lamb, rlam,'k-') 

plt.show() 

我可能是一個白癡,所以隨時可以稱我爲白癡。謝謝!

回答

1

你可以清楚地看到有一個問題。您必須爲plt.plot(x,y)提供兩個數組。在你的情況下,你給了一個數組和一個函數名稱。很顯然,這是一個錯誤。

嘗試瞭解更多關於python函數的用法。我添加了一個小代碼片段,其中顯示了輸入參數的繪圖使用情況和python函數使用情況。

import matplotlib.pyplot as plt 
import scipy as sp 

lamb = sp.array([1100, 1650, 2200, 2750, 3300, 3850, 4400, 4950, 5500, 6050, 6600]) 
ebv = .1433 

fig = plt.figure() 
ax = fig.add_subplot(111) 

def test_func(lamb): 
    return lamb/ebv 

plt.plot(lamb, test_func(lamb),'k-') 
plt.show() 
相關問題