Rather special stock charts. Thank you, experts.
How can a complete large table be used to create an independent graph in the control panel without extracting subsets
For example, this stock data is processed by a script to generate multiple stock data, and the price data of each stock vary greatly.
It is difficult to obtain a perfect Graph using wrap in Graph Builder.
d0=Current Data Table();r=N Row(d0);
VV={"Date","Open","High","Low","Close","Volume"};
for(k=1,k<=4,k++,
d0<<SELECT where="">2,For(j=2,j<=NItems(VV)-1,j++,i=1;ca=VV[j];ar=d1<<GETASMATRIX></GETASMATRIX></SELECT>
How to use scripts to create independent graphs for each stock in the control panel?
dt=Current Data Table();p1=dt<< Graph Builder(Size(656,518),Show Control Panel(0),Show Legend(0),Show Title(0),Show Footer(0),Show X Axis(0),Show Y Axis(0),Show X Axis Title(0),Show Y Axis Title(0),Variables(X(Transform Column("Row",Formula(Row()))),Y(:High),Y(:Low,Position(1)),Y(:M5,Position(1),Side("Right")),Y(:M10,Position(1),Side("Right")),Y(:Volume)),Relative Sizes("Y",[243 166]),Elements(Position(1,1),Bar(X,Y(1),Y(2),Legend(7),Bar Style("Interval")),Line(X,Y(3),Y(4),Legend(6))),Elements(Position(1,2),Bar(X,Y,Legend(5))),SendToReport(Dispatch({},"Row",ScaleBox,{Min(-1),Max(64),Inc(10),Minor Ticks(0)}),Dispatch({},"High",ScaleBox,{Min(20),Max(56),Inc(10),Minor Ticks(1)}),Dispatch({},"M5",ScaleBox,{Min(20),Max(56),Inc(10),Minor Ticks(1)}),Dispatch({},"400",ScaleBox,{Legend Model(5,Properties(0,{Fill Color(32),Transparency(0.5)},Item ID("Volume",1)))}),Dispatch({},"Graph Builder",FrameBox,{Add Graphics Script(4,Description(""),/*KE*/bb=0.4;days=r-1;Pen Size(1);For(i=1,i<=N Rows(dt),i++,If(:Open[i]<=:Close[i],Pen Color(light red);Fill Color(light red);,Pen Color(light green);Fill Color(light green););Rect(i-bb,Max(:Open[i],:Close[i]),i+bb,Min(:Open[i],:Close[i]),1);Rect(i-bb,Max(:Open[i],:Close[i]),i+bb,Min(:Open[i],:Close[i]),0););)}),Dispatch({},"400",LegendBox,{Legend Position({7,[3],6,[0,1],5,[2]})})));(p1 << XPath("//OutlineBox[text() = 'Graph Builder']")) << Set Title("");

You could use Where in your graph builder call and then get it as a picture
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, groups = By(:sex));
lub = Lineup Box(N Col(2));
For Each({group}, groups,
gb = dt << Graph Builder(
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11))),
Where(:sex == group),
Invisible
);
wait(0);
lub << Append(Report(gb) << get picture);
gb << Close Window;
);
nw = New Window("Report",
lub
);
Write();
Because stock charts have scripts, their effects are different、Thanks Experts!
/*KE*/bb=0.4;days=r-1;Pen Size(1);For(i=1,i<=N Rows(dt),i++,If(:Open[i]<=:Close[i],Pen Color(light red);Fill Color(light red);,Pen Color(light green);Fill Color(light green););Rect(i-bb,Max(:Open[i],:Close[i]),i+bb,Min(:Open[i],:Close[i]),1);Rect(i-bb,Max(:Open[i],:Close[i]),i+bb,Min(:Open[i],:Close[i]),0););
Skip the picture part and just use Where?
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, groups = By(:sex));
lub = Lineup Box(N Col(2));
gbs = {};
For Each({group}, groups,
gb_expr = Expr(dt << Graph Builder(
Variables(X(:weight), Y(:height)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11))),
Where(:sex == group),
Invisible
));
lub << Append(gb = gb_expr);
Insert Into(gbs, gb);
);
nw = New Window("Report",
lub
);
Show(gbs << Get Data Table);
Write();