表面プロットを回転するとフォントの色が変わる決定的なスクリーニング設計から予測された式を使用して表面プロットを作成しました。
プロットを回転させてプレゼンテーションで提示したいのですが、そのためにこのスレッドに従いました: https://community.jmp.com/t5/Discussions/Spinning-a-Scatterplot-3D/td-p/6510
ここでのアドバイスはもともと散布図用でしたが、同じコード行を使用して動作させました。
Set Spin( 0.01, 0, 0.01, 0 )
回転は正常に動作しますが、プロットが回転しているときにフォントの色が黒から薄い灰色に変わり、読みにくくなります。
Whilst spinning回転しながら
Whilst stationary静止している間
この問題の原因が何かわかる人はいますか? または、この問題を解決するために何かできることはありますか? あるいは、この問題が発生しないで表面プロットを回転させる別の方法があるでしょうか?
ありがとう
データの探索と視覚化実験計画法Re:サーフェスプロットを回転させるとフォントの色が変わります振動するためのスクリプトは、完全なサイクルを生成するように書かれています。 cos()関数は、0から2 * piまでの(ほぼ)完全な入力範囲を取得します。これにより、出力範囲は+1から-1から(ほぼ)+1に戻ります。 これに5を掛けて、+/-5度のモーションを生成します。 最後のステップの後の次のステップは最初の画像であるため、完全にループします。 (for-iループを使用した場合<=フレームが重複します。)for-nループは画像の作成には必要ありませんが、ライブデモには役立ちます。
コサイン関数なしで振動デモではなく、タンブリングデモを作成できます。 オシレーターは、初期のx、y、z角度のそれぞれから同じデルタを使用します。 タンブルの終わりにすべての角度が同じ初期値に戻る限り、それはうまくループします。 何かのようなもの
setrotation(1 * 2 * pi()* i、3 * 2 * pi()* i、5 * 2 * pi()* i)for 0 <1
ここで、各角度は1つ以上の完全な2pi回転(図のように1,3,5)を通過します。
狭い範囲での振動の方がわかりやすいと思います。 タンブリング五月注意を引くのに適しています。
Triple Helix spinning in 3DTriple Helix spinning in 3DTriple Helix spinning in 3D3Dで回転する三重らせん

Re:サーフェスプロットを回転させるとフォントの色が変わりますテキストの邪魔にならないように意図的に暗くします。 ラベル付けされた軸は、グラフの邪魔にならないようにすでに切り替えられており、黒一色の場合は見づらいものでした。 この機能を無効にする方法を知りません。 Philの提案を拡張するために、Frame3D<@Anonymous
(または、画像をキャプチャせずにスクリプトを実行するだけでも十分に高速です。)
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = Surface Plot(
Columns( :Pred Formula ABRASION ),
Control Panel( 0 ),
Surface Color Theme( "Green to Black to Red" ),
Surface Color Theme2( "Green to White to Red" ),
Surface Color Theme3( "White to Black" ),
Surface Color Theme4( "Blue to Gray to Red" ),
Response Column Color Theme( "Blue to Green to Red" ),
Response Column Color Theme2( "Blue to Gray to Orange" ),
Response Column Color Theme3( "Spectral" ),
Response Column Color Theme4( "Jet" ),
Formula( "Pred Formula ABRASION" ),
Surface Color Method( "Solid", "Solid", "Solid", "Solid" ),
SetVariableAxis( :SILICA, Axis Data( {} ) ),
SetVariableAxis( :SILANE, Axis Data( {} ) ),
SetZAxis( :Pred Formula ABRASION, Current Value( 125 ), Axis Data( {} ) ),
SetXVariable( :SILICA ),
SetYVariable( :SILANE ),
Iso Value( 0, 139.119238722664 ),
Frame3D(
Set Graph Size( 470, 470 ),
Set Grab Handles( 0 ),
Set Hide Lights Border( 1 ),
//Set Rotation( 10, 20, 30 )
)
);
//oscillate using cosine
ipic=0;
For( n = 1, n <= 3, n += 1,
For( i = 0, i < 1, i += 1 / 32,
delta = 5 * Cos( 2 * Pi() * i ); // 5 * (1..-1..1)
obj << frame3d( setrotation( 10 + delta, 20 + delta, 30 + delta ) );
obj << updatewindow;
Wait( 0 );
// take picture here if wanted
//img = report(obj)[SceneBox(1)]<<GETPICTURE></GETPICTURE>
oscillating 3D surfaceoscillating 3D surfaceoscillating 3D surface振動する3Dサーフェス
アニメーションGIFを作成するためにgifsicleを使用しました。画像のシーケンスをアニメーションGIFまたはビデオに変換する方法はたくさんあります。
gifsicle -O3 -d 10 --loop = 0 surf * .gif> osc.gif
Re:サーフェスプロットを回転させるとフォントの色が変わりますわお! それは本当に美しいビジュアルです!
Set Spin()を使用しても同じ動作が得られます。 しかし、クリックアンドドラッグを使用してプロットを手動で回転させた場合はそうではありません。
何が原因なのか、それを修正する方法があるのかわかりません。 テクニカルサポートに連絡することをお勧めします( support@jmp.com )。 以下に、Tiretreadのサンプルデータを使用して話している問題を示すサンプルスクリプトを貼り付けました。
それ以外は、プロットの手動回転を画面に記録するだけで済みます。
よろしく、
フィル
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Tiretread.jmp" );
obj = Surface Plot(
Columns( :Pred Formula ABRASION ),
Control Panel( 0 ),
Surface Color Theme( "Green to Black to Red" ),
Surface Color Theme2( "Green to White to Red" ),
Surface Color Theme3( "White to Black" ),
Surface Color Theme4( "Blue to Gray to Red" ),
Response Column Color Theme( "Blue to Green to Red" ),
Response Column Color Theme2( "Blue to Gray to Orange" ),
Response Column Color Theme3( "Spectral" ),
Response Column Color Theme4( "Jet" ),
Formula( "Pred Formula ABRASION" ),
Surface Color Method( "Solid", "Solid", "Solid", "Solid" ),
SetVariableAxis( :SILICA, Axis Data( {} ) ),
SetVariableAxis( :SILANE, Axis Data( {} ) ),
SetZAxis( :Pred Formula ABRASION, Current Value( 125 ), Axis Data( {} ) ),
SetXVariable( :SILICA ),
SetYVariable( :SILANE ),
Iso Value( 0, 139.119238722664 ),
Frame3D(
Set Graph Size( 470, 470 ),
Set Grab Handles( 0 ),
Set Hide Lights Border( 1 ),
Set Rotation( -66.7809360215981, 3.32558351899253, 44.6221502352661 )
)
);
obj << Frame3D( Set Spin( 0.1, 0, 0.01, 0 ) );