cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-274510%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EExiste-t-il%20une%20m%C3%A9thode%20pour%20obtenir%20les%20valeurs%20des%20axes%20%C3%A0%20partir%20du%20g%C3%A9n%C3%A9rateur%20de%20graphiques%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-274510%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3ESalut.%20Je%20suis%20int%C3%A9ress%C3%A9%20de%20savoir%20qu'il%20existe%20une%20m%C3%A9thode%20de%20script%20pour%20lire%20les%20valeurs%20affich%C3%A9es%20pour%20un%20axe%20dans%20graphbuilder%20et%20les%20renvoyer%20sous%20forme%20de%20liste.%20IOW%2C%20existe-t-il%20une%20fonction%20ou%20un%20message%20qui%20peut%20%22obtenir%22%20les%20valeurs%20d'axe%20%C3%A0%20partir%20d'une%20r%C3%A9f%C3%A9rence%20graphbuilder%20ou%20d'une%20bo%C3%AEte%20d'axe%26nbsp%3B%3F%20Quelque%20chose%20comme%20%3A%20xval_lis%20%3D%20gb%20%26lt%3B%26lt%3B%20Obtenir%20les%20valeurs%20de%20l'axe%20X.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EPar%20exemple%2C%20supposons%20que%20j'ai%20le%20graphique%20suivant%20%3A%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22nikles_0-1592588721798.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22nikles_0-1592588721798.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22nikles_0-1592588721798.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F24723iF24D3597EC5D178A%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22nikles_0-1592588721798.png%22%20alt%3D%22nikles_0-1592588721798.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Edt%20%3D%20Open(%22%24SAMPLE_DATA%2FBig%20Class.jmp%22)%3B%0Agb%20%3D%20Graph%20Builder(%0A%20Size(513%2C%20406)%2C%0A%20Show%20Control%20Panel(0)%2C%0A%20Back%20Color(%22White%22)%2C%0A%20Variables(X(%3Aage)%2C%20X(%3Asex%2C%20Position(1))%2C%20Y(%3Aweight))%2C%0A%20Elements(Points(X(1)%2C%20Y%2C%20Legend(1))%2C%20Smoother(X(1)%2C%20Y%2C%20Legend(2)))%2C%0A%20Local%20Data%20Filter(%0A%20%20Add%20Filter(%0A%20%20%20columns(%3Aage)%2C%0A%20%20%20Where(%3Aage%20%3D%3D%20%7B12%2C%2013%2C%2014%7D)%2C%0A%20%20%20Display(%3Aage%2C%20Size(170%2C%2096)%2C%20List%20Display)%0A%20%20)%0A%20)%2C%0A%20SendToReport(Dispatch(%7B%7D%2C%20%22%22%2C%20AxisBox%2C%20%7BSelect%7D))%0A)%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EIci%2C%20%C3%A9tant%20donn%C3%A9%20que%20l'utilisateur%20a%20exclu%20certains%20%C3%A2ges%20%C3%A0%20l'aide%20du%20filtre%20de%20donn%C3%A9es%20local%2C%20tous%20les%20%C3%A2ges%20du%20tableau%20ne%20sont%20pas%20affich%C3%A9s%20sur%20l'axe%20des%20x.%20Dans%20ce%20cas%2C%20je%20voudrais%20un%20moyen%20de%20lire%20quels%20%C3%A2ges%20sont%20r%C3%A9ellement%20affich%C3%A9s%20dans%20le%20graphique.%20Cette%20question%20s'applique%20uniquement%20lorsqu'une%20variable%20de%20type%20nominal%20ou%20ordinal%20est%20utilis%C3%A9e%20pour%20l'axe%20(pas%20de%20variables%20continues).%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EJ'ai%20consid%C3%A9r%C3%A9%20la%20m%C3%A9thode%20de%20script%20suivante%3A%3C%2FP%3E%3CP%3E1.%20Lire%20le%20filtre%20de%20donn%C3%A9es%20local%3C%2FP%3E%3CP%3E2.%20Cr%C3%A9ez%20une%20table%20de%20sous-ensemble%20contenant%20uniquement%20les%20lignes%20non%20filtr%C3%A9es%3C%2FP%3E%3CP%3E3.%20Utilisez%20la%20fonction%20R%C3%A9sumer%20sur%20cette%20table%20pour%20obtenir%20ma%20liste%20des%20valeurs%20d'axe%20affich%C3%A9es%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Eldf_str%20%3D%20ldf%20%26lt%3B%26lt%3B%20Get%20Where%20Clause%3B%20%20%2F%2Fldf%20%3D%20reference%20to%20local%20data%20filter%20in%20gb%20window%0Aclause%20%3D%20Parse(Regex(ldf_str%2C%20%22Select%20Where%5C((.%2B)%5C)%24%22%2C%20%22%5C1%22))%3B%0Ar%20%3D%20dt%20%26lt%3B%26lt%3B%20Get%20Rows%20Where(Eval(clause))%3B%20%20%20%2F%2Fdt%20%3D%20ref%20to%20main%20datable%0Adtsub%20%3D%20dt%20%26lt%3B%26lt%3B%20Subset(%2F%2FInvisible%2C%0A%20Selected%20Rows(0)%2C%0A%20Rows(r)%2C%0A%20Selected%20columns%20only(0)%0A)%3B%0ASummarize(dtsub%2C%20xlev_lis%20%3D%20By(%3Aage%2C%20%3Asex))%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3ECette%20m%C3%A9thode%20semble%20cependant%20peu%20maniable.%20Existe-t-il%20une%20commande%20qui%20peut%20%22obtenir%22%20les%20valeurs%20d'axe%20%C3%A0%20partir%20d'une%20r%C3%A9f%C3%A9rence%20graphbuilder%20ou%20d'une%20bo%C3%AEte%20d'axe%26nbsp%3B%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-274510%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CLINGO-LABEL%3EScript%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-276044%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%26nbsp%3B%3A%20Existe-t-il%20une%20m%C3%A9thode%20pour%20obtenir%20les%20valeurs%20des%20axes%20%C3%A0%20partir%20du%20g%C3%A9n%C3%A9rateur%20de%20graphiques%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-276044%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EMerci%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F70%22%20target%3D%22_blank%22%3E%20%40gzmorgan0%3C%2FA%3E%20.%20Il%20m'a%20fallu%20un%20peu%20de%20temps%20pour%20comprendre%2C%20mais%20c'est%20une%20bonne%20solution.%20J'appr%C3%A9cie%20l'aide%26nbsp%3B!%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-274569%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%26nbsp%3B%3A%20Existe-t-il%20une%20m%C3%A9thode%20pour%20obtenir%20les%20valeurs%20des%20axes%20%C3%A0%20partir%20du%20g%C3%A9n%C3%A9rateur%20de%20graphiques%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-274569%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F3648%22%20target%3D%22_blank%22%3E%40nikles%3C%2FA%3E%20%2C%3C%2FP%3E%0A%3CP%3EVous%20n'%C3%AAtes%20pas%20s%C3%BBr%20de%20votre%20sc%C3%A9nario%20d'utilisateur%2C%20cependant%2C%20si%20l'utilisateur%20filtre%20activement%2C%20il%20peut%20%C3%A9galement%20modifier%20la%20structure%20de%20GraphBuilder%2C%20les%20diff%C3%A9rents%20r%C3%B4les%2C%20etc.%3CSTRONG%3E%20Gestionnaire%20de%20changement%20de%20filtre%3C%2FSTRONG%3E%20serait%20plus%20robuste.%20Notez%20%C3%A9galement%20que%20la%20clause%20Where%20()%20ne%20capture%20pas%20l'inverse.%20Le%20script%20et%20la%20TextBox%20du%20Where%20capturent%20l'inverse%20comme%20un%20Not%20(!)%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F24728i2FE8FE7A814A87CB%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22image.png%22%20alt%3D%22image.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ECi-dessous%20et%20en%20pi%C3%A8ce%20jointe%20se%20trouve%20un%20script%20qui%20r%C3%A9cup%C3%A8re%20les%20Xticks%20et%20les%20imprime%20dans%20le%20journal%20lorsque%20le%20filtre%20change.Voici%20une%20capture%20d'%C3%A9cran%20du%20journal%20int%C3%A9gr%C3%A9%20avec%20des%20commentaires%20(%2F%2F)%20et%20des%20sauts%20de%20ligne%20suppl%C3%A9mentaires.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22image.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F24729iDCFAD564A7A7C79C%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22image.png%22%20alt%3D%22image.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20to%20Here(1)%3B%0A%0Adt%20%3D%20Open(%22%24SAMPLE_DATA%2FBig%20Class.jmp%22)%3B%0Agb%20%3D%20Graph%20Builder(%0A%20Size(513%2C%20406)%2C%0A%20Show%20Control%20Panel(0)%2C%0A%20Back%20Color(%22White%22)%2C%0A%20Variables(X(%3Aage)%2C%20X(%3Asex%2C%20Position(1))%2C%20Y(%3Aweight))%2C%0A%20Elements(Points(X(1)%2C%20Y%2C%20Legend(1))%2C%20Smoother(X(1)%2C%20Y%2C%20Legend(2)))%2C%0A%20Local%20Data%20Filter(%0A%20%20Add%20Filter(%0A%20%20%20columns(%3Aage)%2C%0A%20%20%20Where(%3Aage%20%3D%3D%20%7B12%2C%2013%2C%2014%7D)%2C%0A%20%20%20Display(%3Aage%2C%20Size(170%2C%2096)%2C%20List%20Display)%0A%20%20)%0A%20)%2C%0A%20SendToReport(Dispatch(%7B%7D%2C%20%22%22%2C%20AxisBox%2C%20%7BSelect%7D))%0A)%3B%0A%2F%2Fiftb%20%3D%20(report(gb)%5BPictureBox(1)%5D%26lt%3B%3CSIB%3E%3C%2FSIB%3E%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3ERemarques%3A%3C%2FP%3E%0A%3CUL%3E%0A%3CLI%3ELa%20ligne%2020%20est%20comment%C3%A9e%20%3B%20il%20montre%20comment%20obtenir%20un%20handle%20vers%20le%20Where%20TextBox.%3C%2FLI%3E%0A%3CLI%3ELes%20principales%20caract%C3%A9ristiques%20de%20la%20fonction%20f%20utilis%C3%A9e%20pour%20le%20gestionnaire%20de%20changement%20de%20filtre%20sont%20les%20capacit%C3%A9s%20de%20l'impl%C3%A9mentation%20JMP%20du%20tableau%20associatif%26nbsp%3B%3A%20plusieurs%20m%C3%A9thodes%20pour%20le%20d%C3%A9finir%26nbsp%3B%3B%20pour%20obtenir%20des%20valeurs%20uniques%20dans%20une%20liste%26nbsp%3B%3B%20presque%20n'importe%20quel%20objet%20JMP%20peut%20%C3%AAtre%20utilis%C3%A9%20comme%20cl%C3%A9.%3C%2FLI%3E%0A%3CLI%3ELes%20autres%20fonctionnalit%C3%A9s%20cl%C3%A9s%20sont%26nbsp%3B%3A%20dt%5B%20zz%2C%20_xvar_%5D%20est%20une%20liste%20de%20valeurs%20de%20ligne%20et%20ldf%20%26lt%3B%26lt%3B%20r%C3%A9cup%C3%A8re%20les%20lignes%20filtr%C3%A9es.%26nbsp%3B%26nbsp%3B%3C%2FLI%3E%0A%3C%2FUL%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
nikles
Level VI

