Scatterplot 3Dのコンテナを入手するにはどうすればよいですかこんにちは、
Scatterplot 3Dでデータを表現するとき、いくつかの操作を頻繁に繰り返します。たとえば、カラーテーマ(カラーバー)、ポイントのサイズなどを変更します。テーブルは異なりますがアクションは同じで、特定の列を参照しないため、アクションは自動化できると思います。
既に開いているグラフに対してこれをスクリプト化する方法を疑問に思います。2d grahpsの場合は、たとえば、コンテナを参照するためにこのコマンドを使用できます。
Window( Window name )[framebox( 1 )] << set background color( "gray" );
しかし、私はそれを散布図3Dで使うことはできません。
ありがとうございました、
ダビデ
再:どのように私はScatterplot 3Dのコンテナを入手するのですかこんにちは @パール 、
Scatterplot 3DはDisplay3DBoxを使用しているので、これはそのオブジェクトを参照するために機能するはずですし、ほとんどのメッセージに使用するもの(壁の色、マーカー、回転、回転などの設定):
Window( Window name )[Display3DBox(1)]
背景色を設定する必要がある場合は、実際にはSceneBoxを参照する必要があります。
Window( Window name )[SceneBox(1)]<<BACKGROUND color=""></BACKGROUND>
これは、壁と背景の両方を青に設定した完全な例です。
Open( "$SAMPLE_DATA\Big Class.jmp" );
s3d = Scatterplot 3D( Y( :age, :height, :weight ), Frame3D( Set Grab Handles( 0 ) ) );
//view properties if you wish to see options
//show properties(Window( "Big Class - Scatterplot 3D" )[SceneBox(1)])
//show properties(Window( "Big Class - Scatterplot 3D" )[Display3DBox(1)])
Window( "Big Class - Scatterplot 3D" )[Display3DBox( 1 )] << Set Wall Color( 5 );
Window( "Big Class - Scatterplot 3D" )[Scene Box( 1 )] << Background color( blue );
これが役に立つことを願っています!
@julian
再:どのように私はScatterplot 3Dのコンテナを入手するのですか対話的に色を変えてスクリプトを保存すると、Scatterplot 3Dはスクリプトの一部として色を直接記録します。
Scatterplot 3D(
Y( :age, :height, :weight ),
Frame3D(
<STRONG>Set Wall Color( -16750758 ),</STRONG>
Set Grab Handles( 0 ),
Set Rotation( -52.9429431878029, -1.24217455677765, 22.838483399832 ),
<STRONG>Background Color( 144, 191, 4 )</STRONG>
)
);
プラットフォームの起動時に必要な色がわかっていれば、これが最も簡単な解決策になるかもしれません。
再:どのように私はScatterplot 3Dのコンテナを入手するのですかこんにちは @julian 、
ご回答どうもありがとうございました。Display3DBoxは多くのプロパティを変更するのに非常に便利です。
しかし、それでもプロットの凡例を変更することはできません。スクリプトを保存すると、これがコードになり、SendToReport(Dispatch(...))の下に表示されます。
obj = Scatterplot 3D(
Y( :x, :y, :z ),
Coloring( :T composed 2 ),
Legend( 84 ),
Frame3D( Legend( 1 ), Set Grab Handles( 0 ), Set Rotation( -54, 0, 38 ) ),
SendToReport(
Dispatch(
{},
"100",
ScaleBox,
{Legend Model( 3, Properties( 0, {gradient( {Color Theme( "Spectral" )} )} ) )}
)
);
);これらのプロパティにアクセスする方法を知っていますか。窓 ( ウィンドウ名 ) [ Display3DBox ( 1 ) ] ?
再:どのように私はScatterplot 3Dのコンテナを入手するのですかありがとうございました @danschikore あなたが言う最も簡単な解決策はPreferencesのデフォルト設定を変更することです。しかし、スクリプト内のプロパティを変更することは、将来私には役立つかもしれません。再:どのように私はScatterplot 3Dのコンテナを入手するのですかこんにちは @パール 、
プラットフォームにオプションをディスパッチするように指示するには、レポートウィンドウではなくスクリプト可能なオブジェクト(scatterplot 3dプラットフォーム自体)へのハンドルが必要です。ここで私たちを手助けするために<< Get Scriptable Objectを使うことができます。そのハンドルを取得したら、スクリプトを保存したときに見つけた正確なディスパッチメッセージを送信できます。これが私が示した以前のカスタマイズを含む、その完全な例です。
Open( "$SAMPLE_DATA\Big Class.jmp" );
s3d = Scatterplot 3D( Y( :age, :height, :weight ), Coloring( :sex ), Legend( 17 ), Frame3D( Legend( 1 ) ) );
//view properties if you wish to see options
//show properties(Window( "Big Class - Scatterplot 3D" )[SceneBox(1)]);
//show properties(Window( "Big Class - Scatterplot 3D" )[Display3DBox(1)]);
//set colors, contolled in the report layer<BR />Window( "Big Class - Scatterplot 3D" )[Display3DBox( 1 )] << Set Wall Color( 5 );
Window( "Big Class - Scatterplot 3D" )[Scene Box( 1 )] << Background color( blue );
//find the scriptable object so that options can be dispatched
s3dFound = Window( "Big Class - Scatterplot 3D" )[Outline Box( 1 )] << Get Scriptable Object;
//Dispatch options by sending messages to that scriptable object
s3dFound << Dispatch(
{},
"100",
ScaleBox,
{Legend Model(
17,
Properties( 0, {Line Color( 73 ), Marker Size( 10 )}, Item ID( "F", 1 ) ),
Properties( 1, {Line Color( 45 ), Marker Size( 10 )}, Item ID( "M", 1 ) )
)}
);
@julian
再:どのように私はScatterplot 3Dのコンテナを入手するのですか最初にスクリプトを使用して出力を生成する場合は、プラットフォームへのハンドルが既にあることになります(プラットフォームの起動時にこれを行ったと仮定して)。私の例では、それはs3dです。しかし、スクリプトによって生成されないウィンドウがある場合は、<< Get Scriptable Objectを使用してそのプラットフォームへのハンドルを確立できます。再:どのように私はScatterplot 3Dのコンテナを入手するのですかありがとうございました @julian 、これはとても面白いです。