JSLでグラフ電卓を使用した後にX軸のスケールを変更するにはどうすればよいですか(およびグラフ作成のアプローチの質問)こんにちは、
さまざまな列を持つファイルを処理するスクリプトを作成しているので、ここで見つけた、列の数に基づいてGraphBuilder呼び出しを連結する例を変更する必要がありました。不器用ですが、うまくいくようですが、私の問題は、X軸を対数スケールに変更したり、制限を変更したりすることです。Scripting Indexと例からいくつかのアプローチを試しましたが、どれもうまくいかなかったようです。
軸設定の正しい方向へのポインタをいただければ幸いですが、最初のグラフ作成部分をより適切に行う方法を誰かが知っているなら、それも素晴らしいことです。ありがとう!
dt = Current Data Table();
ColNameList = dt << Get Column Names (continuous, string);
//Start with initial graph builder
GraphExpr = "
TestGraph = Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables(";
//Add X Entry
GraphExpr = GraphExpr || "
X( :Name( \!"" || ColNameList[1] || "\!") ),";
//Add the first Y entry
GraphExpr = GraphExpr || "
Y( :Name( \!"" || ColNameList[2] || "\!") ),";
//Add the second Y entry
For( i = 3, i <= N items (ColNameList), i++,
GraphExpr = GraphExpr || "
Y( :Name( \!"" || ColNameList[i] || "\!"), Position (1) ),";
);
//Close out Variables section
GraphExpr = GraphExpr || "
),
Elements(
Line( X, Y( 1 )";
//Build out the lines for all columns
For( i = 2, i <= N items (ColNameList), i++,
GraphExpr = GraphExpr || ", Y( " || char(i) || " )"
);
GraphExpr = GraphExpr || ", Legend( 1 )
)
)
)";
eval(parse(GraphExpr));
TestGraph << Show Legend (0);
グラフィックススクリプティングRe:JSLでグラフ電卓を使用した後にX軸のスケールを変更するにはどうすればよいですか(およびグラフ作成のアプローチの質問)こんにちは、
これは確かに、グラフビルダー式を作成するためのかなり複雑な方法です。 GB式全体を「プレースホルダー」(gbe = Expr(Graph Builder(...))で定義するアプローチを検討することをお勧めします。置換関数を使用して、プレースホルダーを列、変数、ラベルなどに置き換えます。 、次にEval()関数を使用してグラフを生成します(申し訳ありませんが、現在、詳細を提供する時間がありません)
特定の質問については、グラフビルダー式を変数に割り当てると(たとえば、gb =グラフビルダー(...);)、以下のアプローチを使用して、必要な方法で軸を更新できます。
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :age, Size( 23 ) ),
Y( :height, Size( 37 ) ),
Y( :weight, Position( 1 ), Size( 37 ), Side( "Right" ) )
),
Elements( Points( X, Y( 1 ), Legend( 1 ), Jitter( 1 ) ), Points( X, Y( 2 ), Legend( 3 ), Jitter( 1 ) ) )
);
framebox = Report( gb )[framebox( 1 )];
framebox << Y Axis(
Scale ("Log"),
Add Ref Line( 61.25, "Solid", "Medium Dark Green" ),
Show Major Grid( 1 ),
Show Minor Grid( 1 ),
Format( "Fixed Dec", 5, 2 ),
Rotated Labels( "Perpendicular" )
);これがお役に立てば幸いです。
ベスト、
TS
Re:JSLでグラフ電卓を使用した後にX軸のスケールを変更するにはどうすればよいですか(およびグラフ作成のアプローチの質問)軸を変更するすべてのメッセージは、AxisBoxのスクリプトインデックスエントリで利用できます。
使いたいのは
report(TestGraph)[AxisBox(2)] << scale(log);