버블 플롯 '레벨 교차'오류<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요,
나는 애니메이션 버블 플롯을 만들려고 노력 중이며 몇 가지 문제가 있습니다.
각 행에는 '상태', '단계', '시간'및 'ID'가 있습니다. ID는 일련의 행에 대해 고유합니다 (단계 1에서 10까지, 상태가 다양 함).
내 데이터 행에는 '시간'변수가 있습니다. 일부 ID는 다른 ID와 다른 시간을가집니다. 어떤 경우에는 시간이 겹치기도합니다. 하나의 'ID'에는 동일한 '시간'을 갖는 '단계'또는 '상태'가 여러 개 있습니다.
시간 칸을 더 큰 간격으로 빈 칸에 넣으면 버블 플롯이 시작되고 작동하지만 빈을 충분히 크게 만드는 경우에만 작동합니다. 그러나 다음과 같은 오류가 로그에 표시됩니다.
ID 열 'singleID'는 범주 축 열 '단계'로 레벨을 교차합니다. ID를 '단계'로 변경 하시겠습니까?
ID 열 'singleID'는 범주 축 열 '상태'로 수준을 교차합니다. ID를 '주'로 변경 하시겠습니까?
여러 간격으로 빈 시간을 입력하지 않으면 버블 플롯이 완전히 시작되지 않고 JMP에서 ID를 다른 열로 바꾸라는 메시지를 표시합니다. 거절하면 버블 플롯이 시작되지 않고 다음과 같은 오류가 표시됩니다.
ID 열 'singleID'는 범주 축 열 '단계'로 레벨을 교차합니다. ID를 '단계'로 변경 하시겠습니까?
ID 열 'singleID'는 범주 축 열 '상태'로 수준을 교차합니다. ID를 '주'로 변경 하시겠습니까?
DisplayBox []
"버블 플롯 (Bubble Plot)", 버블 플롯 (Bubble Plot)의 액세스 또는 평가에 충분한 메모리를 할당 할 수 없습니다.
시작 대화 상자,
X (: 단계),
Y (: 주),
시간 (: binTimeCentred),
착색 (: 정지 조건),
ID (: singleID)
)
예를 포함하지 않은 것에 대한 사과, 온라인에 게시 할 수있는 예를 준비하는 데는 시간이 걸릴 것입니다. 따라서 누군가가 설명만으로이 문제를 해결하는 방법에 대한 생각을 갖고 있다면 바랬습니다.
베스트,
다시 : 버블 플롯 '십자가 수준'오류전환을 시각화하는 재미있는 방법 Dan. 또한 각 체인의 마지막 상태를 X 축에 두는 것도 효과적입니다. 다른 분석들로부터 나는 어떤 국가들이 결코 특정 종국으로 인도하지 않을 것이라고 (또는 항상 유도 할 것임) 알아 냈다. 이와 같은 시각화는 실제로 다른 플랫폼으로 선택 항목을 전송하는 것과 함께 훌륭하게 작동합니다.
나는 관찰 된 모든 사슬을 한 번에 시각화하는 방법을 실험 해왔다. 행의 상태와 그 체인 (: statepath)에있는 이전의 모든 상태를 포함하는 예제 데이터 집합에 열을 포함 시켰고 행의 상태에 따라 색상을 지정하고 행 라벨을 지정했습니다. 이 정보는 모든 가능한 체인의 트리 구조와 유사한 것을 만드는 데 사용될 수 있습니다. 누적 막대 그래프를 사용하여이 정보를 표시합니다. 각 단계는 막대이며, 막대의 각 세그먼트는 트리의 '분기'에 있습니다. 왼쪽에서 오른쪽으로 그래프를 읽을 수 있습니다. 한 단계에서 막대의 각 세그먼트는 다음 막대에서 여러 세그먼트가되도록 분할됩니다 (: 단계). 상단 x 축에서 '보기의 레벨'수를 변경하면 그래프를 살펴볼 수 있습니다.
피드백을 언제든지 제공하십시오.

