[NTG-context] m-graph read data and plot

Alan BRASLAU alan.braslau at cea.fr
Fri Aug 7 12:23:43 CEST 2015


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 at inradius.net> wrote:

> On Aug 6, 2015, at 12:59 PM, Hans Hagen <pragma at wxs.nl
> <mailto:pragma at 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)…
> >>>> (0,0,1,0,0,yypart S)
> >> ! Transform components aren't all known…
> >> 
> > 
> >> 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.
> 



-- 
Alan Braslau
CEA DSM-IRAMIS-SPEC
CNRS UMR 3680
Orme des Merisiers
91191 Gif-sur-Yvette cedex FRANCE
tel: +33 1 69 08 73 15
fax: +33 1 69 08 87 86
mailto:alan.braslau at cea.fr


More information about the ntg-context mailing list