グラフビルダーチャートのタイトルを設定するJMP 18 で、「グラフ ビルダー」、「グループを適合」を使用して 3 行の折れ線グラフを作成するスクリプトを作成しました。基本的に、テーブルには複数の「バイオリアクター」の複数の「時点」における「分析対象」の測定値が含まれています。JMP 18 では各グラフにタイトルが付けられますが、JMP 17 を使用している同僚は、タイトルが欠落しているためグラフが意味をなさないことに気付きました。まったく困惑しています。タイトルを追加する方法について何かアドバイスはありますか?
スクリプトは次のとおりです。
newWindow = New Window(reportName, tb = Tab Box());
//loop through the dataTables and add tab page box for each with a local data filter for dilution factor on left, and line charts on the right
for( i = 1, i <= NItems(dataTables), i++,
tb << Add(
Tab Page Box(
Title(dataTables[i] << get name),
Data Filter Context Box(
H List Box(
dataTables[i] << Data Filter(
Local,
Add Filter( columns( :Dilution Factor, :Type ) ),
Mode( Select( 1 ), Show( 1 ), Include( 1 ) )
),
V List Box(
dataTables[i] << Fit Group(
Graph Builder(
Size( 300, 300 ),
Show Control Panel( 0 ),
Variables(
X( :Time point ),
Y( :"Mean(Value)"n ),
Overlay( :Vessel )
),
Elements( Line( X, Y, Legend( 20 ) ) ),
By( :Analyte )
),
<<{Arrange in Rows( 3 )}
)
)
)
)
)
)
);
tb << set selected(1);In JMP 17 the title highlighted with the red arrow is missing for each chart:
自動化とスクリプトRe: グラフビルダーチャートのタイトルを設定する設定の異常を除外するには、次の出力を比較してください。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "test",
dt << Fit Group(
Graph Builder(
Ignore Platform Preferences(1), // next step: disable this line
Size( 300, 300 ),
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Line( X, Y, ) ),
By( :age )
),
<<{Arrange in Rows( 3 )}
)
);
次のステップ: 回線を無効にして再度確認します。
サンプル データ セットに問題がない場合、データ内で問題を見つける必要があります。
-> 共有は可能ですか?
Re: グラフビルダーチャートのタイトルを設定するデータフィルターがJMP17を破壊しています
Names Default To Here( 1 );
dts = {};
Insert Into(dts, Open("$SAMPLE_DATA/Big Class.jmp"));
Insert Into(dts, Open("$SAMPLE_DATA/Big Class Families.jmp"));
nw = New Window("", tb = Tab Box());
For(i = 1, i <= N Items(dts), i++,
tb << Add(
Tab Page Box(Title(dts[i] << get name),
Data Filter Context Box(
H List Box(
/*dts[i] << Data Filter(
Local,
Add Filter(
columns(:sex)),
Mode(Select(1), Show(1), Include(1))
),*/
V List Box(
dts[i] << Fit Group(
Graph Builder(
Size(300, 300),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
),
<<{Arrange in Rows(3)}
)
)
)
)
)
)
);
<< Fit Group を使用する場合 (グラフ ビルダー用ではないため、実際に使用すべきかどうかはわかりませんが、機能します)、作成後にタイトルを修正するか、別の方法で作成するかといういくつかのオプションがあります。
これはあまり堅牢ではないかもしれませんが、何ができるかについてのアイデアを与えることができます(Where式に頼るのではなく、列の値を使用する方がおそらくより堅牢なオプションです)
Names Default To Here( 1 );
dts = {};
Insert Into(dts, Open("$SAMPLE_DATA/Big Class.jmp"));
Insert Into(dts, Open("$SAMPLE_DATA/Big Class Families.jmp"));
nw = New Window("", tb = Tab Box());
For(i = 1, i <= N Items(dts), i++,
tb << Add(
Tab Page Box(Title(dts[i] << get name),
Data Filter Context Box(
H List Box(
dts[i] << Data Filter(
Local,
Add Filter(
columns(:sex)),
Mode(Select(1), Show(1), Include(1))
),
V List Box(
dts[i] << Fit Group(
Graph Builder(
Size(300, 300),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
),
<<{Arrange in Rows(3)}
)
)
)
)
)
)
);
wait(0);
If(Word(1, JMP Version(), ".") == "17",
gb_obs = nw << XPath("//OutlineBox[@helpKey = 'Graph Builder']");
For Each({gb_ob}, gb_obs,
gb = gb_ob << Get Scriptable Object;
s = gb << get script;
w = Extract Expr(s, Where(Wild List()));
a = Substitute(Char(Arg(w, 1)), "==", "=");
gb << Title("Graph Builder " || Substr(a, 2))
);
);
編集: データフィルターを使用するとタイトルが壊れます
Re: グラフビルダーチャートのタイトルを設定するJMP18では列ごとの動作方法が変更され、両方ですべてが機能するわけではないため、異なるバージョンごとに別々の方法を使用するのが最も簡単かもしれません。
Names Default To Here( 1 );
dts = {};
Insert Into(dts, Open("$SAMPLE_DATA/Big Class.jmp"));
Insert Into(dts, Open("$SAMPLE_DATA/Big Class Families.jmp"));
nw = New Window("", tb = Tab Box());
For(i = 1, i <= N Items(dts), i++,
tb << Add(
Tab Page Box(Title(dts[i] << get name),
Data Filter Context Box(
H List Box(
dts[i] << Data Filter(
Local,
Add Filter(
columns(:sex)),
Mode(Select(1), Show(1), Include(1))
),
If(Word(1, JMP Version(), ".") == "17",
Lineup Box(N Col(3),
gb = Graph Builder(
Size(300, 300),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
)
)
,
gb = Graph Builder(
Size(300, 300),
Group Options(Layout("Arrange in Rows", N Across(3))),
Show Control Panel(0),
Variables(X(:height), Y(:weight), Overlay(:sex)),
Elements(Line(X, Y, )), By(:age)
)
)
)
)
)
)
);
ユーザーが各行の項目数を変更できるようにしたい場合は、アウトライン ボックスとスクリプトを追加できます。
Re: グラフビルダーチャートのタイトルを設定する@jthi が指摘しているように、データ フィルターが相違点の 1 つの原因です。Fit Group がデータ フィルターに応答する方法は、JMP 18 以降で変更されました。
JMP 17 と JMP 18 のもう 1 つの大きな違いは、グループ別グループ プラットフォームの追加です。JMP 18 では、この新しいプラットフォームに Fit Group と同様のレイアウト オプションがあります。JMP 17 では、Fit Group を Line Up Box に置き換えてレイアウトできます。この 2 つを組み合わせると、このスクリプトはどちらでも適切に機能します。
dataTables = EvalList({
Open("$SAMPLE_DATA/Big Class.jmp"),
Open("$SAMPLE_DATA/Big Class Families.jmp")
});
newWindow = New Window("Reports", tb = Tab Box());
//loop through the dataTables and add tab page box for each with a local data filter for dilution factor on left, and line charts on the right
for( i = 1, i <= NItems(dataTables), i++,
tb << Add(
Tab Page Box(
Title(dataTables[i] << get name),
Data Filter Context Box(
H List Box(
dataTables[i] << Data Filter(
Local,
Add Filter( columns( :sex ) )
),
V List Box(
Line Up Box(NCol(3),
dataTables[i] << Graph Builder(
Size( 300, 300 ),
Show Control Panel( 0 ),
Variables(
X( :height ),
Y( :weight )
),
Elements( Line( X, Y, Legend( 20 ) ) ),
By( :age ),
Group Options( Layout( "Arrange in Rows", N Across( 3 ) ) )
)
)
)
)
)
)
)
);
tb << set selected(1);
17/18 のレイアウトは異なります。JMP 17 では LineUpBox がグリッドを管理しますが、JMP 18 では Group Platform がレイアウトを管理し、すべての LineUpBox には 1 つの子しかありません。
他のオプションとしては、By を使用するのではなく、Graph Builder で Wrap ロールを使用することですが、その場合、不要な共有軸と凡例が提供されることになります。
-そして
Re: グラフビルダーチャートのタイトルを設定する別のオプション: 同僚にJMP18.1にアップデートしてもらい、JMP18で導入された新しいページオプションを使用する:)
彼へのボーナス:
検索に問題はなくなりましたか?それとも見つかりませんか?

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Variables(
X( :height ),
Y( :weight ),
Page( :age, Levels per Row( 3 ) ),
Overlay( :sex )
),
Elements( Points( X, Y ), Smoother( X, Y ) )
);
Re: グラフビルダーチャートのタイトルを設定するご協力ありがとうございます。JMP 17 でテストするのに数日かかりましたが、問題なく動作しています。
Re: グラフビルダーチャートのタイトルを設定するこの提案に感謝します。私は最終的にJMP 17とJMP 18の両方でLine Up Boxを使用しました。