タイトルで説明するのは難しいものです。
ローカル データ フィルターを使用して移動するヒートマップがあります。Y 軸がヒートマップ ボックスごとに特定のスケールを維持し、Y 軸上のエントリの数に基づいてグラフが長くなったり短くなったりするようにしたいと考えています。したがって、エントリが 10 個ある場合、長さは X になります。エントリが 200 個ある場合、長さは 20*X になります。
基本的に、y 軸ラベルと、ホバーラベル グラフレットにリンクするヒートマップ自体のラベルの読みやすさを維持したいと考えています。
サイズの更新をトリガーするには、フィルター変更ハンドラー。
gb << Size メッセージは、最初に無効にした場合にのみ効果があります。ウィンドウに合わせる:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 400, 400 ),
Show Control Panel( 0 ),
Set α Level( 0.01 ),
Fit to Window( "Off" ),
Summary Statistic( "Median" ),
Graph Spacing( 4 ),
Variables( X( :height ), Y( :weight ), Group Y( :age ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
);
df = gb << Local Data Filter(
Add Filter( columns( :age ), Where( :age == {14, 15} ), Display( :age, N Items( 6 ) ) )
);
adjustSize = Function( {x},
sizeY = N Items( Current Report()["Local Data Filter", ListBoxBox( 1 )] << get selected() ) * 200;
gb << size( 400, sizeY );
);
fsh = df << Make Filter Change Handler( adjustSize );
ネイティブなものを期待していましたが、ネイティブのソリューションがない場合はそれが最良の選択肢のようです。ありがとう