回复:如何將圖形生成器中的所有 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 軸更改為對數刻度雙擊軸確實令人頭疼。

數據探索和可視化