グラフビルダーの「サイズ」を軸に合わせてスケールする次のような、製造された製品の表面に見つかった欠陥のデータセットがあるとします。
| SN | X(cm) | Y(cm) | 直径(cm) |
| 0001 | 2.3 | 1.15 | 0.04 |
| 0001 | 2.7 | 0.44 | 0.12 |
| 0001 | 1.5 | 2.6 | 0.35 |
| 0002 | 5.4 | 1.9 | 0.17 |
| 0002 | 3.1 | 4.1 | 0.59 |
グラフ ビルダーで SN をローカル データ フィルターし、X(cm)->X、Y(cm)->Y、および直径(cm)->サイズをプロットする場合、結果のドット サイズをプロット上でスケールに合わせて描画する方法はありますか?
データの探索と視覚化Re: グラフ ビルダーの「サイズ」を軸に合わせてスケールする簡単な解決策だが、完璧にスケール化されていない

少しクリックするだけで問題を解決できます。
グラフ ビルダーで、X と Y を X 軸ボックスと Y 軸ボックスに配置し、SN をカラー ロールにドラッグし、直径をサイズ ロールにドラッグします。
スクリプトは次のようになります。
Graph Builder(
Size( 409, 391 ),
Variables(
X( :"X(cm)"n ),
Y( :"Y(cm)"n ),
Color( :SN ),
Size( :"Diameter(cm)"n )
),
Elements( Points( X, Y, Legend( 9 ) ) )
);
Re: グラフ ビルダーの「サイズ」を軸に合わせてスケールする質問のプロセスをうまく再現したようですね。Shift キーを押しながらクリックするオプションや、スケーリングに役立つその他のオプションを誰かが知っているのではないかと期待していました。
Re: グラフ ビルダーの「サイズ」を軸に合わせてスケールするグラフィックスクリプトでこれを行う必要があると思います。以下は非常に迅速でハックな解決策であり、何ができるかのアイデアを与えることができます。
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("SN", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 2, 2])),
New Column("X(cm)", Numeric, "Continuous", Set Values([2.2999999999999998, 2.7000000000000002, 1.5, 5.4000000000000004, 3.1000000000000001])),
New Column("Y(cm)", Numeric, "Continuous", Set Values([1.1499999999999999, 0.44, 2.6000000000000001, 1.8999999999999999, 4.0999999999999996])),
New Column("Diameter(cm)",
Numeric,
"Continuous",
Set Values([0.040000000000000001, 0.12, 0.34999999999999998, 0.17000000000000001, 0.58999999999999997])
)
);
gb = dt << Graph Builder(
Size(518, 454),
Show Control Panel(0),
Lock Scales(1),
Variables(X(:"X(cm)"n), Y(:"Y(cm)"n), Size(:"Diameter(cm)"n)),
Elements(Points(X, Y, Legend(5))),
Local Data Filter(Add Filter(columns(:SN), Modeling Type(:SN, Nominal)))
);
frame = Report(gb)[FrameBox(1)];
Eval(EvalExpr(
frame << Add Graphics Script(
cur_gb = Expr(Report(gb));
fb = cur_gb[FrameBox(1)];
ms = fb << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
For(i = 1, i <= N Items(xs), i++,
dt = cur_gb << Get Data Table;
m_rows = dt << Get Rows Where(:"X(cm)"n == xs[i] & :"Y(cm)"n);
diam = dt[m_rows, "Diameter(cm)"][1];
Circle({xs[i], ys[i]}, diam/2);
);
);
));

円の半径がどのように動作するかについては、https://www.jmp.com/support/help/en/18.0/#page/jmp/graphics-functions.shtml?os= win&source=application#ww2626013 もご覧ください。
Re: グラフ ビルダーの「サイズ」を軸に合わせてスケールするありがとう、 @jthi さん。あなたは明らかに jsl を驚くほど上手に使いこなしていますね。
これは JMP に備わっているべき機能のように思えますし、マーカー サイズ設定に組み込むのも簡単そうです (少なくとも UI の観点からは)。これをウィッシュ リストに追加します。
Re: グラフ ビルダーの「サイズ」を軸に合わせてスケールするウィッシュリストのアイテムはここに投稿されました:
グラフ ビルダー: サイズ ドロップ ゾーンを使用して軸に応じたドットのサイズ設定を有効にする - JMP ユーザー コミュニティ
@jthi -- 上記のサンプル画像をウィッシュリストの項目にコピー/貼り付けしてもよろしいですか?
Re: グラフ ビルダーの「サイズ」を軸に合わせてスケールするもちろんです。Circle で "FILL" 引数を使用するように少し変更すると、次のようになります (円には下層のマーカーではなくサイズ情報が含まれているため、これを行うときは凡例を非表示にすることをお勧めします)

Re: グラフ ビルダーの「サイズ」を軸に合わせてスケールする私はこの議論全体を完全に理解しているわけではありませんが、いくつかのメモが関連しているかもしれないと思いました。
- 右クリック > グラフ > サイズ/スケール > 等角投影にサイズ設定するコマンドには、「等角投影にサイズ設定する」コマンドがあります。このコマンドは、X と Y がピクセルごとに同じ値になるようにグラフのサイズを変更します。ただし、これは持続しません。
- サイズ変数は直径ではなく円の面積として表されます。
- 数バージョン前に、マーカーとグラフ ビルダー (ポイントの赤い三角形のメニューの下の Shape Expressions と呼ばれる) に Marker Draw Expo 機能を追加しました。

Graph Builder(
Size( 496, 501 ),
Show Control Panel( 0 ),
Lock Scales(1),
Variables( X( :"X(cm)"n ), Y( :"Y(cm)"n ) ),
Elements(
Points( X, Y, Legend( 5 ),
Set Shape Expression(
Expr(
Function( {this seg, this row, x, y, pixel size, row state},
{r = :"Diameter(cm)"n / 2},
Oval( x - r, y + r, x + r, y - r, 1 )
)
)
)
)
),
Local Data Filter( Add Filter( columns( :SN ), Modeling Type( :SN, Nominal ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox, {Size To Isometric} )
)
);