回复:如何将图形生成器中的所有 X 轴更改为对数刻度处理此问题的一种方法是使用标准化属性来更改轴列属性。
要更改所有轴以记录:
- 转到数据表,然后选择要更改轴的列
- 选择列=>标准化属性
- 选择列属性=>轴
- 单击设置默认轴设置
- 将比例从线性更改为对数
- 点击确定
图表中所有 X 轴的轴将更改为对数刻度
回复:如何将图形生成器中的所有 X 轴更改为对数刻度非常感谢您的建议。
但是,我对 Graph Builder 的使用非常动态,通常很难预测哪些列将用于绘图。
是否有可用于转换图形生成器图形已使用的 X 轴的脚本?
例如,我知道我可以用
For( i = 100, i < 200, i++,
(Current Window() << XPath( "//ScaleBox[@charID=" || Char( i ) || "]" )) << Revert Axis
<< {Scale( "Log" ), Inc( 1 ), Minor Ticks( 1 )}
)
回复:如何将图形生成器中的所有 X 轴更改为对数刻度您不需要迭代。 显示框列表会自动将收到的消息分发到它的每一个项目中,所以你只需要确保列表是正确的。 例如:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
sm = dt << Scatterplot Matrix(
Y( :Age, :Weight, :Oxy, :Runtime, :RunPulse, :RstPulse, :MaxPulse ),
Matrix Format( "Lower Triangular" )
);
(Report( sm ) << XPath( "//AxisBox" ))
<< Revert Axis
<< Scale( "Log" )
<< Inc( 10 )
<< Minor Ticks( 0 );
回复:如何将图形生成器中的所有 X 轴更改为对数刻度我的问题是我想保持 y 轴为线性刻度,但将 x 轴更改为对数刻度。 如果不迭代,恐怕 X/Y 轴都会切换到对数刻度。
顺便说一句,类似的方法是否适用于 Graph Builder?
回复:如何将图形生成器中的所有 X 轴更改为对数刻度这种方法仍然有效。 首先为列表下标以获取仅包含您要更改的轴框的新列表,然后将消息发送到该目标列表。 这种方式仍然比显式循环更容易和更清晰。
这是对我的第一个示例的修改,以说明新方法:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
sm = dt << Scatterplot Matrix(
Y( :Age, :Weight, :Oxy, :Runtime, :RunPulse, :RstPulse, :MaxPulse ),
Matrix Format( "Lower Triangular" )
);
// change X axes only in Scatterplot Matrix
axes = Report( sm ) << XPath( "//AxisBox" );
nAxes = N Items( axes );
// second half of list only
axes[((nAxes/2)+1)::nAxes] << Select; // Scale( "Log" );
但是,它不适用于散点图矩阵,因为除了一个数据列外,所有数据列都用于 X 和 Y 角色,并且内部逻辑试图在两个地方(X 和 Y 角色)保持更改一致。
回复:如何将图形生成器中的所有 X 轴更改为对数刻度由于我找不到从 Y 轴识别 X 轴的方法,我目前的解决方案是使用此命令将所有轴设置为对数刻度,然后手动将 Y 轴恢复为线性刻度,这比手动设置对数刻度要容易得多.
(当前窗口() << XPath( "//AxisBox" ) ) << 恢复轴 << {Scale( "Log" ), Inc( 1 ), Minor Ticks( 1 )}
如何将图形生成器中的所有 X 轴更改为对数刻度双击轴确实令人头疼。

数据探索和可视化