오버레이 플롯 사용자 정의 색상(행 색상)오버레이 플롯을 플로팅하기 위해 각 장치의 행을 프로그래밍 방식으로 색상 코딩한 JMP DataTable이 있습니다. (100,000s 행이 있는 대형 테이블) 오버레이 플롯 X 대 Y에서 플롯할 때 색상이 올바르게 표시됩니다(포인트는 행 색상임).각 장치에는 수천 개의 포인트가 있으며 각 장치의 모든 데이터는 항상 동일한 행 색상입니다.
플롯을 장치별로 그룹화하면 JMP가 행의 색상이 아닌 고유한 색상 구성표를 할당합니다. (이 경우 내가 원하는 것이 아님)
내 플롯의 경우 포인트를 표시하지 않고 대신 포인트를 선으로 연결하고 연결선 색상을 내 행의 색상으로 지정하고 싶습니다.
JMP는 커넥터 색상을 내 행의 색상이 아닌 일정한 색상으로 만듭니다. 다른 커넥터 색상을 얻을 수 있는 유일한 방법은 장치별로 그룹화하는 것입니다. 하지만 장치별로 그룹화하면 색상이 더 이상 내 행의 색상과 일치하지 않습니다!
내 DataTable에는 R,G,B 값에 대한 열이 있으므로 이것을 사용할 수 있지만 어떻게 해야 할지 확신이 서지 않습니까?
BTW 이 작업에도 GraphBuilder를 사용하여 비슷한 문제가 발생합니다…
어떤 제안이라도 감사하겠습니다!
감사해요,
크리스
Re: Overlay Plot 사용자 정의 색상(행 색상)감사합니다! 이것은 나를 위해 일했습니다.
Re: Overlay Plot 사용자 정의 색상(행 색상)몇 년 전에 비슷한 질문을 한 적이 있습니다. 스레드는 다음과 같습니다.
https://community.jmp.com/t5/Discussions/How-to-create-a-legend-in-Graph-Builder-which-preserves-row/mp/7983#M7977
Re: Overlay Plot 사용자 정의 색상(행 색상)__fList__ 및 __mList__는 Substitute() 함수의 자리 표시자입니다.보다
도움말==스크립팅 색인==>기능==>대체
정의 및 예
Re: Overlay Plot 사용자 정의 색상(행 색상)짐,
당신은 정의할 수 있습니까
__f목록__
그리고
__mList__
코드 예제에서 변수가 사용되지만 초기화/정의되지 않았습니까?
감사해요,
크리스Re: Overlay Plot 사용자 정의 색상(행 색상)크리스,
당신이 하려는 일을 하기 위해 JSL을 사용하고 있다는 사실에 안심하세요.JSL에는 일반 스크립트를 빌드하기 위한 모든 기능과 기능이 있습니다.
Re: Overlay Plot 사용자 정의 색상(행 색상)Jim, 코드 주셔서 감사합니다. 이해한 것 같습니다. 구문 예제에 정말 감사드립니다!이제 제 경우에는 일반화해야 합니다(실행 시간까지 알 수 없는 모든 빈이 포함된 문자열을 빌드해야 합니다).
__fList__는 특정 색상을 원하는 관심 열의 값 목록일 뿐이라고 가정합니다.따라서 이 표현식이 더 커질 수 있고 내 목록이 1000개의 큰 항목이 될 수 있으며 표현식에 여러 다른 색상 저장소가 있을 수 있다고 가정합니다.
오늘 나중에 시도해 볼 시간이 있을 수 있습니다. 진행 상황을 알려 드리겠습니다.
내가 보기에 가장 어려운 문제는 일반화된 사례에 대해 아래 식을 작성하는 것이지만 처음에는 개념 증명으로 하드 코딩된 예제를 시도할 것입니다. 식에 문제가 있으면 포럼으로 돌아올 수 있습니다.
다시 한번 감사합니다!
크리스
Eval(
Substitute(
Expr(
dt:sex << set property( "value colors", {"F" = __fList__, "M" = __mList__} )
),
Expr( __fList__ ), fColorList,
Expr( __mList__ ), mColorList
)
);
Eval(
Substitute(
Expr(
dt:sex << set property( "value colors", {"F" = __fList__, "M" = __mList__} )
),
Expr( __fList__ ), fColorList,
Expr( __mList__ ), mColorList
)
);
// Set the row state colors
dt << Color by Column( :Sex );
Re: Overlay Plot 사용자 정의 색상(행 색상)다음은 행 상태 색상 설정 및/또는 값 색상 열 속성 설정에서 RGB 색상을 처리하는 방법에 대한 아이디어를 제공하는 스크립트입니다.
Names Default To Here( 1 );
// Open a sample data table, and modify it to
// have 3 new columns representing the RGB values
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dt << New Column( "R" );
dt << New Column( "G" );
dt << New Column( "B" );
For Each Row(
If(
:Sex == "F",
:R = Color To RGB( "red" )[1];
:G = Color To RGB( "red" )[2];
:B = Color To RGB( "red" )[3];,
:R = Color To RGB( "purple" )[1];
:G = Color To RGB( "purple" )[2];
:B = Color To RGB( "purple" )[3];,
)
);
// Here are a couple of examples of setting colors
// The first one just sets the row colors based upon
// the RGB colors from the :R, :G, :B columns
For( i = 1, i <= N Rows( dt ), i++,
colorList = {};
colorList[1] = :R[i];
colorList[2] = :G[i];
colorList[3] = :B[i];
Row State( i ) = Color State( colorList );
);
Wait( 10 );
dt << clear row states;
Wait( 5 );
// The next example, sets the row state colors by
// first setting the "Value Colors", column
// property, and then sets the row state colors
// based upon the "Value Colors"
// To set the "Value Colors", the below commented
// statement needs to be created using JSL
/*dt:sex << set property("value colors",
{"F" = {0.670588235294118, 0.0313725490196078, 0.988235294117647},
"M" = {0.941176470588235, 0.196078431372549, 0.274509803921569}});*/
// First we will create the female RGB color list
// Find a row that has the RGB colors we desire
rowList = dt << get rows where( :Sex == "F" );
// Since all values of R,G & B will be the same, only used the first
// selected row to create the list for the females
fColorList = {};
fColorList[1] = :R[rowList[1]];
fColorList[2] = :G[rowList[1]];
fColorList[3] = :B[rowList[1]];
// Repeat for the males
rowList = dt << get rows where( :Sex == "M" );
mColorList = {};
mColorList[1] = :R[rowList[1]];
mColorList[2] = :G[rowList[1]];
mColorList[3] = :B[rowList[1]];
// Substitute into a template of the Set Property structure
// the created RGB lists for females and males
Eval(
Substitute(
Expr(
dt:sex << set property( "value colors", {"F" = __fList__, "M" = __mList__} )
),
Expr( __fList__ ), fColorList,
Expr( __mList__ ), mColorList
)
);
// Set the row state colors
dt << Color by Column( :Sex );
Re: Overlay Plot 사용자 정의 색상(행 색상)귀하의 설명을 기반으로 얻은 것을 시각화하기는 어렵지만 일부 색상을 수동으로 선택하고 스크립트를 저장하여 Overlay Plot이 사용자 정의 색상을 그룹에 적용하는 방법을 살펴봐야 할 수도 있습니다.그런 다음 대신 각 그룹에 대해 원하는 RGB 값을 지정하는 고유한 스크립트를 작성할 수 있다고 생각합니다.루프 등을 통해 스크립트를 작성해야 할 수도 있지만 가능하다고 확신합니다.
설명하는 내용을 설명하기 위해 데이터 세트에 대한 최소한의 작업 예제를 제공할 수 있는 기회가 있습니까?
Re: Overlay Plot 사용자 정의 색상(행 색상)열(레이블/레이블 해제)을 "표시"하고 해당 열을 기준으로 색상을 지정하면 이제 행 색상이 해당 열을 기준으로 플롯하고 그룹화할 때 색상과 일치하지만 이제 내 질문은 프로그래밍 방식으로 설정하는 방법입니다. 해당 열의 다른 그룹에 대한 RGB 값입니다.RGB 값으로 각 색상을 설정하는 기능을 원합니다. JSL 시스템이 확실하지 않습니다.R, G 및 B에 대한 열이 있고 3개가 모두 포함된 연결된 열을 만든 다음 해당 열별로 색상을 지정할 수 있지만 다른 그룹에 대한 속성을 프로그래밍 방식으로 설정하는 방법을 확신하지 못했습니다.
Re: Overlay Plot 사용자 정의 색상(행 색상)작업 중인 열에 대해 "값 색상" 열 속성을 설정하여 원하는 원하는 색상을 유지하는 데 더 나은 행운이 있을 것이라고 생각합니다.대부분의 경우 "값 색상"은 JMP의 기본값입니다.