2014-09-29 29 views
5

provenienza da Matlab Ho difficoltà a capire perché il seguente non funziona:Julia funzione plot gamma emette

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

Produce correttamente un grafico.

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

produce errore:

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

sarei molto grato se qualcuno coould mi spieghi il motivo per cui embeding il codice all'interno della trama produce un risultato, ma la definizione delle variabili risultati in anticipo in un errore. La logica dice che dovrebbero produrre lo stesso risultato.

Sto usando Julia v 0.3.1 e ho caricato Gadfly come strumento di creazione di grafici.

+0

Questo diventa sintassi come indica la risposta di Toivo. Ma più in generale, il pacchetto di plottaggio che usi potrebbe non avere la stessa sintassi con cui hai familiarità. Ad esempio, Winston - che è più simile a MATLAB - utilizza la trama (x, y) per tracciare i punti collegati da linee, come farebbe MATLAB e tracciare (x, y, "o") traccia un grafico a dispersione. Mentre Gadfly utilizza il grafico (x = x, y = y, Geom.line) per creare un grafico a linee e un grafico (x = x, y = y) per creare un grafico a dispersione. In alternativa, PyPlot è più simile a MATLAB di Gadfly. – jverzani

risposta

8

Nel primo caso, si utilizza sintassi dell'argomento parola chiave, non assegnare alle variabili x e y (il significato di = all'interno chiamate di funzione è speciale). Per ottenere lo stesso effetto nel secondo caso, si dovrebbe usare

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

che passa il valore nella variabile x nell'argomento parola chiave x a plot, e il valore nella variabile y la parola argomento y.

Problemi correlati