サンキープロットの色の割り当てJMPコミュニティの皆様、こんにちは。
サンキープロットで、すべてのシーケンスに同じ色カテゴリを割り当てた経験はありますか?私が遭遇した課題は、シーケンスごとに異なる色カテゴリが割り当てられていたため、同じ色を割り当てたシーケンス1から2、…、そしてnへのアイテムの変化を追跡するのが困難だったことです。
本当にありがとう!
基本的なデータ分析とモデリングデータの探索と可視化ウィンドウズサンキープロットの色の割り当てについてこんにちは@qunw 、
コミュニティへようこそ!
平行座標プロットは、カテゴリ別に色分けできるので、目的達成に役立つと思います。詳しくは、 https://www.jmp.com/support/help/en/18.2/#page/jmp/parallel-plots.shtmlをご覧ください。
@jthiが作成した拡張サンキー プロット (ESP) も確認できます: https://community.jmp.com/t5/JMP-Add-Ins/Enhanced-Sankey-Plot-ESP/ta-p/549745
これらのオプションがお役に立てば幸いです。
サンキープロットの色の割り当てについてこんにちは@qunw 。あなたが経験している問題の例を(匿名で)投稿していただけますか?
私としては、サンキー プロットを使用して、プロセス フロー中の「プロパティ」の状態変化を監視できればと思っています。
たとえば、合格と不合格の異なるカテゴリなどです。
サンキープロットでは、色はカテゴリごとの値ではなく、「グループ」を示します。(図の左側の赤色は、右側の赤色と同じデータテーブルの行です。プロット内の他の場所も同様です。)これは、「各シーケンスに異なる色のカテゴリがある」と説明されている内容ですか?
結果として、以下の例では、左側の青は 0 になり、中央と右側の青は 0 になります。

一方、プロットの仕組みからすると、すべての「1」に同じ色を与えるのは意味がありません。
しかし、複雑なサンキープロットで 1 を「見つける」にはどうすればよいでしょうか。
同じ色じゃなかったら?
残念ですが、ラベルだけです!
そして、「状態」の変化(例:0 から 1 への変化)をどうやって見つけるか。-> 肉眼ではほぼ不可能 - 脳のコプロセッサに大きな負荷をかけた状態でのみ機能します。
連続値のサンキープロットとの違い:

... 名義モデリング タイプの列の場合、同じ値が Y 軸に沿ってかなり異なる位置にある場合があります。
これにより、公称値を持つサンキー プロットの「状態」の変化を検出することが非常に困難になります。
公称モードから、同じ高さで同じ値を持つ準「連続モード」に切り替えるオプションがある可能性がありますが、「チューブ」の幅で「人口」を追跡するというクールな追加機能があります。
このモードを有効にしたいという要望があります: 並列プロット: 同期軸
現時点での回避策:
(疑似)連続値を使用します。
サンキープロットの色の割り当てについて使いやすさの他に、美的側面もあります。
なぜ貯蓄や住宅などが上向きに曲がっているのでしょうか。なぜ同じ高さに留まらないのでしょうか。
右下に十分な(空の)スペースがあります。

サンキープロットの色の割り当てについてVictorさん、参考資料をありがとうございます!患者治療プロファイリングのサンキープロットには平行座標プロットを使用しましたが、治療シーケンス内の同じレジメンに同じ色を割り当てるのは困難です。平行座標プロットの説明に含まれている2つの例は、私のケースと完全には一致していないため、治療間で色設定を同期させるには追加のコーディングが必要になるかもしれません。
サンキープロットの色の割り当てについてHogiさん、この質問への回答と例の共有、本当にありがとうございます!患者の治療プロファイリングにサンキープロットを使用し、治療のシーケンス内で同じレジメンに同じ色を割り当てようとしました。私のケースはあなたの例とよく似ています。「シーケンスごとに異なる色分け」という私の説明は正しかったですね。X軸の「値1、2、3」は「治療1、2、3」のように、「値0、1、2」は治療ごとのレジメンのようなものです。各「値1、2、3」の0、1、2の色設定を、値1、2、3全体で「1」が赤、「2」が緑、「0」が青になるように同期させたいと思っています。そうすれば、患者の治療経過を理解するのに役立ちます。何か解決策があれば教えてください。どうぞよろしくお願いいたします。