Is there a method to get axis values from graph builder?

Hi.  I'm interested in knowing there is a scripting method to read the displayed values for an axis in graphbuilder and return them as a list.  IOW, is there a function or a message that can "get" the axis values from a graphbuilder reference or an axis box?  Something like: xval_lis = gb << Get X Axis Values.

 

For instance, suppose I have the following graph:

nikles_0-1592588721798.png

dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
	Size(513, 406),
	Show Control Panel(0),
	Back Color("White"),
	Variables(X(:age), X(:sex, Position(1)), Y(:weight)),
	Elements(Points(X(1), Y, Legend(1)), Smoother(X(1), Y, Legend(2))),
	Local Data Filter(
		Add Filter(
			columns(:age),
			Where(:age == {12, 13, 14}),
			Display(:age, Size(170, 96), List Display)
		)
	),
	SendToReport(Dispatch({}, "", AxisBox, {Select}))
)

Here, since the user has excluded certain ages using the local data filter, not all of the ages in the table are shown in x-axis.  In this case I would like a way to read off which ages are actually displayed in the graph.  This question applies only when a nominal or ordinal-type variable is used for the axis (no continuous variables).

 

I've considered the following scripting method:

1. Read the local data filter

2. Create a subset table of just the unfiltered rows

3. Use the Summarize function on that table to get my list of displayed axis values

