旋转表面图时字体颜色会发生变化我使用确定性筛选设计的预测公式绘制了表面图。
我想在演示文稿中展示我的情节,情节会旋转。为此,我遵循了此主题: 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静止不动时
有人知道是什么原因造成的吗/我能做些什么来解决这个问题?或者也许有其他方法可以让表面图旋转而不会导致这个问题?
谢谢
数据探索与可视化实验设计回复:旋转曲面图时字体颜色会发生变化编写振荡脚本以产生一个完整的周期。 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 3D三螺旋 3D 旋转

回复:旋转曲面图时字体颜色会发生变化它故意变暗以使文本不那么分散注意力。 标记的轴已经在切换以避开图形,并且在纯黑色时很难观察。 我不知道有什么方法可以禁用该功能。 为了扩展 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 表面
我用 gifsicle 制作了动画 gif;有很多方法可以将图像序列转换为动画 gif 或视频。
gifsicle -O3 -d 10 --loop=0 surf*.gif >osc.gif
回复:旋转曲面图时字体颜色会发生变化哇! 那是一个非常美丽的视觉效果!
当我使用 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 ) );