2014-09-29 33 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值。