数百のカテゴリ値がオーバーレイされたプロットがあります。ユーザーがこれを操作するときには、2、3、最大 5 つのカテゴリを比較することだけが意味があり、ユーザー ID はデータ フィルターを使用してこれを実行します。
しかし、ユーザーが 150 を超えるすべてのカテゴリを選択することを妨げるものは何もありません。この場合、それらはすべて凡例に表示され、ウィンドウが完全に壊れます。この場合、プロットに何も表示されないので、凡例項目の数をたとえば 20 に制限するだけで、デザインが壊れず、目的も果たします。JSL で制限を指定する方法はありますか?
はい、分かりました。
カテゴリの数を計算します。
Categories = NItems(Associative Array (dt:CategoriesColumn));
必要な凡例アイテムの数を設定します。
LegendLevels = 3;
カテゴリの数と同じ数の要素を持つリストを作成し、表示するレベルの連続番号を入力し、残りの場合は「-1」を入力します。
p = {};
For(i=0, i < Categories, i+=1,
if(i <= (LegendLevels-1), p = Insert(p, i), p = Insert(p, -1))
);SendToReport()内でグラフビルダーをスクリプト化するときに、このリストを使用します。
Dispatch(
{},
"400",
LegendBox,
{Set Title( "Category" ), Legend Position( {5, Matrix(p)} ),
Position( Matrix(p) )}
)