皆さん、こんにちは。
私は、点が各箱ひげ図と関連するバイオリン プロット内に正確に収まるグラフを作成したいと考えていました。
グラフビルダーを使用すると、点がボックス内で整列していないことに気付きました。
これを修正する方法を知っている人はいますか?
写真を添付します。

Windows を使用している場合は、文字マップからこれらを見つけることもできます。

これを行うためにアドイン/カスタム関数を作成するオプションもあります。 これは完璧ではありませんが、役に立つでしょうか? 考えられる関数の簡単な例を次に示します (関数を作成する場合は、より堅牢になります)。
Names Default To Here(1);
replace_str = Function({str}, {Default Local},
aa_unicode = Associative Array();
aa_unicode["\sigma"] = "\!U03C3";
aa_unicode["\mu"] = "\!U03BC";
aa_unicode["\subscript1"] = "\!U2081";
aa_unicode["\subscript2"] = "\!U00B2";
aa_unicode["\subscript3"] = "\!U00B3";
aa_unicode["\subscript4"] = "\!U2074";
return(Substitute(str, aa_unicode << get keys, aa_unicode << get values));
);
dt = New Table("Untitled 3",
Add Rows(0),
New Column("kg/m\subscript2"),
New Column("\sigma*\mu"),
New Column("\subscript1\subscript3")
);
wait(2);
For Each({col_name}, dt << Get Column Names(String),
Column(dt, col_name) << Set Name(replace_str(col_name));
);
ウィキペディアでコードを見つけました
print("18F-FDG\!U00B9\!U2078");
"18F-FDG¹⁸"
親愛なるマーク様
JMP のようなソフトウェアには、このような時間の無駄な問題があるのは残念です。
時間を短縮できるいくつかの記事を公開することは、優れた解決策となるでしょう。
ジュゼッペ
どうもありがとうございます、
非常に有益で決定的なアドバイス。
幸運をお祈りしています
ジュゼッペ
PS 18F-FDG の Unicode の指数に 18 を使用した場合、解決策が見つかりません。 やり方を知っていますか?
特殊文字をより直接的に入力する方法があればいいのにと思います。 当面は、頻繁に使用するシンボルのコメント文字列を含むスクリプトを保存します。 少し手間が省けます。
JMP は、UTF-8 と UTF-16 の両方の Unicode 標準をサポートします。 詳細については、「スクリプト ガイド」を参照してください。これにより、特別な処理を行わずにこれらの特殊文字を埋め込むことができます。
JMP は、エスケープ文字列「\!」を使用してそのような文字を出力することもできます。その後に Unicode 文字列が続きます。したがって、指定したものをラベルとして含めるには、スクリプトウィンドウを開いて、次の印刷コマンドをウィンドウに配置します
print("BMI (Kg / m\!U00B2)");
この行を実行すると、ログに次の内容が記録されます。これを切り取ってラベルに貼り付けることができます。
"BMI (Kg / m²)"
もっと直接的な道があればいいのですが、私はそれを知りません。完全な Unicode 文字セットの詳細については、スクリプト ガイドを参照してください。

ご提案いただきありがとうございます。
たとえばグループ2乗や2を下付き文字として表示する方法を知りたいです。
または、前の例では、高さの 2 乗が表示されます。
一般に、上付き文字または下付き文字を使用して軸ラベルを表示する方法について説明します。
たとえば、縦軸に BMI (Kg / m ^ 2) を書いた場合、「^ 2」が ^ 記号を避けて 2 乗されていることを JMP に伝えるにはどうすればよいでしょうか?
幸運をお祈りしています
JMP は Unicode 文字セットを使用し、特殊な文字セットをサポートします。
é や ½ などの文字。 特別な Unicode を使用せずにファイルを保存します
文字を自動的にプレーンテキストとして変換します。 このオプションは次によって選択されます
デフォルト。
つまり、このような特殊な Unicode 文字をデータテーブルに配置すると、それらの文字が表示されます。


