수백 개의 카테고리 값으로 오버레이 된 플롯이 있습니다. 사용자가 작업 할 때 데이터 필터를 통해 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 () 내에서 Graph Builder를 스크립팅 할 때이 목록을 사용합니다.
Dispatch(
{},
"400",
LegendBox,
{Set Title( "Category" ), Legend Position( {5, Matrix(p)} ),
Position( Matrix(p) )}
)