ldf_str = ldf << Get Where Clause;  //ldf = reference to local data filter in gb window
clause = Parse(Regex(ldf_str, "Select Where\((.+)\)$", "\1"));
r = dt << Get Rows Where(Eval(clause));   //dt = ref to main datable
dtsub = dt << Subset(//Invisible,
	Selected Rows(0),
	Rows(r),
	Selected columns only(0)
);
Summarize(dtsub, xlev_lis = By(:age, :sex));

This method seems unwieldy though.  Is there a command that can "get" the axis values from a graphbuilder reference or an axis box?

1 ACCEPTED SOLUTION

Accepted Solutions
gzmorgan0
Super User (Alumni)

Re: Is there a method to get axis values from graph builder?

@nikles,

Not sure of your user scenario, however, if the user is actively filtering, they can also change the GraphBuilder structure, different roles, etc. So a Filter Change Handler would be  more robust. Also note the Where Clause() does not capture the Inverse. The script and the TextBox of the Where captures the Inverse as a Not (!) 

 

image.png

 

 Below and attached is a script that gets the Xticks and prints them to the Log when the filter changes.  Here is a screen shot of the embedded Log with comments (//) and extra line feeds.

 

image.png

 

Names Default to Here(1);

dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
	Size(513, 406),
	Show Control Panel(0),
	Back Color("White"),
	Variables(X(:age), X(:sex, Position(1)), Y(:weight)),
	Elements(Points(X(1), Y, Legend(1)), Smoother(X(1), Y, Legend(2))),
	Local Data Filter(
		Add Filter(
			columns(:age),
			Where(:age == {12, 13, 14}),
			Display(:age, Size(170, 96), List Display)
		)
	),
	SendToReport(Dispatch({}, "", AxisBox, {Select}))
);
//iftb = (report(gb)[PictureBox(1)]<<sib)[TextBox(1)]; //get handle to the textbox 
ldf = (gb<<parent)<<child;
gbb = report(gb)[GraphBuilderBox(1)] ;

