JSL을 사용하여 Graph Builder 히트 맵에서 사용자 지정 색 그라데이션 정의8 개의 요인과 4 개의 반응을 가진 모델이 있습니다. 어떤 요인이 어떤 반응에 중요한지 보여주는 히트 맵을 만들고 싶습니다.예를 들어 다음과 같이 나만의 색상 스케일을 정의하고 싶습니다.
<0.0001 ~ 0.01 = 주황색
0.001 ~ 0.05 = 빨간색
> 0.05 = 흰색
Graph Builder에서 그라디언트를 사용해 보았지만 원하는 작업을 수행하는 방법을 볼 수 없습니다. 기술적으로 더 이상 그래디언트가 아닐 수도 있지만 가능할 것 같습니다.아래 이미지는 내가 얻은 것만 큼 가깝습니다.

다음은 스크립트의 일부입니다. 저장된 스크립트가있는 전체 데이터 세트가 첨부됩니다.
구배(
{색상 테마 ( "녹색 노랑 빨강"),
척도 값 ([0 0.05.]),
너비 (9),
범위 유형 ( "정확한 데이터 범위"),
반전 그라데이션 (1),
이산 색상 (1),
N 레이블 (5)}
)
모든 제안을 주시면 감사하겠습니다.
-톰
Re : JSL을 사용하여 Graph Builder 히트 맵에서 사용자 지정 색 그라데이션 정의안녕 톰!
JMP에서 고유 한 색상 테마를 정의 할 수 있습니다. 다음과 같이 시도하십시오.
Preferences( Add Color Theme(
{"White to Red p-Value", 2051, {{255, 255, 255}, {255, 255, 255}, {252, 187,
161}, {252, 146, 114}, {251, 106, 74}, {239, 59, 44}, {203, 24, 29}, {165,
15, 21}, {103, 0, 13}}, {0, 0.95, 0.96,
0.97, 0.98, 0.99, 0.995,
0.999, 1}}
),
);색상은 RGB 값으로 코딩되며 (예 : {255, 255, 255}는 흰색) 관심이있는 증분은 끝에 부여됩니다 (예 : 색상 스케일의 처음 95 %는 현재 정의 된대로 흰색이됩니다). 이것은 첫 번째 초안이므로 원하는대로 증분 또는 색상을 변경해야 할 수 있습니다. 이렇게하면 모든 그래프에서 사용할 수있는 새로운 색상 테마가 생성됩니다. 그래프에서 색상 스케일에 "min"및 "max"를 포함해야합니다. 그렇지 않으면이 그라디언트가 0.05에서 주황색으로 표시되지 않습니다.
gradient(
{Color Theme(
{"White to Red p-Value", 2051, {{255, 255, 255}, {255,
255, 255}, {252, 187, 161}, {252, 146, 114}, {251, 106,
74}, {239, 59, 44}, {203, 24, 29}, {165, 15, 21}, {103,
0, 13}}, {0, 0.95, 0.96, 0.97, 0.98, 0.99, 0.995, 0.999,
1}}
), Scale Values( [0 1] ), Reverse Labels( 1 )}
)도움이 되었기를 바랍니다!
키라
Re : JSL을 사용하여 Graph Builder 히트 맵에서 사용자 지정 색 그라데이션 정의안녕하세요 키라,
당신의 도움을 주셔서 감사합니다.그것은 제가 가고자하는 곳으로가는 데 정말 도움이되었습니다.
JMP 문서에서 세부 사항을 찾을 수 없기 때문에 비슷한 작업을 시도 할 수있는 다른 사용자를 위해이 작업을 수행하는 방법에 대해 조금 더 자세히 추가하겠습니다.
히트 맵 범례를 마우스 오른쪽 버튼으로 클릭하고 Gradient를 선택한 다음 Color Theme를 클릭 한 다음 twisty를 클릭하여 "Custom Color Theme"를 엽니 다.이것은 나를 위해 일하게 된 설정입니다.

0, 10, 50 및 100 %에서 그라디언트를 정의하는 점이 4 개 뿐인 것처럼 보이지만 사실이 아닙니다.이 네 점만 정의하면 그 사이에 그라디언트를 얻을 수 있습니다 (예 : 0-10 %에서 빨간색에서 주황색으로). 10 %에서 빨간색에서 주황색으로 단계를 수행하려면 빨간색과 주황색 점을 모두 10 %로 정의해야합니다.UI는 설계되지 않은 것에 사용하고 있기 때문에 하나의 마커 만 표시합니다.
세 가지 신중한 색상 범위를 얻으려면 겹침으로 인해 위의 4 개만 표시 되더라도 6 개의 포인트를 정의해야합니다.위의 시각화가 유용하지만 사실 후에 , 슬라이더를 움직여서 원하는 것을 얻을 수 없었습니다. 직접 스크립트를 작성해야했습니다. 내 코드는 다음과 같습니다.
{Color Theme(
{"White to Red p-Value", 2051,
/*0%->red 10%->red 10%->orange 50%->orange 50%->white 100%->white */
{{255,0,0},{255,0,0},{255,165,0},{255,165,0},{255,255,255},{255,255,255}},
{.0000 , 0.1 , 0.1 , 0.5 , 0.5 , 1 }
}Kira가 지적했듯이, 스케일 팩터는 올바르게 작동하는 데 중요합니다. 색상 테마의 값은 0에서 1까지 (정의 된 배율의 0에서 100 %)입니다.스케일 팩터는 색상 스케일을 특정 변수에 "매핑"합니다 (제 경우에는 0에서 0.1까지).
연속 데이터를 가져와 그라디언트가 아닌 색상 단계에 매핑하려는 다른 경우를 생각할 수 있으므로 JMP에서이 작업을 수행하는 더 좋은 방법이 있거나 내가 놓친 설정 만있을 수 있습니다. (또한 Kira가 제안한 방식으로 새 열을 만들었습니다. 이는 확실히 합리적인 옵션이기도합니다.)
내 최종 출력은 다음과 같이 각 셀에 F 비율이 표시됩니다.

첨부 파일에는 원본 데이터 세트가 있습니다. 첫 번째 스크립트는 모델을 실행합니다. 두 번째는 보고서에 들어가 p- 값과 f 비율을 추출하고 히트 맵을 만듭니다.보고서에서 "Effects Test"테이블을 찾을 수있을만큼 히트 맵 스크립트를 "스마트"하게 만들기 위해 보고서 트리 구조를 탐색하는 방법을 충분히 이해했으면합니다.지금은 하드 코딩되어 있으므로 스크립트는이 특정 보고서에서만 작동합니다.
dt_pvals = report(fls)[outlinebox(1)][TableBox(6)] << make combined data table;
여러 요인과 반응으로 작업 할 때 유용한 시각화 도구가 될 수 있다고 생각합니다.
-톰
Re : JSL을 사용하여 Graph Builder 히트 맵에서 사용자 지정 색 그라데이션 정의톰에 대한 자세한 설명 감사합니다!