WINDOWS 10 > JMP 17.2 > グラフビルダー > 散布図 > 動的クラスター注釈こんにちは、JMPコミュニティの皆さん
Windows Pro 10 - JMP 17.2
2D UMAP に投影されたデータがあり、グラフ ビルダーの UMAP2 x UMAP1 散布図の上に、フォーマットされた (色とサイズ) クラスター ID を自動的に挿入したいと考えています。クラスター ID を個別にプロットし、メインのフレーム ボックスにマージすることで、クラスター ID を取得できました。それでも、クラスター ID ラベルのサイズと色を制御できないため、不十分です。
Add Graphics Script() コマンド内でループを試してみましたが、うまく動作しませんでした。

上記のプロットを作成するために使用したスクリプトは次のとおりです。
Names Default to Here(1);
dt = Data Table ("ANNOTATION of 2D CLUSTERS");
dt_sum = dt << Summary(
Group( :WARD UMAP CLUSTERS ),
Mean( :UMAP1 CENTER by CLUSTER ),
Mean( :UMAP2 CENTER by CLUSTER ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" )
);
gb = dt << Graph Builder(
Size( 483, 675 ),
Fit to Window( "Off" ),
Page Level Fill Color( "White" ),
Graph Spacing( 15 ),
Spacing Borders( 1 ),
Variables( X( :UMAP1 ), Y( :UMAP2 ), Color( :WARD UMAP CLUSTERS ) ),
Elements( Points( X, Y, Legend( 27 ) ) )
);
gbr = report (gb);
main_x_max = gbr [AxisBox(1)] << Get Max;
main_x_min = gbr [AxisBox(1)] << Get Min;
main_y_max = gbr [AxisBox(2)] << Get Max;
main_y_min = gbr [AxisBox(2)] << Get Min;
F_size = gbr[FrameBox(1)] << Get Size;
xbe = Expr(dt_sum << Graph Builder(
Size( _W_, _H_ ),
Fit to Window( "Off" ),
Page Level Fill Color( "White" ),
Graph Spacing( 15 ),
Spacing Borders( 1 ),
Variables(
X( :UMAP1 CENTER by CLUSTER ),
Y( :UMAP2 CENTER by CLUSTER ),
Color( :WARD UMAP CLUSTERS )
),
Elements(
Bar( X, Y, Legend( 4 ), Bar Style( "Float" ), Label( "Label by Row" ) )
)
)
);
xbx = Substitute(Name Expr (xbe), Expr (_W_), F_Size [1],
Expr (_H_), F_size [2]
);
xb = Eval (xbx);
xbr = report (xb);
xbr [AxisBox (1)] << max (main_x_max);
xbr [AxisBox (1)] << min (main_x_min);
xbr [AxisBox (2)] << max (main_y_max);
xbr [AxisBox (2)] << min (main_y_min);
xbr [FrameBox(1)] << Copy Frame Contents;
gbr [FrameBox(1)] << Paste Frame Contents;
ありがとう。
最高、
TS
自動化とスクリプトデータの探索と視覚化ウィンドウズRe: WINDOWS 10 > JMP 17.2 > グラフビルダー > 散布図 > 動的クラスター注釈「追加の」x軸とy軸を追加して、それらを使用することができます。平均(UMAP2)の色は変更されていることに注意してください。デフォルトのままにしておくと、値の色が使用されます。また、「平均」ポイントを強調表示したりマーカーを変更したりしたくない場合は、マーカーのサイズを0に変更することもできます。

Graph Builder(
Size(438, 629),
Show Control Panel(0),
Fit to Window("Off"),
Page Level Fill Color("White"),
Graph Spacing(15),
Spacing Borders(1),
Variables(
X(:UMAP1),
X(:UMAP1 CENTER by CLUSTER, Position(1)),
Y(:UMAP2),
Y(:UMAP2 CENTER by CLUSTER, Position(1)),
Color(:WARD UMAP CLUSTERS)
),
Elements(
Points(X(1), Y(1), Legend(27)),
Points(
X(2),
Y(1),
Color(0),
Legend(32),
Summary Statistic("Mean"),
Label("Label by Row")
)
),
SendToReport(
Dispatch({}, "400", ScaleBox,
{Legend Model(
32,
Properties(0, {Line Color(16)}, Item ID("Mean(UMAP2)", 1))
)}
)
)
);
</CODE></P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-825409" slang="en-US" mode="CREATE">Re: WINDOWS 10 > JMP 17.2 > グラフビルダー > 散布図 > 動的クラスター注釈</LINGO-SUB><LINGO-BODY id="lingo-body-825409" slang="en-US" mode="CREATE"><P>こんにちは、ジャーモさん</P>
<P>私の最初の課題に対して、はるかに簡単な解決策を提供していただきありがとうございます。それでも、プロットを読みやすくするために、ラベルのフォント サイズと色を変更したいと思います。そのタスクを達成する方法について何かヒントはありますか?</P>
<P> </P>
<P>よろしくお願いします、</P>
<P>TS</P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-825424" slang="en-US" mode="CREATE">Re: WINDOWS 10 > JMP 17.2 > グラフビルダー > 散布図 > 動的クラスター注釈</LINGO-SUB><LINGO-BODY id="lingo-body-825424" slang="en-US" mode="CREATE"><P>ラベルにはカスタマイズ オプションがそれほど多くないため、グラフィック スクリプトを利用する必要があると思います (テキスト サイズを変更するには、フォント設定を変更する必要があります)。</P></LINGO-BODY><LINGO-SUB id="lingo-sub-825436" slang="en-US" mode="CREATE">Re: WINDOWS 10 > JMP 17.2 > グラフビルダー > 散布図 > 動的クラスター注釈</LINGO-SUB><LINGO-BODY id="lingo-body-825436" slang="en-US" mode="CREATE"><P>興味深いことに、棒グラフのラベルにはフォントを調整するコマンドがありますが、ポイント グラフにはありませんか?<BR /> <A href="https://community.jmp.com/t5/JMP-Wish-List/Graph-builder-bar-chart-data-label-control/m-p/343142#U343142" class="lia-mention-container-editor-message lia-img-icon-idea-thread lia-fa-icon lia-fa-idea lia-fa-thread lia-fa" target="_blank">グラフ ビルダーの棒グラフ データ ラベル コントロール</A>-> 他のプロット タイプでも興味深いですか?<BR /><BR /></P><P> </P><PRE><CODE class=" language-jsl">Graph Builder(
Variables( X( :WARD UMAP CLUSTERS ) ),
Elements( Bar( X, Legend( 5 ), Label( "Label by Value" ) ) )
);
labels = (current report()[FrameBox(1)] << find segs)[1];
labels << Set Font( "", 18, "", 0 )
Re: WINDOWS 10 > JMP 17.2 > グラフビルダー > 散布図 > 動的クラスター注釈こんにちは、みんな、
またもや必要以上に複雑にしてみました。
以下は私が作成した、必要なことをすべて実行する短い JSL スクリプトです。
Names Default to Here(1);
dt = Data Table ("ANNOTATION of 2D CLUSTERS");
Summarize (dt, clu_id = By (:WARD UMAP CLUSTERS), x_pos = Mean (:UMAP1 CENTER by CLUSTER), y_pos = Mean(:UMAP2 CENTER by CLUSTER));
clu_n = N items (clu_id);
colors = {};
vect = dt:WARD UMAP CLUSTERS << Get Property ("Value Colors");
For (j = 1, j <= clu_n, j++,
insert into(colors, num (word(-1, char(vect [j]), "=")))
);
gb = dt << Graph Builder(
Size( 483, 675 ),
Fit to Window( "Off" ),
Page Level Fill Color( "White" ),
Graph Spacing( 15 ),
Spacing Borders( 1 ),
Variables( X( :UMAP1 ), Y( :UMAP2 ), Color( :WARD UMAP CLUSTERS ) ),
Elements( Points( X, Y, Legend( 27 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Add Graphics Script(
10,
Description( "" ),
Text Size (14);
For( i = 1, i <= clu_n, i++,
Label = clu_id [i];
Fill Color ("white");
Transparency (0.85);
Circle ({x_pos [i], y_pos [i]+0.25}, 0.5, "FILL");
Transparency (1);
Text Color (colors [i]);
Text( center justified, {x_pos [i], y_pos [i]}, Label );
)
)}
)
)
);
値の色を収集する私の大まかな方法が効率的かどうかはわかりませんが、機能します。
最高、
TS
Re: WINDOWS 10 > JMP 17.2 > グラフビルダー > 散布図 > 動的クラスター注釈あなたの方法は問題ないと思います。また、Arg() を使用して、「もの」の値の色リストから項目を取得することもできます。また、変数が失われたときに発生するあらゆる種類の厄介な問題を回避するために、グラフィック スクリプトの外側の変数をグラフィック スクリプト内で評価します。
おそらく、連想配列を使用して ID、色、x および y 座標を収集することになります。この場合の問題の 1 つは、Summarize と連想配列の順序が異なる可能性があり、それを考慮する必要があることです (ここではそれを実行していません)。
Names Default To Here(1);
dt = Data Table("ANNOTATION of 2D CLUSTERS");
Summarize(
dt,
clu_id = By(:WARD UMAP CLUSTERS),
x_pos = Mean(:UMAP1 CENTER by CLUSTER),
y_pos = Mean(:UMAP2 CENTER by CLUSTER)
);
vect = dt:WARD UMAP CLUSTERS << Get Property("Value Colors");
aa_colors = Associative Array();
For Each({item, idx}, vect,
aa_colors[Arg(item, 1)] = Associative Array();
aa_colors[Arg(item, 1)]["Color"] = Arg(item, 2);
aa_colors[Arg(item, 1)]["X"] = x_pos[idx];
aa_colors[Arg(item, 1)]["Y"] = y_pos[idx];
);
gb = dt << Graph Builder(
Size(483, 675),
Fit to Window("Off"),
Page Level Fill Color("White"),
Graph Spacing(15),
Spacing Borders(1),
Variables(X(:UMAP1), Y(:UMAP2), Color(:WARD UMAP CLUSTERS)),
Elements(Points(X, Y, Legend(27)))
);
Eval(EvalExpr(
Report(gb)[FrameBox(1)] << Add Graphics Script(
Text Size (14);
myaa = Expr(aa_colors);
ids = myaa << get keys;
For(i = 1, i <= N Items(ids), i++,
Fill Color ("white");
Transparency (0.85);
Circle({myaa[ids[i]]["X"], myaa[ids[i]]["Y"] + 0.25}, 0.5, "FILL");
Transparency(1);
Text Color(myaa[ids[i]]["Color"]);
Text(center justified, {myaa[ids[i]]["X"], myaa[ids[i]]["Y"]}, Char(ids[i]));
);
)
));