색상 코드 상위 5위내 테이블에 색상 코드를 지정하고 싶습니다(그래서 내가 만드는 모든 차트와 그래프가 동일하게 표시됩니다). 하지만 상위 5개는 빨간색, 중간 15개는 노란색, 하위 27개는 녹색이 되도록 하고 싶습니다. 이를 수행하는 쉬운 방법이 있어야 합니다.
맥락에 따라 2014~2021년 동안 추적해야 하는 다양한 질병에 대한 모든 CDC 요율 데이터가 있습니다. 미국을 다른 주와 비교하고 해당 주가 다른 주와 비교하여 상위 5위, 중간 또는 하위에 있는지 표시할 수 있어야 합니다. 완벽한 세계에서는 미국의 한 행이 항상 벤치마크처럼 검은색으로 표시됩니다. 아래에 데이터 파일을 첨부했습니다. 하나는 열의 데이터이고 다른 하나는 누적된 데이터입니다.
JMP 17을 사용하고 있습니다.
데이터 탐색 및 시각화결과 공유 및 전달윈도우Re: 색상 코드 상위 5개다음은 상단, 중간, 하단 및 미국 그룹을 제공하는 작은 스크립트입니다.
매년 별도로 이 작업을 수행합니다.이것이 원하는 것이 아니라면 연도 참조를 제거하여 스크립트를 쉽게 변경할 수 있습니다.

Names Default To Here( 1 );
dt = Data Table( "All Items 2014-2021 Stacked" );
dtSum =
// → Data Table( "SummaryData" )
Data Table( "All Items 2014-2021 Stacked" ) << Summary(
Group( :State, :Year ),
Mean( :Data ),
Freq( "None" ),
Weight( "None" ),
Link to original data table( 0 ),
output table name( "SummaryData" )
);
dtSum << delete rows( dtSum << get rows where( :state == "United States" ) );
// Sort data table
dtSum = Data Table( "SummaryData" ) << Sort(
By( :Year, :"Mean(Data)"n ),
Replace Table,
Order( Ascending, Ascending )
);
DtSum << New Column( "Color Group",
character,
set each value(
If(
Col Cumulative Sum( 1, :Year ) <= 5, "Top",
Col Cumulative Sum( 1, :Year ) <= 20, "Middle",
"Bottom"
)
)
);
Data Table( "All Items 2014-2021 Stacked" ) << Update(
With( Data Table( "SummaryData" ) ),
Match Columns( :State = :State, :Year = :Year )
);
dt:Color Group[dt << get rows where( :Color Group == "" )] = "U.S.";
dt << delete column( :"Mean(Data)"n );
dt:color group << set property( "value colors", {"Bottom" = 20, "Middle" = 41, "Top" = 19, "U.S." = 0} );
dt << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( :State ), Y( :Data ), Color( :Color Group ) ),
Elements( Points( X, Y, Legend( 7 ) ) )
);
Re: 색상 코드 상위 5개이것은 많은 도움이 됩니다. 그러나 요약 데이터를 생성하는 스크립트의 첫 번째 부분입니다. N행은 무엇을 의미하나요? 각각이 어떤 바이러스인지 알아야 해요.
Re: 색상 코드 상위 5개N 행 열은 기본 테이블의 한 그룹에 대해 존재하는 열 수를 보여줍니다. 아래 스크린샷의 요약 테이블에는 2014년에 Alabama에 대한 행이 3개 있다는 내용이 나와 있습니다. 이는 평균(데이터) 열에 다양한 바이러스를 혼합합니다.