どうもありがとうございます、
貴重なアドバイスのおかげで、ようやく目標に到達することができました。
振り返ってみると、解決策は簡単でしたが、先験的に私はあなたが書いたことについて考えていませんでした。 好奇心をもってお聞きします。x 軸または縦座標の変数のラベルに上付き文字と下付き文字を付ける方法を知っていますか?
JMP にはこの単純だが一般的な可能性が欠けていることに気づきました。
JMP の重要性を考えると、この欠点はかなり異常です。
幸運をお祈りしています
ジュゼッペ
必要な作業は、記述されたとおりにデータ テーブルを取得し、それをグラフ ビルダーに渡して、データを積み重ねて表示する表示を作成し、グラフ ビルダーを実行することだけです。説明すると、4 つの連続変数を含む次の表が与えられているとします (必要な数の連続変数を含めることができます)。

1つはただ使用するだけです
テーブル=>スタック
連続した列をすべて積み重ね、グループ列も確実に運ばれるようにします。

また、スタック データ列の名前を Measurement に、ソース ラベル列の名前を Variable に変更しました。
結果のデータをグラフ ビルダーで使用して、目的のグラフを作成できるようになりました。

以下は、最初に JMP が提供するサンプル データ テーブルの 1 つからサンプル データ テーブルを作成し、次にデータをスタックし、最後にグラフ ビルダーを使用して上記のグラフを作成するスクリプトです。
Names default to here(1);
// Create a sample data table that has multiple continuous variables with 2 groups
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
dt:Site << set name("Group");
dt << select where( :Group<=2 & :lot_id == "lot01" );
dt << invert row selection;
dt << delete rows;
dtSub = dt << Subset(
All rows,
columns( :Group, :NPN1, :NPN2, :NPN3, :NPN4 )
);
close(dt, nosave);
Wait(5); // Wait 5 seconds so one can see the initial data table
// Now just modify the data shape to set it up for Graph Builder to display the
// data as required
// First Stack all of the continuous variables into one column, and create a second
// column that indicates what column each row's value came from
dtStack = dtSub <<
Stack(
columns( :NPN1, :NPN2, :NPN3, :NPN4 ),
Source Label Column( "Variable" ),
Stacked Data Column( "Measurement" )
);
// Now graph the data placing the Variable and Group columns on the X axis and the
// Measurement column on the Y axis
// Also, remove the label from the Y axis
Graph Builder(
Size( 528, 458 ),
Show Control Panel( 0 ),
Variables(
X( :Variable ),
X( :Group, Position( 1 ) ),
Y( :Measurement ),
Color( :Group )
),
Elements(
Contour( X( 1 ), X( 2 ), Y, Legend( 14 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 13 ) ),
Points( X( 1 ), X( 2 ), Y, Legend( 15 ) )
),
SendToReport(
Dispatch( {}, "Y title", TextEditBox, {Set Text( "" )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg( Poly Seg( "Violin (NPN1>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN1>>2)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN2>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN2>>2)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN3>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN3>>2)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN4>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN4>>2)" ), {Transparency( 0.5 )} )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {14, [3, 4], 13, [0, 1, 2, -3], 15, [5, 6]} )}
)
)
);
どうもありがとうございます、
手順を試してみましたが、うまくいきません。
複数の連続変数を同時に X 軸に配置し、それぞれを 2 つのグループに分割したいと考えています。 y 軸には変数がありません。
目的は、すべての変数をまとめて表示し、それぞれを 2 つのグループと比較することです。
アドバイスどおりに実行した場合、y 軸には一度に 1 つの変数しか配置できません。すべての変数を一緒に配置すると、箱ひげ図で点が整列しないという問題が再び発生するためです。同時に複数の変数が必要です。
ジュゼッペ
X 列とオーバーレイ列の両方を X 軸にドラッグし、オーバーレイ列をカラー ドロップ領域に移動します。
