등고선 플롯 플랫폼의 반전 색상여러 열을 반복하고 등고선 플롯을 생성하는 스크립트가 있습니다.
열 값이 음수이면 윤곽선 색상을 반전시키고 싶으므로 다음과 같이 변수를 설정합니다.
if(col mean( col1 ) < 0, revcols = 1, revcols = 0);
Contour Plot(
...
Reverse Colors( revcols ),
...
그러나 내가 가진 문제는 등고선 플롯이 이제 항상 반전된다는 것입니다. revcols의 값을 무시하는 것 같습니다.
하드코딩하면
Reverse Colors( 0 )
그런 다음 색상을 반전시키지 않지만 revcols = 0이면 반전됩니다.
이 경우 값이 0인 변수를 0으로 처리하도록 영리한 조치를 취해야 합니까?
감사해요!
Re: 등고선 플롯 플랫폼의 색상 반전다음은 내 시스템에서 작동하는 해결 방법입니다.
Clear Globals();
rev = 1;
Eval(
Substitute(
Expr(
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 1 ),
Label Contours( 0 ),
__reverse__,
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) ),
SendToReport(
Dispatch(
{},
"Contour Plot for age",
OutlineBox,
{Set Title( "Contour Plot for age, with rev = " || Char( rev) || " using substitute" )}
)
)
)
),
Expr( __reverse__ ), If(rev==1,parse("Reverse Colors( 1 )"),parse("")))
);Re: 등고선 플롯 플랫폼의 색상 반전제안에 감사하지만 여전히 운이 없습니다. 나는 이것을 시도했다 :
// Code as run
Clear Globals();
rev = 0;
Eval(
Substitute(
Expr(
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 1 ),
Label Contours( 0 ),
Reverse Colors( __reverse__ ),
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) ),
SendToReport(
Dispatch(
{},
"Contour Plot for age",
OutlineBox,
{Set Title( "Contour Plot for age, with rev = " || Char( __reverse__ ) || " using substitute" )}
)
)
)
),
Expr( __reverse__ ), rev
)
);그러나 차트는 여전히 반전된 색상으로 나왔습니다. 차트에서 스크립트를 저장하면 다음과 같이 표시됩니다.
// code from Save Script
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 1 ),
Label Contours( 0 ),
Reverse Colors( 1 ),
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) ),
SendToReport(
Dispatch(
{},
"Contour Plot for age",
OutlineBox,
{Set Title( "Contour Plot for age, with rev = 0 using substitute" )}
)
)
);보시다시피 __reverse__ 값이 제목 텍스트로 올바르게 대체되었지만 어떤 이유로 여전히
Reverse Colors( 1 )
이것은 버그이며 해결 방법이 있습니까?
당신의 도움을 주셔서 감사합니다!
Re: 등고선 플롯 플랫폼의 색상 반전코드를 대체 구조로 변환해 보십시오. 그러면 JMP에 rev 값이 하드 코딩된 것처럼 표시됩니다.
rev = 1;
Eval(
Substitute(
Expr(
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 0 ),
Label Contours( 0 ),
Reverse Colors( __reverse__ ),
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) )
)
),
Expr( __reverse__ ), rev
)
);Re: 등고선 플롯 플랫폼의 색상 반전답장을 보내 주셔서 감사합니다! MacOS 10.14.6에서 JMP 14.2.0을 사용하고 있습니다.
귀하의 스크립트를 시도했지만 여전히 동일한 문제가 발생합니다. 올바른 출력을 얻고 있는지 확인하기 위해 이것을 스크립트에 추가했습니다.
SendToReport(
Dispatch( {}, "Contour Plot for age", OutlineBox, {Set Title( "Contour Plot for age, with rev = " || Char( rev ) )} )
)그리고 차트는 다음과 같습니다(더 명확하게 하기 위해 윤곽선도 채웠습니다).


이전처럼 하드코딩하면
Reverse Colors( 0 )
그런 다음 다음을 얻습니다(정확함).

도움이 되었기를 바랍니다. 감사해요!
Re: 등고선 플롯 플랫폼의 색상 반전JMP 12와 JMP 15에서 아래 스크립트를 실행했는데 둘 다 오류 없이 작동했습니다.자세한 내용을 제공해 주시면 문제를 해결할 수 있습니다.
rev=1;
Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 0 ),
Label Contours( 0 ),
Reverse Colors( rev ),
Transform( "Range Normalized" ),
Specify Contours( Min( 12.5 ), Max( 16.5 ), N( 9 ) )
)
테스트를 위해 Big Class 샘플 데이터 테이블을 사용했습니다.