オーバーレイ プロットのカスタマイズ色 (行の色)オーバーレイ プロットをプロットするために、各デバイスの行をプログラムで色分けした JMP DataTable を用意しています。 (100,000 行を含む大きなテーブル) オーバーレイ プロット X と Y でプロットすると、色が正しく表示されます (ポイントは行の色です)。各デバイスには数千のポイントがあり、各デバイスからのすべてのデータは常に同じ行の色になります。
プロットをデバイスごとにグループ化すると、JMP は行の色ではなく、独自のカラー スキームを割り当てます。 (この場合は私が望んでいることではありません)
プロットでは、点を表示するのではなく、点を線で接続し、コネクタの色を行の色にしたいと考えています。
JMP は、コネクタの色を行の色ではなく、固定の色にします。 異なるコネクタの色を取得する唯一の方法は、デバイスごとにグループ化することです。 しかし、デバイスごとにグループ化すると、色が行の色と一致しなくなります。
私の DataTable には R、G、B 値の列があるので、これを使用できますが、何をすればよいかわかりませんでした。
ところで、このタスクに GraphBuilder を使用しても同様の問題に遭遇しました…
ご提案をお待ちしております。
ありがとう、
クリス
Re: オーバーレイ プロットのカスタマイズ色 (行の色)ありがとう! これは私にとってはうまくいきました。
Re: オーバーレイ プロットのカスタマイズ色 (行の色)数年前にも同様の質問をしました。 スレッドは次のとおりです。
https://community.jmp.com/t5/Discussions/How-to-create-a-legend-in-Graph-Builder-that-preserves-row/mp/7983#M7977
Re: オーバーレイ プロットのカスタマイズ色 (行の色)__fList__ と __mList__ は、Substitute() 関数のプレースホルダーです。見る
ヘルプ==スクリプトインデックス==>関数==>置換
定義と例については
Re: オーバーレイ プロットのカスタマイズ色 (行の色)ジム、
定義できますか
__fリスト__
そして
__mリスト__
変数はコード例で使用されていますが、初期化/定義されていませんか?
ありがとう、
クリスRe: オーバーレイ プロットのカスタマイズ色 (行の色)クリス、
あなたがやろうとしていることを行うために JSL を使用していることに安心してください。JSL には、汎用スクリプトを構築するためのすべての機能が備わっています。
Re: オーバーレイ プロットのカスタマイズ色 (行の色)ジム、コードをありがとう。理解できた気がする。 構文例は本当にありがたいです!私の場合は、それを一般化する必要があります (すべてのビンを含む文字列を構築する必要がありますが、実行時までわかりません)。
__fList__ は、特定の色が必要な対象の列の値のリストにすぎないと思います。したがって、この式はさらに大きくなる可能性があり、リストには数千のアイテムが含まれる可能性があり、式内に複数の異なるカラー ビンを含めることもできると思います。
今日中にこれを試す時間ができるかもしれないので、その様子をお知らせします。
私が見た中で最も難しい課題は、私の一般化されたケースに対して以下の式を構築することですが、最初は概念の証明としてハードコードされた例を試してみます。式に行き詰まったら、フォーラムに戻ってくるかもしれません。
再度、感謝します!
クリス
Eval(
Substitute(
Expr(
dt:sex << set property( "value colors", {"F" = __fList__, "M" = __mList__} )
),
Expr( __fList__ ), fColorList,
Expr( __mList__ ), mColorList
)
);
Eval(
Substitute(
Expr(
dt:sex << set property( "value colors", {"F" = __fList__, "M" = __mList__} )
),
Expr( __fList__ ), fColorList,
Expr( __mList__ ), mColorList
)
);
// Set the row state colors
dt << Color by Column( :Sex );
Re: オーバーレイ プロットのカスタマイズ色 (行の色)以下は、行状態の色の設定や値の色の列プロパティの設定で RGB カラーを処理する方法を説明するスクリプトです。
Names Default To Here( 1 );
// Open a sample data table, and modify it to
// have 3 new columns representing the RGB values
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dt << New Column( "R" );
dt << New Column( "G" );
dt << New Column( "B" );
For Each Row(
If(
:Sex == "F",
:R = Color To RGB( "red" )[1];
:G = Color To RGB( "red" )[2];
:B = Color To RGB( "red" )[3];,
:R = Color To RGB( "purple" )[1];
:G = Color To RGB( "purple" )[2];
:B = Color To RGB( "purple" )[3];,
)
);
// Here are a couple of examples of setting colors
// The first one just sets the row colors based upon
// the RGB colors from the :R, :G, :B columns
For( i = 1, i <= N Rows( dt ), i++,
colorList = {};
colorList[1] = :R[i];
colorList[2] = :G[i];
colorList[3] = :B[i];
Row State( i ) = Color State( colorList );
);
Wait( 10 );
dt << clear row states;
Wait( 5 );
// The next example, sets the row state colors by
// first setting the "Value Colors", column
// property, and then sets the row state colors
// based upon the "Value Colors"
// To set the "Value Colors", the below commented
// statement needs to be created using JSL
/*dt:sex << set property("value colors",
{"F" = {0.670588235294118, 0.0313725490196078, 0.988235294117647},
"M" = {0.941176470588235, 0.196078431372549, 0.274509803921569}});*/
// First we will create the female RGB color list
// Find a row that has the RGB colors we desire
rowList = dt << get rows where( :Sex == "F" );
// Since all values of R,G & B will be the same, only used the first
// selected row to create the list for the females
fColorList = {};
fColorList[1] = :R[rowList[1]];
fColorList[2] = :G[rowList[1]];
fColorList[3] = :B[rowList[1]];
// Repeat for the males
rowList = dt << get rows where( :Sex == "M" );
mColorList = {};
mColorList[1] = :R[rowList[1]];
mColorList[2] = :G[rowList[1]];
mColorList[3] = :B[rowList[1]];
// Substitute into a template of the Set Property structure
// the created RGB lists for females and males
Eval(
Substitute(
Expr(
dt:sex << set property( "value colors", {"F" = __fList__, "M" = __mList__} )
),
Expr( __fList__ ), fColorList,
Expr( __mList__ ), mColorList
)
);
// Set the row state colors
dt << Color by Column( :Sex );
Re: オーバーレイ プロットのカスタマイズ色 (行の色)説明に基づいて何が得られるのかを視覚化するのは難しいですが、いくつかの色を手動で選択してスクリプトを保存することで、オーバーレイ プロットがどのようにグループにカスタム カラーを適用するかを確認する必要があるかもしれません。その場合は、代わりに各グループに必要な RGB 値を指定する独自のスクリプトを作成できると思います。ループなどを介してスクリプトを構築する必要があるかもしれませんが、それは可能だと確信しています。
あなたが説明している内容を説明するために、データセットの最小限の実用的な例を提供できる可能性はありますか?
Re: オーバーレイ プロットのカスタマイズ色 (行の色)これは便利です。列を「マーク」し(ラベル/ラベル解除)、その列ごとに色を付けると、行の色はその列ごとにプロットしてグループ化するときの色と一致します。しかし、ここで私の質問は、プログラムでどのように設定するかです。その列のさまざまなグループの RGB 値。RGB 値によって各色が何であるかを設定する機能が必要です。 JSL sytex がわかりません。R、G、B の列があり、3 つすべてを含む連結列を作成し、その列ごとに色を付けることはできましたが、さまざまなグループのプロパティをプログラムで設定する方法がわかりませんでした。
Re: オーバーレイ プロットのカスタマイズ色 (行の色)作業している列の列プロパティ「値の色」を設定すると、希望の色を維持できるようになると思います。ほとんどの場合、「値の色」が JMP のデフォルトになります。