@jthi Thanks for your suggestions on this topic which I am returning to as I have to keep the data format as in my example data attached in this thread earlier. I can get almost what I need with the script below (there could be better ways to do this but below is my tale). I need help with two things.
- I need to draw a vertical black line connecting Min and Max for each partID (currently not selected in the local data filter, left chart below). When Min/Max is selected in the local data filter (right chart below), they get connected by a vertical black line (in place of black dots now on right chart), I will get to almost the anatomy of a box plot, which I think is enough and fit for purpose. How to get this vertical line via JSL for each part ID (V Line ()?)?
- Secondly, my measured parameters (Current, Resistance in the example data) in actual data will be >40. So, I do not want to do the Legend color setting the way I have done in my script. How to set the legend color as black by default (otherwise JMP colors each Y-group differently and not how I have set the marker colors).
 
Names Default To Here (1);
clear log ();
dt = Current Data Table ();
//Set LSL/USL marker and color
dt << Row Selection(
	Select where( Contains( :Label, "LSL" ) | Contains( :Label, "USL" ) ),
	Match case( 1 ),
	Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( 29 ) << Colors( "Red" ); 
dt << Clear Select;
// Set Q1/Q3 marker and color
dt << Row Selection(
	Select where( Contains( :Label, "Q1" ) | Contains( :Label, "Q3" ) ),
	Match case( 1 ),
	Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( 29 ) << Colors( "Black" ); 
dt << Clear Select;
//Set Median arker and color
dt << Row Selection(
	Select where( Contains( :Label, "Median" ) ),Match case( 1 ),
	Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( 0) << Colors( "Blue" ); 
dt << Clear Select;
// Plot chart
gb = Graph Builder(
	Size( 404, 412),
    Show Control Panel( 0 ),
	Variables( X( :partID ), Y( :Resistance ), Y( :Current ) ),
	Elements( Position( 1, 1 ), Points( X, Y, Legend( 37 ), Jitter( "None" ) ) ),
	Elements( Position( 1, 2 ), Points( X, Y, Legend( 35 ), Jitter( "None" ) ) ),
	Local Data Filter(
		Add Filter(
			columns( :Label ),
			Where( :Label == {"LSL", "Median", "Q1", "Q3", "USL"} )
		)
	),
	SendToReport(
		Dispatch(
			{},
			"400",
			ScaleBox,
			{Legend Model(
				37,
				Properties( 0, {Line Color( 0 )}, Item ID( "Resistance", 1 ) )
			), Legend Model(
				35,
				Properties( 0, {Line Color( 0 )}, Item ID( "Current", 1 ) )
			)}
		)
	)
);
 
 
 
 
					
				
			
			
				
	When it's too good to be true, it's neither