やあ、
さまざまな列を持つファイルで動作するスクリプトを作成しているため、ここで見つけた例を変更して、列の数に基づいてグラフ ビルダーの呼び出しを連結する必要がありました。不器用ですが、うまくいくようですが、私の問題は、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);
グラデーション凡例の設定でこれを行う方法についての説明はありますか?
私は試した
Report( gb)[Legend Box(1)] << Legend Model( ...
しかし、うまくいきませんでした
ちょっとジム、それについての迅速な対応に感謝します。それはうまくいきます。そのグラフ項目を参照するために report() を使用する必要があることに気づきませんでした。TestGraph[AxisBox(2)] << scale(log) を使用しようとしていました。
ありがとう、
トッド
軸を変更するすべてのメッセージは、AxisBox のスクリプト インデックス エントリにあります。
あなたが使いたいのは、
report(TestGraph)[AxisBox(2)] << scale(log);
やあ、
これは、グラフ ビルダーの式を作成するためのかなり複雑な方法です。 GB 式全体を「プレースホルダー」 (gbe = Expr (Graph Builder(...)) で定義するアプローチを検討することをお勧めします。substitute 関数を使用して、プレースホルダーを列、変数、ラベルなどに置き換えます。 、次に Eval() 関数を使用してグラフを生成します (申し訳ありませんが、今は詳細を提供する時間がありません)
特定の質問について、グラフビルダー式を変数に割り当てる場合 (例: gb = Graph Builder (...);)、以下のアプローチを使用して、必要な方法で軸を更新できます。
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
やあみんな、
X 軸を自動化する方法について、同様の質問があります。これは時間スケールであり、たとえば、最後に必要な期間 (n=7) からのデータを自動的に表示したいと考えています。
ご協力ありがとうございました。
神聖
以下のような私のスクリプト:

Hi Pmroz,<BR />Script with JSL, <BR />Thank you,<BR />
// → Data Table( "GSB" )
Local( {obj},
obj = Data Table( "GSB" ) <<
Graph Builder(
Size( 604, 659 ),
Variables(
X(
Transform Column(
"Month Year[Date Measured]",
Ordinal,
Format( "m/y", 23 ),
Formula(
Date DMY(
1,
Month( :Date Measured ),
Year( :Date Measured )
)
)
)
),
Overlay( GSB Validation )
),
Elements(
Bar(
X,
Legend( 11 ),
Bar Style( "Stacked" ),
Summary Statistic( "% of Factor" ),
Label( "Label by Value" )
)
),
Local Data Filter(
Add Filter(
columns(
:"Inferred Value (Yes/No)"n,
Transform Column(
"Month Year[Date Measured]",
Ordinal,
Format( "m/y", 23 ),
Formula(
Date DMY(
1,
Month( :Date Measured ),
Year( :Date Measured )
)
)
)
),
Where( :"Inferred Value (Yes/No)"n == "Yes" ),
Where(
Transform Column(
"Month Year[Date Measured]",
Ordinal,
Format( "m/y", 23 ),
Formula(
Date DMY(
1,
Month( :Date Measured ),
Year( :Date Measured )
)
)
) == {3755376000, 3758054400, 3760473600, 3763152000, 3765744000,
3768422400, 3771014400, 3773692800, 3776371200, 3778963200,
3781641600}
),
Display(
Transform Column(
"Month Year[Date Measured]",
Ordinal,
Format( "m/y", 23 ),
Formula(
Date DMY(
1,
Month( :Date Measured ),
Year( :Date Measured )
)
)
),
N Items( 15 )
)
)
),
SendToReport(
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Monthly GSB Validation (%)" )}
),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "%" )} ),
Dispatch( {}, "Where((Inferred Value (Yes", TextBox, {Hide( 1 )} )
)
);
obj << Save Script to Data Table(
"Monthly GSB Validation (%)", <<REPLACE> = 12、y + 1、w / m >= 52、y - 1、y ) ) || If( w >= 10, "W", "W0" ) || Char( w ) ) ) ) )、サイズ( 570, 619 )、変数( X( :"年週[測定日]"n )、オーバーレイ( :最良の製品 ) )、要素( Bar( X, Legend( 2 ) 、棒スタイル( "積み上げ" )、要約統計量( "因子の%" )、ラベル( "値別ラベル" ) ) )、ローカル データ フィルター(フィルターの追加( columns( :"年週[測定日]"n ) , Where( :"年 週[測定日]"n == {"2023W48", "2023W49", "2023W50", "2023W51", "2023W52", "2024W01", "2024W02", "2024W03", "2024W04 ", "2024W05", "2024W06", "2024W07", "2024W08"} ), Display( :"年週[測定日]"n, N Items( 15 ), Find( Set Text( "" ) ) ) ) ), SendToReport( Dispatch( {}, "Where(年週[測定日] = 2023W48, 2023W49, 2023W50, 2023W51, 2023W52, 2024W01, 2024W02, 2024W03, 2024W04, 2024W05, 202 4W06、2024W07、2024W08)"、テキストボックス、{ Hide( 1 )} ) ) );</REPLACE>