みなさん、こんにちは。
平行プロットを実行し、変数を使用して線に色を付けます。たとえば、Big Class テーブルで次のスクリプトを使用します。
obj = Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
次に線の幅を変更したいと思います。これを実行してみました:
frame = Report( obj )[FrameBox(1 )];
seg = frame << Find Seg( "Polyline Seg" );
seg << Set Line Width(3);
ただし、Color 変数の最初のレベル (この例では age) に関連付けられた行のみが変更されました。
すべての行を同時に変更するにはどうすればよいでしょうか?グラフを作成するときに Dispatch 関数を使用する必要がありますか?ただし、Color変数のレベル数が事前にわからないため、それを処理する方法が実際にはわかりません。
よろしくお願いいたします。
コードが意図したとおりに機能しない理由がわかりません。 それは私のために働きます(Mac用のJMP15)。
別のアプローチは、Xpathを使用することです。
(obj << xpath( "//PolylineSeg" )) << Set Line Width( 3 );
こんにちはアン、
私が行ったいくつかの実験に基づいて、最初に、問題がGBプロットライン自体ではなく凡例にあることを確認したいと思います。 その場合、[カスタマイズ]メニューで線幅を手動で変更すると、凡例も正しく更新されないことに気付きました。 したがって、これはバグのようです。
ただし、凡例で線幅を1つずつ手動で変更すると、曲線と凡例の両方が更新されます。
対応するコード(GBスクリプトから削除された1つの凡例アイテム)は次のとおりです。
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (2, {Line Width (3)}, Itemd ID ("14", 1) ) )}));
したがって、Legendアイテム(つまり年齢)を繰り返すために、次の「醜い」コードを思いつきました。
Names Default to Here (1);
dt = current data table ();
dts = dt << Summary(
Group( :age ),
Freq( "None" ),
Weight( "None" ),
invisible
);
dlist = Column (dts, "age") << get values;
Close (dts, NoSave);
show (dlist);
obj = dt << Graph Builder(
Size( 636, 660 ),
Variables( X( :height ), X( :weight, Position( 1 ) ), Color( :age ) ),
Elements( Parallel( X( 1 ), X( 2 ), Legend( 3 ) ) )
);
objr = obj << report;
//frame = objr [FrameBox(1 )]; NO LONGER NEEDED
//seg = frame << Find Seg( "Polyline Seg" ); NO LONGER NEEDED
//seg << Set Line Width(6); NO LONGER NEEDED
For (i = 0, i < N Items (dlist), i++,
obj << SendToReport( Dispatch( {}, "400", ScaleBox, {Legend Model (3, Properties (i, {Line Width (12)}, Itemd ID (dlist [i], 1) ) )}))
);
ご回答いただいた@msと@Thierry_Sに感謝します。
私の目的は、凡例だけでなくグラフの線幅を変更することです。
私は@msのソリューションを選択しました。少し短いからですが、どちらもうまく機能します。:)