サンキープロットの色の割り当てについてこのグラフはコミュニティの投稿から学びました。その投稿では、初期治療とその後の治療における各レジメンの多様性を追跡するなど、関連する質問を視覚化する別の方法が紹介されていました。このグラフを生成する方法は、後続のアウトフローの各値が「自動車」「住宅」「税金」など、アウトフロー1の同じ値から派生している場合は、アウトフロー1の値をプレフィックスとしてラベル付けすることで作成しました。これを実現するには、データの前処理が必要です。もっと良い方法をご存知でしたら、ぜひ教えてください。ありがとうございます!
サンキープロットの色の割り当てについて
@qunwは次のように書きました:
「値 1、2、3」それぞれにおいて、0、1、2 の色設定を同期させたいと思います。ここで、「1」は赤、「2」は緑、「0」は青です。値 1、2、3 全体で。
はい、分かりました。
残念ながら、これはサンキー プロットでは不可能 (かつ意図されていない) です。
サンキープロットの色の割り当てについてGraphBuilder では、行状態またはカラー ドロップゾーンを介して色を割り当てることができます。
どちらの場合も、色は行ごとに定義されます。
そのため、プロットで軌跡を選択すると、特定の行が選択されます。軌跡の色は、この行の色によって定義されます。つまり、軌跡は1つにつき1色です。

もっと見る...
New Table( "treatment",
Add Rows( 9 ),
New Column( "patient",
Character,
Set Values(
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8"}
)
),
New Column( "treatment 1",
"Nominal",
Set Values( [1, 1, 1, 2, 2, 2, 3, 3, 3] )
),
New Column( "treatment 2",
"Nominal",
Set Values( [1, 2, 3, 1, 2, 3, 1, 2, 3] )
),
New Column( "treatment 3",
"Nominal",
Set Values( [1, 1, 2, 1, 2, 3, 3, 3, 3] )
)
)
サンキープロットの色の割り当てについて同じ行に異なる色を設定するには、スクリプトを使用するか、行を分割する必要があります。
行を分割する: テーブルを積み重ねる:
current data table << Stack( columns( :treatment 1, :treatment 2, :treatment 3 ));
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Label ), Y( :patient ), Color( :Data ) ),
Elements( Heatmap( X, Y, Legend( 4 ) ) )
);

サンキープロットの色の割り当てについてヒートマップ プロットにはすべての情報が含まれていますが、それを「理解」するために人間の脳による共同処理がどれだけ必要かは驚くべきことです。
サンキー プロットに近づきました。処理は色と y 軸に沿った位置で示されます。
-> 必要なコプロセッシングが少なくなり、情報を肉眼で確認しやすくなります。

サンキーにさらに近づき、すべての軌跡を1つのプロットにまとめると、
グラフが非常に混雑し、特定の軌跡をたどることができなくなります。

サンキープロットの色の割り当てについてまさにその通りです!
サンキープロットの色の割り当てについてそうですね。プロファイル追跡には、サンキープロットが依然として最適な視覚化手法でしょう。
サンキープロットの色の割り当てについて平行プロット:同期された軸の提案はどうでしょうか?
同じ「値」を識別するには、同じ「Y」位置を使用します。
このオプションは、モデリング タイプが「連続」(名目ではない)の列ではすでに使用できます。
線の幅を調整してグラフの見栄えを良くすることができます。
残念ながら、線の幅を使用して割合/人口を表すことはできません。
色は別の種類の情報を識別するためにも使用できます。
初期治療:

さまざまな治療法の数:

dt = New Table( "treatment",
Add Rows( 9 ),
New Column( "patient",
Character,
Set Values(
{"V1_0", "V1_1", "V1_2", "V1_3", "V1_4", "V1_5", "V1_6", "V1_7", "V1_8"}
)
),
New Column( "treatment 1",
//"Nominal",
Set Values( [1, 1, 1, 2, 2, 2, 3, 3, 3] )
),
New Column( "treatment 2",
//"Nominal",
Set Values( [1, 2, 3, 1, 2, 3, 1, 2, 3] )
),
New Column( "treatment 3",
//"Nominal",
Set Values( [1, 1, 2, 1, 2, 3, 3, 3, 3] )
)
);
//this functionality is only available for scripters.<BR />//via the GUI, a user can create the equation manually
dt << New Formula Column(
Operation( Category( "Character" ), "Concatenate with Underscore" ),
Columns( :treatment 1, :treatment 2, :treatment 3 )
) << Run Formulas;
Graph Builder(
Size( 568, 240 ),
Show Control Panel( 0 ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables(
X( :treatment 1 ),
X( :treatment 2, Position( 1 ) ),
X( :treatment 3, Position( 1 ) ),
Color( :"Concatenate[treatment 1,treatment 2,treatment 3]"n )
),
Elements(
Parallel( X( 1 ), X( 2 ), X( 3 ) )
)
);