You have two problems:
1) gdraw (4,1)--(7,1);
has a unique ordinate, so graph will fail in this case if you do not
explicitly set the range.
2) You have to take care with your choice of loop variables in MP not
to run into conflicts those eventually used in macros. Also, as Hans
indicated, you do need to declare that a is an array, as in
numeric a[];
Here is a MWE
\enabletrackers[metapost.showlog]
\usemodule[graph]
\startMPpage[instance=graph,offset=3mm]
draw begingraph(5cm,5cm);
numeric a[];
gdata("data.d", v,
for j=1 upto 3:
a[j]:=scantokens v[j];
endfor ;
);
setrange (whatever,0,whatever,2);
gdraw (a2,a1)--(a3,a1);
endgraph;
\stopMPpage
Alan
On Thu, 6 Aug 2015 16:48:51 -0400
John Kitzmiller <kitz@inradius.net> wrote:On Aug 6, 2015, at 12:59 PM, Hans Hagen <pragma@wxs.nl
<mailto:pragma@wxs.nl>> wrote:
On 8/6/2015 5:30 PM, John Kitzmiller wrote:Given a file, data.d, containing 1 4 7
I expected the following code to draw a line from (4,1) to (7,1)…
\enabletrackers[metapost.showlog]
\usemodule[m-graph]
\startMPpage[instance=graph,offset=3mm]
draw begingraph(5cm,5cm);
gdata("data.d", v,
for n = 1 upto 3:
a[n] = scantokens v[n];
endfor;
show a1; show a2; show a3; % numeric
show v1; show v2; show v3; % string
gdraw (a2,a1)—(a3,a1); % same problem in or out of data group
);
endgraph;
\stopMPpage
…the show lines return what I expected, but then come the
complaints:
! Inconsistent equation (off by 0.90000000000000002)…! Transform components aren't all known…(0,0,1,0,0,yypart S)a[n] = scantokens v[n];
is a defined?
Thank you Hans. Do you mean numeric a[n]? It was not explicitly
declared; I did not think it needed to be—the show commands write
what I expect to the log—anyway, declaring a did not help.
also, use
a[n] := scantokens v[n] ;
Done. Still the same error messages and no pdf.My goal is to draw multiple box plots
https://en.wikipedia.org/wiki/Box_plot
<https://en.wikipedia.org/wiki/Box_plot>, either vertical or
horizontal, from data sets, but I am stuck at this early stage.