@txnelson @hogi . Thanks for your suggestions. I am back on this topic after a short break.
@jthi Running this part of your script in my JMP 16.2
Names Default To Here(1);
create_graph = Function({dt, ycollist}, {Default Local},
vlb = V List Box(
gb = dt << Graph Builder(Variables(X(:lot_id)))
);
For Each({colname, idx}, ycollist,
gb << Add Variable({Eval(colname), Role("Y")});
gb << Add Element(1, idx, {Type("Box Plot"), X, Y}); // define boxplots
gb << Remove Element(1, idx, 1); // remove points
);
return(vlb);
);
my_groups = {{"PNP1", "PNP2", "PNP3"}, {"NPN3", "NPN2", "NPN1", "NPN4"}};
dt = Open("$SAMPLE_DATA\semiconductor capability.jmp");
// could also just create journal and add new_vlb to that
nw = New Window("Collector",
vlb = V List Box()
);
For Each({my_group}, my_groups,
new_vlb = create_graph(dt, my_group);
vlb << Append(new_vlb);
);
gives
i.e.
{"PNP1", "PNP2", "PNP3"}
and
{"NPN3", "NPN2", "NPN1", "NPN4"}
are not plotted on the y-axis as mentioned in my first post (i.e. one above the other with spec limit ref lines visible) and on two separate charts.
As mentioned above, my parameters to plot are grouped as in the following separate table
Names Default To Here( 1 );
dtg = New Table( "Parameter Groups",
Add Rows( 11 ),
New Column( "Parameter", Character, Nominal,
Set Values( {"PNP1", "PNP2", "NPN2", "NPN3", "INV2", "NPN1", "PNP3", "NPN4", "INV3", "PNP6", "INV4"} ) ),
New Column( "Group", Character, Nominal, Set Values( {"DC", "DC", "AC","AC","RF","AC","DC","AC", "RF", "DC", "RF"} ) )
);
I would like the parameters in each chart to be grouped by the entry in the Group column of the above table.
e.g. the Top plot has a tile of DC with "PNP1", "PNP2", "PNP3" and "PNP6"
plotted on the y-axis and below it the next chart with title AC with "NPN2", "NPN3", "NPN1" and "NPN4" plotted and finally the third chart at the bottom with title "RF" with "INV2" and "INV4" plotted on the y-axis.
Could I please get some help with the associative array approach to proceed? This way I can get the unique Groups, but how to get the associated Parameters (use Get Rows Where ())?
gg = Associative Array (dt:Group);
gg << get keys;
(@jthi, I prefer your "collector" window option in addition to the journal as it gives we more flexibility depending on what I want to look at)
When it's too good to be true, it's neither