朱莉娅绘图函数数组问题

5

我来自Matlab,现在我正在努力弄清楚为什么以下代码不起作用:

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

能正确生成图表。

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

产生错误:

错误: plot 没有匹配到对应的方法plot(::Array(Float64,1),::Array(Float64,1))

如果有人能够解释一下为什么在绘图行中嵌入代码会产生结果,但是先定义变量会导致错误,我将非常感激。逻辑上说它们应该产生相同的结果。

我正在使用Julia v 0.3.1,并已经加载了Gadfly作为绘图工具。


这涉及到语法,正如Toivo的回答所示。但更普遍地说,您使用的绘图包可能与您熟悉的语法不同。例如,Winston - 更像MATLAB - 使用plot(x,y)绘制由线连接的点,就像MATLAB一样,而plot(x,y,“o”)则制作散点图。而Gadfly使用plot(x = x,y = y,Geom.line)制作线图,plot(x = x,y = y)制作散点图。或者,PyPlot比Gadfly更类似于MATLAB。 - jverzani
2个回答

8
在第一个案例中,你使用的是关键字参数语法,而不是赋值给变量 xy(函数调用内部 = 的含义是特殊的)。要在第二个案例中获得相同的效果,你应该使用。
x=rand(10)
y=rand(10)
plot(x=x,y=y)

该代码通过将变量x的值传递给plot函数中的关键字参数x,并将变量y的值传递给关键字参数y来实现。


0
如果你还没有这样做,请在你的代码前面加上以下内容:


using plots
plyplot()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接