やあ、
グラフ ビルダーで凡例項目を一貫してターゲットにして変更する方法を探しています。
変数を追加して基本的なグラフを生成したら、dispatch ステートメントを使用して線のスタイル/色/サイズを変更します。
私が遭遇している問題は、凡例テキスト (または項目 ID) が、データ テーブルに含めた/除外した行に応じて変化することです。そのため、ディスパッチ ステートメントは一部の選択では機能しますが、他の選択では機能しません。
例:
LHS、x カテゴリ (YearMonth) ごとに複数の行があります。 凡例テキストの形式は「Mean(ColumnName)」です。 | RHS、行を除外すると、独身x カテゴリごとの行。 凡例テキストの形式は「ColumnName」です。 |
 |  |
凡例アイテムを変更するには、以下のように凡例 Model (...) ステートメントを使用しています。ここで、 Item ID( "Mean(Yield_A)", 1 ) は変更するアイテムを識別します。
gb << send to report (
Dispatch(
{},
"400",
ScaleBox,
{Legend Model( 15,
Level Name( 0, "Yield_A", Item ID( "Mean(Yield_A)", 1 ) ),
Properties( 0, {Line Color( "red" ), Line Width( 6 )}, Item ID( "Mean(Yield_A)", 1 ) ),
)
}
));データ テーブル フィルターを使用して行を含めたり除外したりして、グラフを 1 つのセグメントまたは製品に絞り込みます。
1 つの製品にフィルターをかけると、YearMonth ごとに 1 つの行があり、上の RHS グラフで強調表示されているように凡例テキストが変化します。
ディスパッチ ステートメントで使用される元のアイテム ID( "Mean(Yield_A)", 1 ) では、一致するアイテムが見つかりません (列名が mean() でラップされなくなりました)。
回避策の 1 つは、凡例モデル () ステートメントを複製して、"ColumnName" の形式の凡例テキストをターゲットにすることです (例: Item ID( "Yield_A", 1 ))。
これは機能しますが、面倒です。
質問:
- 上記の両方のケースで機能する凡例項目を対象とする代替/より良い方法はありますか?
- legend model() ステートメントまたはそのコンポーネントに関するスタンドアロンのドキュメントはありますか (見つけられませんでした)?
最後に 1 つの考え... 各 x-category に 1 つの行/値しかない場合、凡例テキストで Mean() ラッパーを削除するのは意図的であると想定していますが、凡例項目を "Mean( columnName)」、値が 1 つしかない場合でも? 結局、線要素の要約統計量は依然として「平均」に設定されています。
ありがとう、
レイ
上記を解決策として受け入れましたが、JMP16でのみ機能します。 したがって、JMP15で機能する可能性のある他の提案/オプションを引き続き受け入れます. ありがとう
のように見えますレジェンドサーバーJMP16追加です。
私は JMP16 をインストールしていますが、私の組織のほとんどはまだ JMP14 または JMP15 を使用しています。
チームと共有する JMP GUI を構築しているので、今のところ JMP15 を使い続ける必要があります。
@jthi - 入力していただきありがとうございます - 将来的には間違いなくこれを使用します (今だけではありません)。
Legend Server の Scripting Index を確認してください。少なくとも凡例のラベルを変更できます (ただし、Legend Server のドキュメントはかなり不適切です)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables(X(:height), Y(:weight), Overlay(:sex), Color(:age)),
Elements(Points(X, Y, Legend(1)), Smoother(X, Y, Legend(2)))
);
server = gb << Get Legend Server;
items = server << Get Legend Items;
For Each({item, index}, items[1], item << Set Label("Item " || Char(index)));