かなり特殊な株価チャートですね。専門家の皆様、ありがとうございます。
完全な大きなテーブルを使用して、サブセットを抽出せずにコントロールパネルで独立したグラフを作成するにはどうすればよいでしょうか。
例えば、この株価データはスクリプトによって処理されて複数の株価データが生成されますが、各株の価格データには大きなばらつきがあります。
グラフ ビルダーで wrap を使用して完璧なグラフを取得することは困難です。
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< How to use scripts to create independent graphs for each stock in the control panel?Automation and Scripting</SELECT>
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("");

グラフビルダー呼び出しでWhereを使用して画像として取得することができます
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();
株価チャートにはスクリプトがあるため、効果が異なります。専門家に感謝します!
/*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););
写真の部分をスキップして、「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();