f = function({a}, {zz,aa1,varlist={}, _xvar_={}, i, _xticks={}},
      varlist = gbb << get variables;
      for(i=1, i<=nitems(varlist), i++,
        if(nameExpr(varlist[i][2]) == nameExpr(Role( "X" )), insertinto(_xvar_, varlist[i][1] <<get name) );
       );
      zz= ldf << get filtered rows;
      if(isMissing(zz), zz= Index(1, nrow(dt)) );
   //check for excluded rows   
      _excl = dt << get excluded rows;
      aa1 = AssociativeArray(zz);
      aa1 = Remove(aa1, Aslist(_excl));
      zz  = aa1<<get keys;    
   //zz are the rows used in creating the graph  
   
   //now use the Associative Array to get unique values   
      _xticks = Associative Array( dt[zz,_xvar_], AsList(J(nitems(zz),1,1)) ) << get keys;
      print(_xticks);  //see the log
   );
  f(1);
rs = ldf << Make Filter Change Handler( f );


Notes:

  • Line 20 is commented; it shows how to get a handle to the Where TextBox.
  • Key features of the function f used for the Filter Change Handler are the capabilties of the JMP implementation of Associative Array: multiple methods to define it;  to get unique values in a list; almost any JMP object can be used as a key.
  • Other key features are:  dt[ zz, _xvar_] is a list of row values, and ldf << get filtered rows.  

 

 

 

 

