파이 그래프+히트 맵여러분, 안녕하세요,
해양 생물학자로서 저는 최근에 제가 정말 좋아하는 산호초 데이터의 시각적 표현을 우연히 발견했습니다(첨부 파일 참조). 여기에는 개별 웨지가 기본적으로 특정 매개변수의 상대적 수준을 표시하는 열 지도인 다양한 파이 그래프가 표시됩니다. 나는 이것을 내 자신의 연구에 적용하고 싶습니다. 비록 히트 맵 자체는 아니지만 Graph Builder를 사용하여 수행할 수 있다고 생각합니다. 내 생각은 다음과 같습니다. 4개의 응답 변수(A, B, C, D)를 나타내는 4개의 파이 웨지를 원한다고 가정해 보겠습니다. 크기는 중요하지 않으므로 동일한 면적을 차지하도록 각각의 값을 0.25로 지정하겠습니다. 색상을 오버레이할 수 있다는 것을 알고 "색상" 열을 만들고 4개의 응답 변수에 값을 할당했지만 그래프가 그에 따라 변경되지 않았습니다.
가치 색칠과 라벨링을 시도했지만 운이 없었습니다. 테이블을 잘못 차린 것 같아요! 어떤 제안?? 감사해요!
Re: 파이 그래프+히트 맵앤더슨,
인체의 예가 여기에 사용되었습니다. JMP를 사용한 개인 다이어트 및 피트니스 데이터 분석 그리고 여기: 사용자 정의 맵을 선택 필터로 사용하여 JMP® 12에서 내 운동 데이터의 그래프를 부분집합화하고 탐색합니다.
나는 당신을 보았다 Discovery Summit Americas 2020 프레젠테이션 녹음 : 암초 산호의 운명을 예측하기 위해(2020-US-45MP-615) 하지만 라이브로 볼 수 있기를 고대하고 있어요!
~ 존
Re: 파이 그래프+히트 맵남자,
정말 좋습니다. 저는 이번 주에 강연을 꼭 시청할 생각입니다(제 일정에 맞춰 진행됩니다.). 저는 "그래프렛"과 함께 이 기능이 Graphbuilder 그래프에 데이터를 오버레이하고 사용자 정의 수치에 데이터를 표시할 수 있는 모든 종류의 문을 열어줄 것이라고 생각합니다. 튜토리얼의 형태라고 생각합니다). 미학적 측면에서 어떤 제안이 있는 사람이 있는지 궁금합니다. 저는 개인적으로 파이 그래프를 좋아하지만, 우리가 고려하지도 않은 더 좋은 방법이 있을까요? 비디오 게임 스타일의 "헬스 바"에 대한 당신의 아이디어도 마음에 듭니다.
생각해 보면 아마도 이것이 역학자들에게 도움이 될 수 있을 것입니다. 예를 들어, 위도 그리드에 감염률을 겹쳐 놓은 다음 등고선 플롯에 환자 또는 환자 그룹에 대한 추가 정보가 포함된 고정된 쐐기형/원형 그래프가 있는 경우 다음을 사용하여 불가능할 수 있는 복잡성 계층을 잠재적으로 추가할 수 있습니다. 표준 GraphBuilder 기능(대부분의 데이터 유형에 대해 그래프렛이 작동할 수도 있지만).
Re: 파이 그래프+히트 맵이 토론을 통해 저는 JMP Discovery Americas 2020에 대한 논문과 프레젠테이션을 작성하게 되었습니다.해양 생물학자, 비디오 게임, JMP를 결합하면 무엇을 얻게 될까요? (2020-US-45MP-543)
논문을 준비하면서 이 게시물에 설명된 기술을 실험하고 개선하는 시간을 가졌습니다.
백서에는 일부 리소스(맞춤형 지도 및 예시)와 이를 사용하는 방법에 대한 자세한 지침이 포함되어 있습니다.
이 게시물과 제 논문이 도움이 되기를 바랍니다.
감사해요,
~ 존
Re: 파이 그래프+히트 맵앤더슨,
그래프 빌더는 지도의 특정 위치에 막대형 차트나 원형 차트를 배치하는 방법을 제공하지 않습니다. 다음 방법으로 문제를 해결할 수 있습니다.
- 지도 역할에서 샘플 번호를 사용하는 그래프 빌더 그래프에서 테이블을 생성합니다(막대 또는 사용자 정의 지도 모양을 사용하여 구축). 이렇게 하면 샘플 번호 열과 각 샘플에 대한 이미지 열이 포함된 테이블이 생성됩니다.
- 생성된 테이블의 이미지 열을 다시 스택되지 않은 데이터 테이블에 복사합니다. (이미지 열이 샘플 번호의 순서와 일치하는지 확인하세요. **
- ㅏ. 이미지 열에 레이블을 지정하거나 b. 이미지 열에 대해 '마커로 사용'을 설정합니다.
- 스택되지 않은 데이터 테이블을 사용하여 염도 또는 온도 열을 색상 역할로 사용하여 Graph Builder에서 등고선 지도를 만듭니다.
- 포인트 요소를 추가합니다.선택적으로 다른 색상 역할을 사용합니다.
- 3.a단계를 따르면 이미지가 호버 라벨에 표시됩니다. 일부 호버 라벨을 고정하고 텍스트 교체를 통해 원치 않는 호버 라벨 텍스트를 제거할 수 있습니다.
- 3b단계를 수행하면 모든 마커가 이미지 열의 이미지와 함께 표시됩니다. 이로 인해 화면이 어수선해질 수 있으며, 확대하거나 겹치는 이미지를 삭제하여 해결할 수 있습니다.
** 순서가 같지 않아 이미지 열을 복사하기 전에 정렬해야 했습니다. 돌이켜보니 올바른 행에 이미지를 가져오기 위해 조인이나 가상 조인을 사용할 수 있었다는 것을 깨달았습니다. 이 글을 먼저 읽었더라면 좋았을 텐데요: https://community.jmp.com/t5/JSL-Cookbook/Geographic-Maps-with-Graphs-as-Markers/ta-p/53782.
여기에 3.a와 3.b를 모두 게시했습니다.
https://public.jmp.com/packages/Heat-contour-with-image-annotations/js-p/5d64597acf28b80f980812ba

막대를 그리는 데 사용한 방법에 대해. 저는 맞춤형 지도를 사용하지 않았고, 맞춤형 그래픽 스크립트를 사용하여 막대의 길이를 계산하고 각 지점 위에 배치했습니다.
합리화 측면에서는 JSL이 최선의 선택인 경우가 많습니다.
~ 존
Re: 파이 그래프+히트 맵남자,
정말 좋아요! Graph Builder에서 직접 수행할 수 있다고 생각하십니까, 아니면 그렇게 하려면 스크립팅과 고급 지식이 필요합니까? 나는 스크립트를 수정할 수 있다는 것을 알고 있지만 엄청난 양의 데이터에 대한 파이 그래프 위에 이 옵션을 사용한다면 간소화 측면에서 생각하고 있습니다. 사용자 정의 모양이 필요했습니까, 아니면 지도에 모든 아이콘을 수동으로 고정했습니까?
제목: 파이 그래프 + 히트맵앤더슨과 DS님, 천만에요.
지도상의 각 지점에 세 가지 변수를 표시하는 더 나은 사용자 지정 그래픽 스크립트 예제를 게시했습니다.

JMP Public에서 확인할 수 있습니다. 다음 링크를 클릭하세요.
https://public.jmp.com/packages/5d605bce3560ce0d2cafd48b
각 지점당 임의로 설정한 세 가지 셀 값을 나타내기 위해 간단한 막대 그래프(굵은 선)를 사용했습니다. 파이 차트를 만들려면 좀 더 작업이 필요하겠지만, 개념 증명 차원에서 먼저 보여드리고 싶었습니다. JSL 스크립트는 JMP Public의 게시물 세부 정보에서 확인하고 다운로드할 수 있습니다.
존
Re: 파이 그래프+히트 맵우와! 이것은 훌륭합니다. 모든 도움과 정보 John에게 감사드립니다. 저는 맞춤형 지도 기능이 존재하는지 전혀 몰랐기 때문에 하루나 이틀 동안 그 "토끼 굴"을 내려가 제가 연구하는 산호의 추적된 이미지에 데이터를 표시하는 데 사용할 수 있는 모든 멋진 방법에 대해 생각했습니다(슬프게도 하지만 동일한 식민지 내에서 수많은 샘플을 수집하는 경우는 거의 없지만 확실히 백버너 프로젝트 아이디어이고 이는 결과를 표시하는 멋진 방법이 될 것입니다.
어떤 종류의 모양이나 이미지 등에 데이터를 표시하는 기능은 확실히 더 많은 사람들이 알아야 할 JMP 기능이라고 생각합니다. 추가 기능은 당분간 잘 작동하지만).
DS에게: 저는 사실 JMP에서 파이 그래프와 지도를 만들고(한두 번 해보면 JMP를 사용하면 지도에 데이터를 그리는 것이 매우 간단합니다) 그런 다음 Adobe를 사용하여 유형의 그림을 만드는 것에 대해 생각하고 있었습니다. 원래 게시물에는 나와 있지만 JMP에는 플롯의 데이터 포인트에 주석을 달고 이미지를 고정하는 방법이 있습니다. 따라서 약간의 연습과 작업을 통해 JMP만으로 제가 원래 게시한 게시물에 있는 전체 지도+데이터 그림을 가상으로 만들 수 있을 것입니다. 사실, 나는 앞으로 몇 주 안에 이 일을 하려고 노력할 것입니다.
솔루션을 제공해 주신 John에게 다시 한 번 감사드립니다!
Re: 파이 그래프+히트 맵안녕 @John_Powell_JMP ,
추가 정보를 제공해 주셔서 감사합니다. 이 토론을 북마크에 추가하여 파일로 보관한 다음 돌아가서 보내주신 추가 정보를 다시 읽을 수도 있습니다.
죄송합니다. 귀하의 게시물을 해결책으로 표시하는 것에 대해 제가 의미하는 바를 설명하지 않았을 수도 있습니다. 귀하 때문이 아니라 제가 원본 포스터가 아니어서 해당 옵션이 없기 때문에 설명할 수 없을 것 같습니다. 히트맵을 다루지 않았습니다. 그렇게 읽혔다면 사과드립니다. 돌아가서 다시 읽어보니 제가 그런 식으로 말한 것처럼 들리네요(제 입장에서는 좋지 않습니다).
저는 JSL에 익숙하고 다른 많은 용도로 사용하고 있지만 이와 같은 사용자 정의 그래프 작성에는 사용해 본 적이 없으므로 이는 제가 배울 수 있는 새로운 영역이 될 것입니다!
감사해요!,
DS제목: 파이 그래프 + 히트맵@SDF1 님, 친절한 말씀 감사합니다.
맞습니다. 배경 지도 위에 그래픽을 겹쳐 표시하는 부분에 대해 제가 완전히 답변하지 못했네요.
지도에 겹쳐 표시하려면 사용자 지정 대화 상자의 스크립트를 사용하는 것과 같은 다른 메커니즘이 필요합니다. 
몇 가지 예시 스크립트가 제공됩니다.

사용자 지정 기능에 대한 정보는 여기에서 확인할 수 있습니다.
https://www.jmp.com/support/help/14-2/customize-graphical-elements.shtml
원을 이용한 간단한 예시를 보여드리겠습니다.

Re: 파이 그래프+히트 맵안녕 @John_Powell_JMP ,
빠르고 명확한 답변에 감사드립니다. 귀하의 응답을 받기 전에 원래 게시물을 다시 읽었으며 너무 빨리 훑어본 것을 깨닫고 마지막 5개 열에 대한 언급을 기록했습니다.
그런 다음 JMP Public에서 귀하의 콘텐츠를 다운로드하고 거기에 있는 세부 정보를 더 자세히 살펴본 결과 레이블 열 속성에 대한 지도 모양에 대한 참조를 발견했습니다. 나는 과거에 그 가능성을 탐구한 적이 없었기 때문에 당신의 지도를 조금 읽고 실험해 왔습니다. 아주 멋지다!
원본 포스터의 예처럼 세계 지도에서 데이터가 수집된 경도/위도 위치를 배경에 오버레이할 수도 있기를 바랐습니다. 하지만 그것은 그래프 빌더에서 할 수 있는 것 이상이라고 생각합니다. 그러나 그것은 멋질 것이다. 좋은 시각화 아이디어네요. 네, 그게 제 업무에 얼마나 도움이 되는지 확실히 알겠습니다. 일부 데이터에서 이를 테스트했으며, 셰이프 ID의 이름을 조정하기만 하면 작동합니다. 아주 좋습니다 감사 해요!
그건 그렇고, 나는 귀하의 게시물을 해결책으로 표시하고 싶지만(적어도 파이 그래프의 경우) 그렇게 할 수 없을 것 같습니다. JMP는 원래 포스터가 기대했던 대로 파이 그래프와 윤곽선(또는 히트맵)을 모두 수행할 수 있나요?
감사해요!,
DSRe: 파이 그래프+히트 맵Sym GE HMS, 호스트 GE HMS, 콜로니 색상, 가변성 및 합산 이상 지수라는 이름의 열을 쌓았습니다. JMP 공개 게시물에 첨부된 테이블에서 이제 레이블 열의 각 응답에 대한 레이블(이전 열 이름)이 있는 응답이라는 열 아래에 있습니다.
JMP는 단면적 '과녁' 차트를 자동으로 생성하지 않습니다. 몇 가지 단계가 관련되어 있습니다.
- 단면과 불스아이를 정의하는 JMP 공개 게시와 함께 제공되는 사용자 정의 지도 모양 파일을 만들었습니다.
- 그래프 빌더에서 레이블 열을 모양 역할(왼쪽 아래)으로 끌어서 사용자 정의 모양의 윤곽선을 표시했습니다.
- 색상을 적용하기 위해 응답 열을 색상 역할(오른쪽)로 드래그했습니다. 그러면 각 부문의 평균 응답으로 모양이 채워집니다.
- 각 샘플을 분리하기 위해 샘플 번호 열을 Wrap 역할(오른쪽 상단)로 드래그했습니다.
나는 멋진 시각화 아이디어에 대해 공로를 인정할 수 없습니다. 원본 포스터에서 따왔습니다.
도움이 되셨다니 기쁘네요.
~ 존
Re: 파이 그래프+히트 맵안녕 @John_Powell_JMP ,
나는 이것을 내 사업이 수행하는 일부 보고에 적용할 수 있는지 알아보기 위해 직접 시도해 보고 싶습니다.
관심 컬럼별로 쌓았다고 하셨는데, 그게 어떤 컬럼인가요? 데이터 테이블을 다운로드했지만 어떤 열이 스택에 필요한지 알 수 없습니다. 그리고 JMP는 원형 차트를 단면적 '과녁'으로 자동 생성합니까, 아니면 별도의 설정으로 생성합니까? 나는 전에 이런 사람을 본 적이 없습니다. 그것은 멋진 시각화이고 나에게는 새로운 것이므로 그것이 궁금합니다.
감사해요!,
DS제목: 파이 그래프 + 히트맵관심 있는 열을 쌓아서 사용자 지정 지도를 활용하면 원하는 시각화를 구현할 수 있습니다.
다음은 귀하께서 제공하신 데이터를 사용하여 JMP 공개 버전에서 실행한 예시입니다.
사용자 지정 지도와 수정된 데이터 테이블은 다음 위치에서 찾을 수 있습니다.
https://public.jmp.com/packages/5d5aa110f40f010268e63cf4
존
Re: 파이 그래프+히트 맵아직도 헷갈려서 실제 데이터 파일을 첨부해야겠다고 생각했습니다. 기본적으로 마지막 5개 열을 쐐기 색상이 셀의 색상(샘플 번호로 래핑됨)을 반영하는 원형 그래프에 넣고 싶습니다. Graph Builder에서는 이것이 불가능할 수도 있다고 생각하기 시작했습니다.....
제목: 파이 그래프 + 히트맵안녕하세요 ,
이 토론에 다소 늦게 참여하게 되었지만, 저도 비슷한 시각화를 만들려고 합니다. 특히 "3.b" 솔루션에 관심이 있는데, 유럽 전역에 걸쳐 격자 형태로 원형 차트를 표시하고 싶기 때문입니다 (현재 레이블 스타일은 이 경우 전혀 읽기 어렵습니다).
요점은 그래프를 마커로 사용할 때 배경이 흰색이라 지도에서 보기 좋지 않다는 것입니다. 모서리 부분이 겹치는 경향이 있습니다.
파이 차트 크기를 조정하여 흰색 영역을 줄일 수는 있지만, 흰색 배경은 여전히 보입니다. JMP 17에서 이 배경을 투명하게 만들거나 완전히 제거하는 방법이 있을까요?
요한나
제목: 파이 그래프 + 히트맵안녕하세요 @johanna_younous 님 ,
대화에 오신 것을 환영합니다.
제가 처음 이 대화에 참여했을 때는 저도 그래프 배경을 흰색으로 설정했었습니다.
위에서 언급한 프레젠테이션을 할 무렵에는 배경을 투명하게 만드는 방법을 알아냈습니다.
그래프 이미지 열의 이름이 "Graph"인 이미지 테이블에서 흰색 픽셀을 투명하게 만들기 위해 다음 JSL 스크립트를 사용했습니다.
dt=CurrentDataTable();
For Each Row(
{r, g, b} = dt:Graph[] << getpixels( "rgb" );
a = !AND(r == g, g == b);
dt:Graph[] << setpixels( "rgba", {r, g, b, a} );
);
이렇게 하면 빨강, 초록, 파랑 색상 구성 요소가 모두 동일한 회색 픽셀이 투명해집니다. 배경에도 회색 부분이 있었거든요.
이게 효과가 있기를 바랍니다.
존
제목: 파이 그래프 + 히트맵@John_Powell_JMP 님 , 감사합니다.
유감스럽게도 이 루프가 제대로 작동하지 않아서 원인을 파악하는 데 어려움을 겪고 있습니다.
전체 실행 과정을 완료해도 그래프의 흰색 배경이 제거되지 않습니다.
);
dtgraph= Graphbuild<< Make Into Data Table( );
For( i=1, i <= nrows(dtgraph) , i++, //i=3
img =dtgraph:Graph[i] ;
{r, g, b} = img << getpixels( "rgb" );
// Pixel coloré → alpha = 1 (opaque)
// Pixel gris/blanc/noir (r==g==b) → alpha = 0 (transparent)
a = ! (r==g==b);
Wait(0);
img << setpixels("rgba", {r, g, b, a});
Wait(0);
dtgraph:Graph[i] = img;
);
하지만 이 과정을 단계별로 실행하면 첫 번째 행에 업데이트가 성공적으로 적용됩니다!
img =dtgraph:Graph[1] ;
{r, g, b} = img << getpixels( "rgb" );
// Pixel coloré → alpha = 1 (opaque)
// Pixel gris/blanc/noir (r==g==b) → alpha = 0 (transparent)
a = ! (r==g==b);
Wait(0);
img << setpixels("rgba", {r, g, b, a});
Wait(0);
dtgraph:Graph[1] = img;
이것 때문에 정말 미칠 것 같아요. 아마 업데이트 타이밍 문제거나 표현식 유형 열과 관련된 문제인 것 같습니다.
어떤 의견이든 주시면 정말 감사하겠습니다 
요한나
제목: 파이 그래프 + 히트맵이 해결책(그리고 다른 많은 의견들)은 상당히 혁신적이지만, 개인적으로 파이 차트는 그다지 유용하다고 생각하지 않습니다. (터프티의 명언이 떠오르는데, 정확히 어디서 나온 말인지는 기억나지 않지만, 그의 말을 인용하자면 "멍청한 파이 차트 하나보다 더 나쁜 것은 멍청한 파이 차트가 여러 개 있는 것이다"입니다.) 도넛 차트가 파이 차트보다 낫긴 하지만, 이 경우에는 막대 그래프가 훨씬 효과적이라고 생각합니다. 4가지 차원에 걸쳐 여러 가지를 비교해야 하는 상황에서 몇 가지 문제가 있습니다. 첫째는 조각들의 순서이고, 둘째는 조각들의 크기입니다. 막대 그래프는 파이 조각들보다 순서를 정하기가 더 쉽고, 크기도 막대 그래프가 훨씬 적절합니다. 물론 더 나은 다른 시각화 방법이 있을 수도 있지만, 저는 이 파이 차트가 이해하기 쉽다고 생각하지 않습니다.
제목: 파이 그래프 + 히트맵한편, (수많은 테스트와 실패를 거친 끝에, 이 정말 형편없는 스크립트를 사용해도 결국 작동하게 만들 수 있었습니다.)
dtgraph= Graphbuild<< Make Into Data Table( );
For( i=1, i <= nrows(dtgraph) , i++, //i=6;
img =dtgraph:Graph[i] ; //
img1=char(img);
{r, g, b,a1} = img << Get Pixels( "rgba" );
a2 = !AND(r == g, g == b);
Wait(0);
eval(parse( "img << set Pixels(\!"rgba\!", {r, g, b, a2})" ));
img2= char(img);
print(img1==img2);
Wait(0);
dtgraph:Graph[i] = parse(char(img2));
img=empty();
);
print("fin loop1");
//exact same loop !!
For( i=1, i <= nrows(dtgraph) , i++, //i=6;
img =dtgraph:Graph[i] ; //
img1=char(img);
{r, g, b,a1} = img << Get Pixels( "rgba" );
a2 = !AND(r == g, g == b);
Wait(0);
eval(parse( "img << set Pixels(\!"rgba\!", {r, g, b, a2})" ));
img2= char(img);
print(img1==img2);
Wait(0);
dtgraph:Graph[i] = parse(char(img2));
img=empty();
);
print("fin loop2");
// log output
1
1
1
1
1
1
"fin loop1"
0
0
0
0
0
0
"fin loop2"
정말 이상한 동작이지만, 어쨌든 작동하니까 그걸로 충분하다고 합시다. 이 문제 해결에 너무 많은 시간을 썼네요 ^^
저는 이 현상에 대한 어떤 설명이라도 정말 알고 싶습니다.
제목: 파이 그래프 + 히트맵그 점에 대해서는 동의합니다만, 이해관계자들의 요청대로라면 파이 차트(그리고 최악의 경우 레이더 차트까지!)를 사용해야 할 것 같습니다!
제목: 파이 그래프 + 히트맵@johanna_younous ,
해결책을 찾아서 커뮤니티와 공유해 주셔서 감사합니다만, 더 간단하고 효율적인 해결책이 있을 수 있다는 점에는 동의합니다. "For Each" 루프가 "For" 루프보다 유리한 점이 있을 수도 있겠네요.
Get Pixels 함수에서 "rgba"를 사용하신 것을 보고 놀랐지만, 스크립트를 한 번 실행한 후 이미지의 픽셀에 알파 성분이 포함되었을 수도 있습니다.
제가 스크립트를 사용한 경우, 이미지는 별도의 데이터 테이블에 있었고 가상 조인을 사용하여 연결되었습니다. 하지만 귀하의 상황과는 다를 수 있으며, 이 때문에 제 경우에는 이미지 변경 사항이 즉시 반영되었습니다.
저보다 JMP 스크립팅에 대한 전문 지식이 더 많은 커뮤니티 회원분께서 더 간단한 해결책이나 설명을 제공해 주실 수 있을지도 모르겠습니다.
감사해요,
존