How can you show the RGB color coordinates of crayons in an interesting way using JMP? (Image copyright James A. Alloway, Jr. Used with permission.)How can you show the RGB color coordinates of crayons in an interesting way using JMP? (Image copyright James A. Alloway, Jr. Used with permission.)How can you show the RGB color coordinates of crayons in an interesting way using JMP? (Image copyright James A. Alloway, Jr. Used with permission.)How can you show the RGB color coordinates of crayons in an interesting way using JMP? (Image copyright James A. Alloway, Jr. Used with permission.)JMP를 사용하여 크레용의 RGB 색상 좌표를 어떻게 흥미롭게 표시할 수 있습니까? (이미지 저작권 James A. Alloway, Jr. 허가 하에 사용됨)
공학 우편 가방
2회: 너의 본색이 보여
때때로 JMP 시스템 엔지니어는 일반적인 범위를 약간 벗어난 흥미로운 질문에 직면합니다. JMP 용법. 이러한 응용 프로그램은 일반적으로 영리하며 데이터를 사용하는 것이 비즈니스 또는 기술 문제에만 국한되지 않는다는 점을 보여줍니다. 아래는 공유하기에 재미있을 것이라고 생각한 뉴욕주의 다른 동료의 예입니다.
Jim은 일부 자원 봉사 활동의 일환으로 150개의 Crayola 크레용에 대한 데이터를 분석하려고 했습니다. 그는 학생들에게 STEAM(과학, 기술, 엔지니어링, 예술 및 디자인, 수학)에 대한 관심을 불러일으킬 멋진 데이터 시각화를 보여주고 싶었습니다.
질문
안녕하세요, Mike [JMP],
마지막으로 질문이 있습니다. STEAM 프레젠테이션용 데이터 세트를 만들고 있습니다. 예술 및 디자인 부분의 경우 Crayola 크레용(150행)에 대한 데이터가 있습니다. 각 행(색상)에 대해 가지고 있는 색 좌표(R,G,B)를 사용하여 삼항 플롯을 만들려고 합니다. 어렵지 않게 플롯을 만들 수 있지만 플롯의 각 마커가 각 행에 표시된 실제 색상이 되도록 하고 싶습니다. 나는 이것을 손으로 할 수 있었지만 더 쉬운 방법이 있어야한다고 생각합니다 (스크립트를 작성하지 않고도).
이 방향에 대한 지침을 주시면 감사하겠습니다! (이 시점에서 서두를 필요가 없습니다.)
감사해요.
짐 [사용자]
나의 응답
이것을 시도하십시오.<데이터 표 첨부>
글쎄요... 그건 유익한 정보 교환이었죠, 그렇죠?
이것은 누군가를 보여줄 수 있는 유일한 방법인 드문 경우 중 하나의 예입니다. 어떻게 무언가를 한다는 것은 실제로 한다 그들을 위해. 나는 일반적으로 이것을 하는 팬이 아니지만 때로는 그것이 가장 좋은 방법입니다. 그리고 예, 이 경우 답은 스크립트입니다. 잠시 시간을 내어 데이터와 내가 한 일을 살펴보겠습니다. Jim이 제공한 데이터(사용 가능 여기 )는 다음과 같습니다.
Jim's original data tableJim's original data tableJim's original data tableJim's original data tableJim의 원래 데이터 테이블
우리가 보는 것은 크레용 이름에 대한 열과 해당 색상에 대한 HSV RGB 좌표입니다. 실제로 솔루션에 HSV 좌표를 사용하지 않았습니다. Jim은 다음과 같은 행 상태에 프로그래밍 방식으로 색상을 할당하는 방법을 찾고자 합니다. RGB 좌표로 설명된 색상과 일치 . (복잡하게 들린다면 잠시만 기다리세요. 그렇게 나쁘지는 않습니다.) 제가 다시 보낸 데이터 테이블은 다음과 같습니다.
My data tableMy data tableMy data tableMy data table내 데이터 테이블
포함된 테이블 스크립트를 확인합니다(왼쪽의 녹색 화살표 옆). 첫 번째는 마법이 일어나는 곳입니다. 다른 것들은 나중에 이야기할 몇 가지 재미있는 분석입니다.
음, Tickle Me Pink!
먼저, 이 착색 사업을 살펴 보겠습니다. 당신이 무엇을 하려고 하느냐에 따라, JMP 다른 형식의 RGB 좌표가 필요합니다. 셀 색상(열에 있는 색상 이름의 배경) 및 행 상태 색상을 사용하려면 RGB를 0과 1 사이에서 조정해야 합니다. 그래서 내가 하고 있는 일을 투명하게 하려고 했기 때문에 RGB 좌표를 8비트 색상 척도(0-255)에서 0과 1 사이로 재조정하기 위해 일련의 열(빨강, 녹색, 파랑)을 만들었습니다. . 그런 다음 테이블 스크립트 "색상 셀"은 두 가지 작업을 수행합니다. 먼저 다음을 사용하여 각 행을 통과합니다. 각 행에 대해() 루프 및 :Color 이름 << 색상 셀() 셀 색상을 설정하라는 메시지입니다. 그런 다음 다시 투명성을 위해(그리고 아마도 며칠 동안 이 작업을 수행했기 때문에 – 솔직히 말해서 기억이 나지 않습니다) 두 번째 단계를 사용했습니다. 을 위한() 내가 만든 열을 사용하여 행 상태를 설정하는 루프.
Names Default To Here( 1 );
dt = Current Data Table();
dt << Clear Select;
For Each Row(
// get RGB values
red = Column( "Red" )[Row()];
green = Column( "Green" )[Row()];
blue = Column( "Blue" )[Row()];
// color the "sample" column cell with the sample color
:Color Name << Color Cells( RGB Color( red, green, blue ), Row() );
);
For( i = 1, i <= N Rows(), i++,
// get RGB values
red = Column( "Red" )[i];
green = Column( "Green" )[i];
blue = Column( "Blue" )[i];
dt << Select Rows( i );
dt << Colors( RGB Color( red, green, blue ) );
dt << Clear Select;
);
이 스크립트를 실행하면 Jim에게 다시 보낸 다채로운 테이블이 생성됩니다.
이제 이 테이블은 매우 다채롭지만 이러한 종류의 데이터를 사용하려면 몇 가지 강력한 시각화가 필요합니다. RGB는 삼항 좌표 공간이므로 Ternary Plot이 적절한 시작점처럼 보입니다.
A Ternary Plot is a good place to start.A Ternary Plot is a good place to start.A Ternary Plot is a good place to start.A Ternary Plot is a good place to start.Ternary Plot은 시작하기에 좋은 곳입니다.
행 상태 색상은 각 크레용이 RGB 색상 공간에 있는 위치를 명확하게 보여줍니다. 나는 또한 약간의 주의 사항 이 응용 프로그램의 삼항 플롯 사용에 대해. 엄밀히 말하면 Ternary Plot 플랫폼은 각 좌표에 제공된 세 값의 합이 1이 될 것으로 예상합니다. 제공된 데이터가 이 기준을 충족하지 않으면 데이터 포인트를 정규화하여 충족합니다. 따라서 Ternary Plot이 정말 깔끔하긴 하지만 색 공간을 100% 정확하게 표현한 것은 아닙니다. 그러나 연습의 요점은 STEAM의 관심을 끌만한 그래픽을 만드는 것이었기 때문에 시각적 효과를 위해 약간의 정확도를 교환하는 것은 괜찮다고 생각합니다…
분석적으로 계층적 클러스터링을 사용하여 크레용의 색상이 얼마나 유사한지에 따라 크레용을 그룹화할 수 있습니다. 여기, 나는 별자리 플롯 , RGB 공간 좌표에서 계층적 클러스터링을 실행하여 덴드로그램을 보는 가장 좋아하는 방법입니다.
A Constellation Plot produced by performing Hierarchical Clustering on the data.A Constellation Plot produced by performing Hierarchical Clustering on the data.A Constellation Plot produced by performing Hierarchical Clustering on the data.A Constellation Plot produced by performing Hierarchical Clustering on the data.데이터에 대해 계층적 클러스터링을 수행하여 생성된 Constellation Plot입니다.
여기에서 색상 그룹이 5~7개 사이에 있음을 알 수 있습니다. 클러스터 수를 5로 설정한 다음 병렬 플롯을 살펴보았습니다. 클러스터 내의 유사점과 마찬가지로 클러스터의 차이점을 쉽게 볼 수 있습니다. 파스텔과 데이 글로우 색상이 자체 클러스터(클러스터 2 및 3)에 포함되어 있다는 점이 흥미로웠습니다.
The pastel and day-glow colors were put into their own clusters (clusters 2 and 3).The pastel and day-glow colors were put into their own clusters (clusters 2 and 3).The pastel and day-glow colors were put into their own clusters (clusters 2 and 3).The pastel and day-glow colors were put into their own clusters (clusters 2 and 3).파스텔과 일광 색상은 자체 클러스터(클러스터 2 및 3)에 넣었습니다.
k-Means 클러스터링 스크립트를 사용하여 유사한 결과를 볼 수 있습니다.
추신
언제나 그렇듯이 잠시 내려놓았다가 다시 찾아보는 것은 새로운 관점을 제공합니다. Jim이 처음 연락한 이후로 이 데이터 세트를 두 번 다시 방문했습니다. 무엇을 말할 수 있습니까? 나는 대단하고 가지고 놀 수있는 재미있는 작은 데이터 세트입니다. 먼저, 이 게시물을 작성하는 과정에서 이 코드를 필요 이상으로 훨씬 더 복잡하게 만들었다는 사실을 깨달았습니다. 전체 색칠 작업은 단일 작업을 사용하여 수행할 수 있습니다. 각 행에 대해() 고리. 목록을 만들고 목록을 변환하여 새 열을 만들지 않고도 JMP가 필요로 하는 좌표 집합을 가져옴으로써 코딩을 단순화할 수도 있습니다.
Names Default To Here( 1 );
dt = Current Data Table();
dt << Clear Select;
For Each Row(
// get RGB values
r = Column( "R" )[Row()];
g = Column( "G" )[Row()];
b = Column( "B" )[Row()];
rowVal = {r, g, b};
// create a scaled set of colors
rowValS = rowVal/255;
// color the "sample" column cell with the sample color
:Color Name << Color Cells( RGB Color( rowValS ), Row() );
// apply a row state to each row
dt << Select Rows( Row() );
dt << Colors( RGB Color( rowValS ) );
dt << Clear Select;
);
다음으로 저는 Jim의 원래 데이터 세트의 삼항 플롯이 정말 마음에 들었습니다(정확도 문제는 제쳐두고). RGB 공간의 모든 조합을 매핑하는 공간 채우기 예제를 생성하면 어떤 일이 일어날지 생각하게 되었습니다. 내가 생각한 스크립트는 상당히 복잡합니다. File Exchange에 다음과 같이 업로드했습니다. RGB 색 공간 매핑 보고 싶다면. 그럼에도 불구하고… 그것이 생성하는 삼항 플롯은 꽤 인상적입니다. 돌이켜보면 이 게시물의 제목을 "Dark Side of the Moon"이라고 했어야 했는지도 모릅니다.
This is what happened when I generated a space-filling example that mapped out all the combinations in the RGB space.This is what happened when I generated a space-filling example that mapped out all the combinations in the RGB space.This is what happened when I generated a space-filling example that mapped out all the combinations in the RGB space.This is what happened when I generated a space-filling example that mapped out all the combinations in the RGB space.이것은 RGB 공간의 모든 조합을 매핑하는 공간 채우기 예제를 생성했을 때 일어난 일입니다. 편집자 주: 읽어봤어? 엔지니어링 우편 가방 시리즈의 첫 번째 작품 ? Mike가 사용 중이던 사용자를 어떻게 돕는지 확인하세요. JMP 제설 서비스 가입 여부를 결정합니다.
저자의 메모
이 글을 다시 읽으시는 분들은 제정신이 아닙니다. 제목이 약간 변경되었습니다.Google 검색 엔진에서 더 쉽게 찾을 수 있도록 제목을 업데이트해 달라는 요청을 받았습니다.일부 검색 엔진이 유머 감각이 없는 19세기 참고 문헌 사서의 현대 화신이기 때문이라고 추측할 수 있습니다.불편을 드려 죄송합니다.-중