안녕 모두,
답을 찾을 수 없는 단순해 보이는 질문이 있습니다. 막대 그래프를 만들었고 각 막대 그래프 채우기 색상을 개별적으로 사용자 정의하고 싶습니다. 그래프의 y축은 비용이고 x축은 자동차 제조사이며, 각 자동차 제조사는 2년을 가집니다. 그 이유는 연도(2017&2018)에 따라 일반적인 채우기 색상이 있지만 특정 자동차를 다른 색상으로 강조하고 싶습니다(예: Honda 2017은 나머지 2017 자동차와 다를 수 있으며 Honda 2018은 나머지 2018 자동차 제조사와 다릅니다).
그래프 빌드 또는 전체 코드에서 이를 쉽게 수행할 수 있는 방법이 있습니까?
미리 감사드립니다.
아래 스크립트는 Jim의 스크립트를 확장합니다. @txnelson , 훌륭한 제안, JSL을 사용하여 특정 색상을 설정하여 레전드 모델.
Names Default to Here(1);
dt = open("$sample_data/big class.jmp");
gb = dt << Graph Builder(
show control panel(0),
Variables(
X( :age ),
X( :sex, Position( 1 ) ),
Y( :height ),
Color(
Transform Column(
"Transform[age]",
Character,
Nominal,
Formula( (Char( :age ) || " ") || :sex )
)
)
),
Elements( Bar( X( 1 ), X( 2 ), Y, Legend( 12 ) ) )
);
//note Item ID count begins with 0
gb << SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
//12,
Properties( 0, {Fill Color( 5 )}, Item ID( "12 F", 1 ) ),
Properties( 1, {Fill Color( 5 )}, Item ID( "12 M", 1 ) ),
Properties( 2, {Fill Color( 20 )}, Item ID( "13 F", 1 ) ),
Properties( 3, {Fill Color( 20 )}, Item ID( "13 M", 1 ) ),
Properties( 4, {Fill Color( 6 )}, Item ID( "14 F", 1 ) ),
Properties( 5, {Fill Color( 6 )}, Item ID( "14 M", 1 ) ),
Properties( 6, {Fill Color( 27 )}, Item ID( "15 F", 1 ) ),
Properties( 7, {Fill Color( 27 )}, Item ID( "15 M", 1 ) ),
Properties( 8, {Fill Color( 26 )}, Item ID( "16 F", 1 ) ),
Properties( 9, {Fill Color( 26 )}, Item ID( "16 M", 1 ) ),
Properties( 10, {Fill Color( 12 )}, Item ID( "17 F", 1 ) ),
Properties( 11, {Fill Color( 12 )}, Item ID( "17 M", 1 ) )
)}
)
);

한 가지 해결책은 Year 및 Car 열을 연결하는 새 열을 만드는 것입니다.
결합 = 문자(:연도) || " " || :자동차;
그런 다음 이 새로운 열을 그래프 빌더의 색상 열로 사용하십시오. 그런 다음 각 개별 막대를 원하는 색상으로 만들 수 있습니다.다음은 Big Class 샘플 데이터 테이블을 사용하는 유사한 예입니다.

가끔 같은 문제가 발생합니다.
A열에 6개의 요소가 있고 B열에 2개의 요소가 있으므로 6x2 개별 하위 집합을 수동으로 색칠하는 것은 여전히 재미있습니다.
그러나 올바른 색상을 수동으로 할당하는 데 시간이 걸리는 경우도 있습니다.
적용 사례:
- A 열을 색상으로 사용
- 제외된 포인트를 회색으로 표시하려면 B열 = 제외()를 사용하세요.
그러한 응용 프로그램은, GraphBuilder: Dropzone 덮어쓰기 강력한 기능이 될 수 있습니다.