그래프 빌더 (
크기 ( 1142 , 591 ) ,
제어판 표시 ( 0 ) ,
전설보기 ( 0 ) ,
변수 ( 와이 ( : 키 ) , 그룹 X ( : 단계 ) , 위에 까는 것 ( : 상태 경로 ) ) ,
집단 (
바 (
와이 ,
전설 ( 5 ) ,
바 스타일 ( "스택 된" ) ,
요약 통계 ( "엔" ) ,
상표 ( "행 레이블" )
)
)) ;
다시 : 버블 플롯 '십자가 수준'오류데이터를 요약하는 흥미로운 방법은 "이전 상태"열을 추가하는 것입니다.
데이터 표 ( "버블 플롯 테스트 데이터" ) << 새 열 ( "PrevState" ,
데이터 형식 ( 캐릭터 ) ,
공식 ( 왼쪽 ( 권리 ( : 상태 경로 , 4 ) , 2 ) ) ,
속성 설정 ( 값 레이블 , Arg ( : 상태 << 속성 가져 오기 ( 값 레이블 ) , 1 ) ) ,
속성 설정 ( 가치 주문 , : 상태 << 속성 가져 오기 ( 가치 주문 ) )
) ;
이 열을 추가하면 그래프 작성기 히트 맵에 각 전환의 빈도가 표시됩니다.
그래프 빌더 (
제어판 표시 ( 0 ) ,
변수 ( 엑스 ( : 이전 상태 ) , 와이 ( : 상태 ) ) ,
집단 ( 히트 맵 ( 엑스 , 와이 , 전설 ( 삼 ) ) ) ,
로컬 데이터 필터 (
위치 ( { 642 , 61 } ) ,
방법 ( 고르다 ( 0 ) , 보여 주다 ( 1 ) , 포함 ( 1 ) ) ,
필터 추가 (
기둥 ( : 상태 ) ,
어디에 ( : 상태 == { "01" , "02" , "03" , "10" , "11" , "12" , "20" , "21" , "22" , "30" } ) ,
디스플레이 ( : 상태 , 크기 ( 204 , 174 ) , 목록 표시 )
)
)
) ;
로컬 데이터 필터를 사용하여 전환을 "00"(누락) 상태로 제외했습니다. 셀 위로 일시 중지하면 마우스 오버 툴팁에 일치하는 전환 수가 표시됩니다.

이보기는 다른 플랫폼과 함께 사용되어 특정 전환을 선택하고 강조 표시 할 수 있습니다.
다시 : 버블 플롯 '십자가 수준'오류댄 당신이 정교한 대답 주셔서 감사합니다. 당신의 대안적인 접근 방식은 흥미 롭고 빈 시간과 관련하여 메모리 사용에 대한 설명은 매우 유용합니다. 비닝은 일부 상황의 시각화를 잃지 만이 상황에서 해결 방법이라는 것을 알고있는 것이 좋습니다.
감사!
다시 : 버블 플롯 '십자가 수준'오류안녕하세요 gv,
데이터 및 샘플 스크립트를 이용해 주셔서 감사합니다.보고있는 사례를 확인하는 것이 좋습니다. 문제 :
- 메모리 - 애니메이션을 수행하기 위해 Bubble Plot은 각각의 고유 한 시간에 각 버블의 위치를 저장합니다. 250k 행에서 누락되지 않은 시간 값은 83k이고 5k 이상은 고유합니다. 각 버블은 10 단계 동안 만 지속되기 때문에 5k 시간 값은 상당히 많은 메모리가 필요합니다 (내 컴퓨터의 경우 7.7GB, binned 예제의 경우 1.5GB).
- 비닝은 위의 조건을 준다면 완전한 의미를가집니다. ID를 통해 어떤 집계도 수행되지 않으므로 거품을 잃지는 않지만 빈 크기 내에서 매우 빠르게 발생하는 일부 상태 전이를 볼 수있는 능력을 잃게됩니다.
- 대화 형 사용을 위해 "십자가 수준"대화 상자를 피할 방법이 없지만 스크립트에서 실행할 때 메시지는 중단없이 로그에 간단히 기록됩니다.
시간 애니메이션이 그다지 중요하지 않은 경우 다른 플랫폼이 도움이 될 수 있습니다. 이 예제는 오버레이 역할이있는 Graph Builder Line 요소를 사용하여 모든 전환을 한 번에 표시합니다.
그래프 빌더 (
제어판 표시 ( 0 ) ,
변수 ( 엑스 ( : 단계 ) , 와이 ( : 상태 ) , 위에 까는 것 ( : 고유 ID ) ) ,
집단 (
선 ( 엑스 , 와이 , 전설 ( 삼 ) , 행 순서 ( 0 ) , 요약 통계 ( "평균" ) )
) ,
) ;

