2014-09-29 31 views
5

說完來自Matlab的我奮力爲什麼下面不工作:朱莉婭繪圖功能陣列發出

plot(x=rand(10),y=rand(10)) 

正確生成一個圖表。

x=rand(10) 
y=rand(10) 
plot(x,y) 

產生錯誤:

ERROR: plot has no method matching plot(::Array(Float64,1),::Array(Float64,1))

我會很感激,如果有人coould向我解釋爲什麼情節線內embeding代碼產生的結果,而是定義變量事先導致錯誤。邏輯表示他們應該產生相同的結果。

我使用的是Julia v 0.3.1,並將Gadfly作爲圖表工具加載。

+0

Toivo的答案顯示了這種語法。但更一般地說,您使用的繪圖包可能沒有您熟悉的相同語法。例如,溫斯頓 - 更像MATLAB一樣 - 使用plot(x,y)來繪製由線連接的點,如MATLAB所做的那樣,plot(x,y,「o」)繪製散點圖。鑑於Gadfly使用繪圖(x = x,y = y,Geom.line)繪製線圖並繪製(x = x,y = y)以繪製散點圖。或者,PyPlot比Gadfly更類似於MATLAB。 – jverzani 2014-09-29 23:52:22

回答

8

在第一種情況下,您正在使用關鍵字參數語法,未分配給變量xy(函數調用內部的=的含義很特殊)。爲了獲得在第二種情況下,同樣的效果,你應該使用

x=rand(10) 
y=rand(10) 
plot(x=x,y=y) 

其通過在變量x在關鍵字參數xplot的價值,並在關鍵字參數y在變量y值。