Re: 색상 코드 상위 5개불행히도 모든 바이러스는 별도로 필요합니다. 각 바이러스를 자체 테이블로 사용하는 것이 더 나을까요?
Re: 색상 코드 상위 5개각 바이러스를 별도의 데이터 테이블로 분리하는 것이 문제를 처리하는 한 가지 방법입니다.그런 다음 각 바이러스 데이터 테이블에 대한 스크립트를 실행합니다.
내가 제공한 스크립트에 상태 및 연도 집계와 함께 Virus를 추가하는 것도 가능하며, 각 바이러스에 대해 별도로 계산을 수행합니다.
Re: 색상 코드 상위 5개이제 완벽해졌습니다. 질문이 하나 더 있습니다. 데이터 열의 데이터/숫자를 볼 수 있도록 데이터 열과 색상 그룹 열을 결합하는 방법이 있습니까? 그런데 해당 셀의 색상은 색상 그룹의 색상입니까?
Re: 색상 코드 상위 5개스크립팅 인덱스는 다음에 대한 정의와 예를 제공합니다. 모두 JSL에서 사용할 수 있는 대부분의 함수와 메시지.다음은 필요한 작업을 수행하기 위한 간단한 JSL입니다. 그러나 스스로 답을 찾을 수 있도록 스크립팅 색인에 익숙해져야 합니다.그것은 우리 모두에게 진행 중인 과정입니다.
dt:color group << color cells("green", dt << get rows where(:color group =="Bottom"));
dt:color group << color cells("yellow", dt << get rows where(:color group =="Middle"));
dt:color group << color cells("red", dt << get rows where(:color group =="Top"));
dt:color group << color cells("black", dt << get rows where(:color group =="U.S."));Re: 색상 코드 상위 5개대답은 테이블(및 색상)을 사용하는 용도에 따라 약간 달라질 수 있습니다. 순수한 스크립팅 옵션이 있거나 이 작업을 대화식으로 수행할 수 있습니다. 열 중 하나에 값 색상이 있으면 해당 열을 선택하고 행/색상 또는 열별 표시로 이동합니다.

그런 다음 메뉴에서 확인을 누릅니다.

그러면 이러한 색상이 행 상태로 설정됩니다.

해당 행을 마우스 오른쪽 버튼으로 클릭하고 행 상태별 색상을 선택합니다.

이제 해당 색상의 모든 행이 있습니다.

그런 다음 해당 색상을 원하지 않는 모든 열을 선택하고 선택한 셀 중 하나를 마우스 오른쪽 버튼으로 클릭하여 색상을 흰색으로 만듭니다.

이 방법과 셀의 색상을 사용하면 행의 행 상태로 특정 색상이 표시됩니다(행 상태 색상을 덮어쓰려면 흰색을 사용합니다).

또한 JMP는 스크립트를 제공하기 위해 이러한 작업을 기록할 수 없는 것 같습니다.
편집하다:
스크립팅에 대한 몇 가지 아이디어는 다음에서 볼 수 있습니다. JSL을 사용하여 숫자 열 값으로 텍스트 형식의 열 색상 그라데이션을 설정하는 방법은 무엇입니까?하지만 네 상황은 좀 달라
편집2:
다음은 스크립팅을 사용하여 셀에 색상을 지정하는 좀 더 고급 방법입니다.
Names Default To Here(1);
dt = Open("$DOWNLOADS/All Items 2014-2021 Stacked.jmp");
color_property = Column(dt, "Color Group") << Get Property("Value Colors");
values = dt[0, "Color Group"];
For Each({color_prop}, color_property,
value = Arg(color_prop, 1);
color = Arg(color_prop, 2);
color_rows = dt << Get Rows Where(:Color Group == value);
:Data << color cells({color, color_rows});
);
Re: 색상 코드 상위 5개감사합니다!!! 이제 완벽해졌어요!!!
Re: 색상 코드 상위 5개문제가 해결된 것을 보니 기쁘네요.다음을 수행하여 작업을 완료했는지 확인하세요.
- 애플리케이션에 코드를 잘라내어 붙여넣기만 하지 마세요.제공된 JSL을 공부하는 데 시간을 투자하고 배우다 JSL 내의 다양한 항목이 작동하는 방식.
- 받은 답변으로 돌아가서 문제를 해결한 답변을 솔루션으로 표시하여 미래의 독자가 가능한 한 효율적으로 답변을 얻을 수 있도록 하세요.