이 그래프 내에서 선의 일부를 드래그하여 선택하면 동일한 ID를 가진 모든 행이 선택됩니다.
단일 행에 모든 상태 전이를 포함하도록 데이터를 다시 만들면 :
데이터 표 ( "버블 플롯 테스트 데이터" ) << 스플릿 (
분할 기준 ( : 단계 ) ,
스플릿 ( : 상태 ) ,
그룹 ( : 고유 ID )
)
Parallel Plot 플랫폼을 사용하여 비슷한보기를 볼 수 있습니다. 이 플랫폼에서> Customize를 마우스 오른쪽 버튼으로 클릭하여 Polyline 투명도를 0.01와 같은 값으로 설정할 수 있습니다. 이렇게하면보다 일반적인 전환이 어두워지고 덜 일반적인 전환이 퇴색되는 음영 처리가됩니다. 모든 선에서 세그먼트를 선택하면 강조 표시된 선이 그려집니다.

평행 한 그림 (
균일하게 크기를 조정하십시오. ( 0 ) ,
중심점 ( 0 ) ,
와이 (
: 이름 ( "1" ) ,
: 이름 ( "2" ) ,
: 이름 ( "삼" ) ,
: 이름 ( "4" ) ,
: 이름 ( "5" ) ,
: 이름 ( "6" ) ,
: 이름 ( "7" ) ,
: 이름 ( "8" ),
: 이름 ( "9" ) ,
: 이름 ( "10" )
) ,
SendToReport (
급파 (
{} ,
"평행선" ,
FrameBox ,
{ 프레임 크기 ( 633 , 420 ) , DispatchSeg (
PolylineSeg ( 1 ) ,
{ 투명도 ( 0.01 }}
}}
)
)
) ;
이 아이디어가 도움이되기를 바랍니다.
-단
다시 : 버블 플롯 '십자가 수준'오류하이 댄,
회신과 설명에 감사드립니다. 각각의 id (: uniqueID)에 대해 여러 행이 있지만 이러한 값은 서로 다른 X 축 값 (: Step)과 시간 값 (: starttimestate 또는 (: binTimeCentred))에 모두 해당합니다. ID의 요점이 다른 매개 변수를 가로 지르는 한 거품을 따라가는 것이기 때문에 이것이 왜 문제로 여겨지는지 모르겠다. 하지만 아마도 나는 뭔가를 놓치고 있습니다. 일부 데이터가 포함되었습니다. 나는 32 비트 버전 (11.1.1)을 사용하는 방법에 묶여있다. 그래서 아마도 메모리 문제에도 도움이되지 않을 것이다.
내 데이터는 시뮬레이션 (: Key)의 복제 중에 발생하는 상태 (: 상태)의 '체인'(시퀀스)을 설명하고, 여러 체인이 키에 대해 존재할 수 있습니다. 상태는 여러 단계 (: 단계)로 체인을 호출합니다. 체인의 각 새 단계는 선행 상태와 다른 상태이며 한 번에 발생합니다 (: StartTimestate). 이렇게하면 약 255 가지의 단계 조합 (: ID)이 만들어집니다. 그러나 총 약 25000 개의 체인이 관찰됩니다 (: uniqueID). 각 체인에는 항상 10 단계가 있지만 데이터가 누락 될 수 있습니다.
내가 성취하고자하는 것은 체인이 '상태'와 '시간'차원에서 어떻게 행동하는지 시각화하는 것입니다. 각 체인 (: UniqueID)의 거품이 시간이 지남에 따라 단계 (x 축)를 통해 이동하고 상태 (y 축)가 어떻게 바뀌는지를 보여 드리고자합니다. 결과는 거품이 항상 왼쪽에서 오른쪽 (: 단계)으로 이동하지만 다르게 움직이는 거품 차트 (: 상태)입니다. 이 방법은 다소 큰 다차원 데이터 세트의 패턴을 시각화하는 재미있는 방법이라고 생각합니다. 스크립트가 사용자 인터페이스에서 사용될 것이므로 경고가 나타나지 않을 것입니다. : starttimestate 변수를 사용하면 시간이 길어 지지만 '메모리'오류가 발생합니다. 이상하게도 (오히려 큰) 시간 간격 (: binttimecentred)을 사용하면 작동하지 않는다. ID 번호를 변경하지 않기 때문에 나는 이상하게 말한다.
모든 생각을 환영합니다, 또한 '십자가 수준'오류를 억제하는 방법
다시 한 번 감사드립니다!
스크립트:
데이터 테이블 ( "버블 플롯 테스트 데이터") << 버블 플롯 (
X (: 단계),
Y (: 주),
시간 (: binTimeCentred),
착색 (: 정지 조건),
ID (: 고유 ID),
버블 크기 (15.24),
시간 지수 (2.5),
동양 모양 (1),
레이블 ( "없음"),
트레일 라인 ( "Selected"),
모양 설정 ( "삼각형"),
직책 (8, 5.11),
SendToReport (
급파(
{},
"1",
ScaleBox,
{Min (-0.5), Max (9.5), Inc (1), Minor Ticks (0)}
),
급파(
{},
"2",
ScaleBox,
{Min (-0.5), Max (10.5), Inc (1), Minor Ticks (0)}
)
)
);
다시 : 버블 플롯 '십자가 수준'오류안녕하세요 gv,
'Crosses levels'오류는 많은 경우에 고객이 예상 한 것이 아니기 때문에 경고 일뿐입니다.
범주 형 축이 있고 동일한 ID를 가진 두 행이 축의 다른 값에 매핑되면 질문은 거품을 넣을 위치입니다. 변수를 변경하는 것을 거부해도 여전히 작동해야하지만 그래프에서 값을 읽는 것이 더 어렵습니다. X = "노스 캐롤라이나"의 거품이 실제로 노스 캐롤라이나의 관측을 나타내거나 거품이 X = "버지니아"및 X = "사우스 캐롤라이나"의 두 거품의 집합을 나타내는 지 여부는 분명하지 않을 수 있습니다. "평균"은 단순히 범주 형 열의 값 순서를 기반으로하므로 모든 조합이 가능합니다.
나는 당신의 기억 문제가 (ID 수) x (횟수)와 관련이 있다고 생각합니다. 작은 하위 집합에 대해서만 데이터가있는 많은 ID가있는 경우 저장소 요구량이 예상보다 클 수 있습니다. 데이터의 특성에 대해 데이터 집합을 공유하거나 의견을 제시 할 수 있다면 문제가 있음을 확인할 수 있습니다.
-단
다시 : 버블 플롯 '십자가 수준'오류여보세요,
나는 여전히 당신이 가진 제안에 관심이있을 것이다. 어쩌면, JMP 프로 중 하나는 'Crosses levels'오류의 중요성에 대해 언급 할 수 있습니다. 사용 가능한 문서에서 언급되지 않았기 때문입니다. 또한 버블 플롯에서 사용할 수있는 데이터의 양이 제한되어있는 것처럼 보입니다. 충분한 메모리를 할당 할 수 없거나 입력 데이터에 오류가 생길 수 있기 때문입니다. 불행히도 거품 플롯 예제에 사용 된 샘플 데이터로 오류를 재현 할 수 없습니다. 동적 버블 플롯의 예 ).
베스트,