Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

- JMP User Community
- :
- Discussions
- :
- How to get the graph builder to dispatch a variable scale for the Y variable dep...

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

Highlighted

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Oct 25, 2018 5:19 AM
(3110 views)

Hi All,

I have been searching this topic throughout the community discussions but I had not luck so far.

How to get the graph builder to dispatch a variable scale for the Y variable depending on the data range?

Using the BigClass data example If I had more than one graph to plot I would use the following script:

```
dt= Open ("Big Class.JMP");
win = New window("Graphs", lub = Lineup Box (Ncol(2)));
Sexs = (Associative Array(Column (dt, "sex"))<<Get keys);
For (i = 1, i<= N items (Sexs), i++,
lub<< Append( Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :sex, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :Sex ),
Where( :Sex == Sexs[i] ),
Display( :Sex, Size( 224, 126 ), List Display )) ))));
```

This code works for me. Also, the Y scale adjusts automatically which is great. However, if I would like to keep some characteristics costumized like lets say I want to have a Y minimum of 55 as an example but I would like to leave JMP to select the Y maximum according to the data range. How do I do that in this case?

In my situation is different, I would like the Y minimum to be always zero since I have a curve with all the values starting in zero but for some reason JMP sets the variables axis settings starting on negative numbers regardless. Nevertheless, even if I would like the values to be shown on a specific Y minimum for all the graphs I am not able to then have the Y Max to change automatically according to the range of data or until the actual Y maximum.

Using the script above and doing this manually I would have the resulting script line when setting a Y minmum only as 55 :

`SendToReport(Dispatch({},"height",ScaleBox,{Min( 55 ), Inc( 5 ), Minor Ticks( 1 )}));`

You will see that the resulting two graphs will have the same Y maximum regardless and set as below 70 even though one of the graphs has data until 70.

Does anyone know how to do write a script that would allow the Y max to change accroding to the data range or set the Max dependent on the Local filter already defined?

Thanks

1 ACCEPTED SOLUTION

Accepted Solutions

Highlighted

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

It appears as if the max value is stuck for both charts. However, here is a work around that permits the charts to run independently.

```
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
win = New Window( "Graphs", lub = Lineup Box( N Col( 2 ) ) );
Sexs = (Associative Array( Column( dt2, "sex" ) ) << Get keys);
For( i = 1, i <= N Items( Sexs ), i++,
dt2 << select where( :sex == sexs[i] );
dt = dt2 << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
lub << append(
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :sex, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :Sex ),
Where( :Sex == Sexs[i] ),
Display( :Sex, Size( 224, 126 ), List Display )
)
)
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
)
;
);
```

Jim

2 REPLIES 2

Highlighted

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

It appears as if the max value is stuck for both charts. However, here is a work around that permits the charts to run independently.

```
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
win = New Window( "Graphs", lub = Lineup Box( N Col( 2 ) ) );
Sexs = (Associative Array( Column( dt2, "sex" ) ) << Get keys);
For( i = 1, i <= N Items( Sexs ), i++,
dt2 << select where( :sex == sexs[i] );
dt = dt2 << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
lub << append(
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :sex, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :Sex ),
Where( :Sex == Sexs[i] ),
Display( :Sex, Size( 224, 126 ), List Display )
)
)
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
)
;
);
```

Jim

Highlighted
##

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Email to a Friend
- Report Inappropriate Content

Re: How to get the graph builder to dispatch a variable scale for the Y variable depending on the da

Thanks so much Jim.

Article Labels

There are no labels assigned to this post.