View solution in original post

2 REPLIES 2
gzmorgan0
Super User (Alumni)

Re: Is there a method to get axis values from graph builder?

@nikles,

Not sure of your user scenario, however, if the user is actively filtering, they can also change the GraphBuilder structure, different roles, etc. So a Filter Change Handler would be  more robust. Also note the Where Clause() does not capture the Inverse. The script and the TextBox of the Where captures the Inverse as a Not (!) 

 

image.png

 

 Below and attached is a script that gets the Xticks and prints them to the Log when the filter changes.  Here is a screen shot of the embedded Log with comments (//) and extra line feeds.

 

image.png

 

Names Default to Here(1);

dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
	Size(513, 406),
	Show Control Panel(0),
	Back Color("White"),
	Variables(X(:age), X(:sex, Position(1)), Y(:weight)),
	Elements(Points(X(1), Y, Legend(1)), Smoother(X(1), Y, Legend(2))),
	Local Data Filter(
		Add Filter(
			columns(:age),
			Where(:age == {12, 13, 14}),
			Display(:age, Size(170, 96), List Display)
		)
	),
	SendToReport(Dispatch({}, "", AxisBox, {Select}))
);
//iftb = (report(gb)[PictureBox(1)]<<sib)[TextBox(1)]; //get handle to the textbox 
ldf = (gb<<parent)<<child;
gbb = report(gb)[GraphBuilderBox(1)] ;

f = function({a}, {zz,aa1,varlist={}, _xvar_={}, i, _xticks={}},
      varlist = gbb << get variables;
      for(i=1, i<=nitems(varlist), i++,
        if(nameExpr(varlist[i][2]) == nameExpr(Role( "X" )), insertinto(_xvar_, varlist[i][1] <<get name) );
       );
      zz= ldf << get filtered rows;
      if(isMissing(zz), zz= Index(1, nrow(dt)) );
   //check for excluded rows   
      _excl = dt << get excluded rows;
      aa1 = AssociativeArray(zz);
      aa1 = Remove(aa1, Aslist(_excl));
      zz  = aa1<<get keys;    
   //zz are the rows used in creating the graph  
   
   //now use the Associative Array to get unique values   
      _xticks = Associative Array( dt[zz,_xvar_], AsList(J(nitems(zz),1,1)) ) << get keys;
      print(_xticks);  //see the log
   );
  f(1);
rs = ldf << Make Filter Change Handler( f );


Notes:

  • Line 20 is commented; it shows how to get a handle to the Where TextBox.
  • Key features of the function f used for the Filter Change Handler are the capabilties of the JMP implementation of Associative Array: multiple methods to define it;  to get unique values in a list; almost any JMP object can be used as a key.
  • Other key features are:  dt[ zz, _xvar_] is a list of row values, and ldf << get filtered rows.  

 

 

 

 

nikles
Level VI

Re: Is there a method to get axis values from graph builder?

Thanks @gzmorgan0. It took a little time for me to grasp, but this is a nice solution. I appreciate the help!

Recommended Articles