Bubble Plot'越過水平'錯誤<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />嗨,
我正在嘗試創建一個動畫氣泡圖,我遇到了一些問題。
在每一行中,我都有一個'state','step','time'和'id'。該ID對於一組行是唯一的(步驟1到10,具有不同的狀態)。
我的數據行有一個變量'time',即。某些ID的時間與其他ID不同。在某些情況下,時間也會重疊,即。一個'ID'具有多個具有相同時間的'步驟'或'狀態'。
當我將時間列分成若干個較大的間隔時,氣泡圖開始並起作用,但只有在我使分檔足夠大的情況下。但是,日誌中顯示以下錯誤:
ID列'singleID'與分類軸列'Step'交叉。將ID更改為“步驟”?
ID列'singleID'與分類軸列'State'交叉。將ID更改為“州”?
當我沒有按時間間隔時間時,氣泡圖完全無法啟動,JMP會提示我將ID替換為其他列。當我拒絕時,氣泡圖未啟動,並顯示以下錯誤:
ID列'singleID'與分類軸列'Step'交叉。將ID更改為“步驟”?
ID列'singleID'與分類軸列'State'交叉。將ID更改為“州”?
顯示框[]
無法在訪問或評估'Bubble Plot',Bubble Plot(
啟動對話框,
X(:步驟),
Y(:州),
時間(:binTimeCentred),
著色(:停止條件),
ID(:singleID)
)
我為不包括一個例子道歉,準備一個我可以在線發布的例子需要一些時間。因此,我希望是否有人對如何根據描述單獨解決這個問題有一些想法。
最好,
Re:Bubble Plot'越過水平'錯誤有趣的方式可視化過渡丹。將每個鏈的最後狀態放在x軸上也很有用。從其他分析中我發現,某些州永遠不會領導(或將永遠領先)到某個最終狀態。像這樣的可視化確實與將選擇轉移到其他平台相結合。
我一直在嘗試一次可視化所有觀察鏈的方法。我在示例數據集中包含了一個列,其中包含行的狀態和其鏈中的所有前面的狀態(:statepath),我還根據行的狀態分配了顏色,並且::行狀態標記。此信息可用於創建類似於所有可能鏈的樹結構的內容。我使用堆積條形圖來顯示此信息。每個:步驟是一個條形,條形的每個部分a:狀態在樹的“分支”中。您可以從左到右閱讀圖表。一步中的每個條形段在下一個條形區域中分割成多個區段(:步驟)。通過更改頂部x軸上的“視圖中的級別”數量,您可以瀏覽圖形。
隨意提供反饋。

圖形生成器 (
尺寸 ( 1142 , 591 ) ,
顯示控制面板 ( 0 ) ,
顯示傳奇 ( 0 ) ,
變量 ( ÿ ( : 鍵 ) , X組 ( : 步 ) ,覆蓋 ( : statepath ) ) ,
分子 (
酒吧 (
ÿ ,
傳說 ( 五 ) ,
酒吧風格 ( “堆疊” ) ,
摘要統計 ( “N” ) ,
標籤 ( “行標籤” )
)
)) ;
Re:Bubble Plot'越過水平'錯誤總結數據的一種有趣方式是添加“先前狀態”列:
數據表 ( “泡沫圖測試數據” ) << 新欄目 ( “PrevState” ,
數據類型 ( 字符 ) ,
式 ( 剩下 ( 對 ( : statepath , 4 ) , 2 ) ) ,
設置屬性 ( 價值標籤 ,精氨酸 ( : 州 << 獲得財產 ( 價值標籤 ) , 1 ) ) ,
設置屬性 ( 價值訂購 , : 州 << 獲得財產 ( 價值訂購 ) )
) ;
使用此添加的列,Graph Builder熱圖將顯示每個轉換的頻率:
圖形生成器 (
顯示控制面板 ( 0 ) ,
變量 ( X ( : PrevState ) , ÿ ( : 州 ) ) ,
分子 ( 熱圖 ( X , ÿ ,傳說 ( 3 ) ) ) ,
本地數據過濾器 (
地點 ( { 642 , 61 } ) ,
模式 ( 選擇 ( 0 ) ,節目 ( 1 ) ,包括 ( 1 ) ) ,
添加過濾器 (
列 ( : 州 ) ,
哪裡 ( : 州 == { “01” , “02” , “03” , “10” , “11” , “12” , “20” , “21” , “22” , “30” } ) ,
顯示 ( : 州 ,尺寸 ( 204 , 174 ) ,列表顯示 )
)
)
) ;
我使用本地數據過濾器將轉換排除到“00”(丟失)狀態。 當您在單元格上暫停時,懸停工具提示將顯示匹配轉換的計數:

此視圖可與其他平台結合使用,以選擇和突出顯示某些過渡。
Re:Bubble Plot'越過水平'錯誤謝謝丹為你詳細解答。您的替代方法很有趣,並且您對內存使用與分箱時間相關的解釋非常有用。很高興知道binning在這種情況下是一種解決方案,儘管它確實意味著失去一些轉換的可視化。
謝謝!
Re:Bubble Plot'越過水平'錯誤嗨gv,
感謝您提供數據和示例腳本 - 查看您正在查看的案例非常有幫助。 在問題上:
- 記憶 - 為了製作動畫,Bubble Plot將在每個獨特的時間存儲每個氣泡的位置。 在你的250k行中,我看到了83k個非缺失時間值,其中超過5k是唯一的。 由於每個氣泡僅持續10個步驟,因此5k時間值需要相當多的內存(在我的機器上為7.7GB,而在分類示例中為1.5GB)。
- 鑑於上述情況,分箱完全有意義。 不會在ID之間進行聚合,因此您不會丟失任何氣泡,但是您將失去在塊大小內看到一些非常快速發生的狀態轉換的能力。
- 沒有辦法避免交叉使用的“交叉級別”對話框,但是當從腳本運行時,消息將被簡單地寫入日誌,而不會中斷。
如果時間動畫不那麼重要,其他平台可能會有所幫助。 此示例使用具有Overlay角色的Graph Builder Line元素一次顯示所有轉換:
圖形生成器 (
顯示控制面板 ( 0 ) ,
變量 ( X ( : 步 ) , ÿ ( : 州 ) ,覆蓋 ( : 唯一身份 ) ) ,
分子 (
線 ( X , ÿ ,傳說 ( 3 ) ,行順序 ( 0 ) ,摘要統計 ( “意思” ) )
) ,
) ;

在此圖表中,如果您拖動選擇一行的任何部分,它將選擇具有相同ID的所有行。
如果您將數據整形為包含單行中的所有狀態轉換:
數據表 ( “泡沫圖測試數據” ) << 分裂 (
拆分 ( : 步 ) ,
分裂 ( : 州 ) ,
組 ( : 唯一身份 )
)
然後你可以使用Parallel Plot平台來查看類似的視圖。 在此平台中,您可以右鍵單擊>自定義以將折線透明度設置為0.01。 這將為您提供陰影視圖,其中更常見的過渡更暗,並且不常見的過渡變淡。 如果您在任何行中選擇一個細分,它將突出顯示:

平行圖 (
統一規模 ( 0 ) ,
中心為零 ( 0 ) ,
ÿ (
: 名稱 ( “1” ) ,
: 名稱 ( “2” ) ,
: 名稱 ( “3” ) ,
: 名稱 ( “4” ) ,
: 名稱 ( “5” ) ,
: 名稱 ( “6” ) ,
: 名稱 ( “7” ) ,
: 名稱 ( “8” )
: 名稱 ( “9” ) ,
: 名稱 ( “10” )
) ,
SendToReport (
調度 (
{} ,
“平行坐標” ,
FrameBox ,
{ 幀大小 ( 633 , 420 ) , DispatchSeg (
PolylineSeg ( 1 ) ,
{ 透明度 ( 0.01 )}
)}
)
)
) ;
我希望這些想法很有幫助!
-擔
Re:Bubble Plot'越過水平'錯誤嗨丹,
感謝您的回復和解釋。我為每個id(:uniqueID)確實有多行,但這些行對應於不同的X軸值(:Step)和時間值(:starttimestate或(:binTimeCentred)。我很遺憾為什麼這會被認為是一個問題,因為ID的要點是跟隨其他參數的一個氣泡吧?但也許我錯過了一些東西。我已經包含了一些數據。順便說一下,我使用的是32位版本(11.1.1),因此可能也不會對內存問題有所幫助。
我的數據描述了在復制模擬(:Key)期間發生的狀態(:State)的“鏈”(序列),一個:key可以存在多個鏈。各州在許多步驟(步驟)中相互跟隨,稱之為鏈條。鏈中的每個新步驟都是與前一狀態不同的狀態,並且發生在某個時刻(:StartTimestate)。這創建了大約255種不同的步驟組合(:ID)。但是,總共觀察到大約25000個鏈(:uniqueID)。每個鏈總是有10個步驟但數據可能會丟失。
我想要實現的是可視化鏈條在“狀態”和“時間”維度中的行為。我想展示每個鏈的氣泡(:UniqueID)如何隨著時間的推移移動其步驟(x軸),以及它的狀態(y軸)如何變化。因此,結果將是氣泡圖,其中氣泡總是從左向右移動(:步驟),但行為上下移動(:狀態)。我相信這將是一個有趣的方式來在一個相當大的多維數據集中可視化模式,該腳本將在用戶界面中使用,所以我寧願不會彈出警告。當使用:starttimestate變量時,時間會很長,但這會觸發“內存”錯誤。扼殺使用(相當大的)時間間隔(:binttimecentred)確實有效,我說扼殺因為這不會改變ID的數量。
歡迎任何想法,也歡迎如何抑制“十字架水平”錯誤
再次感謝!
腳本:
數據表(“氣泡圖測試數據”)<<氣泡圖(
X(:步驟),
Y(:州),
時間(:binTimeCentred),
著色(:停止條件),
ID(:UniqueID),
氣泡大小(15.24),
時間指數(2.5),
Orient Shapes(1),
標籤(“無”),
Trail Lines(“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)}
)
)
);
Re:Bubble Plot'越過水平'錯誤嗨gv,
“十字架級別”錯誤只是一個警告,因為在許多情況下,它不是客戶所期望的。
當您有一個分類軸,並且兩個具有相同ID的行映射到軸上的不同值時,問題是放置氣泡的位置。如果您拒絕更改變量,它仍然可以工作,但從圖表中讀取值更加困難。 可能尚不清楚X =“北卡羅萊納州”上的氣泡是否真的代表來自北卡羅來納州的觀測結果,或者氣泡是否代表兩個氣泡的集合,其中X =“弗吉尼亞”和X =“南卡羅來納州”。 “平均”僅基於分類列的值順序,因此任何組合都是可能的。
我相信你的記憶問題與(身份證號碼)x(次數)有關。 如果您有許多ID僅包含一小部分時間的數據,則存儲需求可能會大於預期。 如果您可以共享數據集或進一步評論數據的特徵,我們可以確認這是問題所在。
-擔
Re:Bubble Plot'越過水平'錯誤你好,
我仍然會對您可能提出的任何建議感興趣。也許,其中一個JMP專家可以評論“十字架級別”錯誤的重要性,因為在任何可用的文檔中都沒有提到它。它們似乎也是可以在氣泡圖中使用的數據量的限制,因為我還收到“無法分配足夠的內存”,或者這可能是由於輸入數據中的某種錯誤引起的?遺憾的是,我無法使用氣泡圖示例中使用的樣本數據重現錯誤: 動態氣泡圖的示例 )。
最好,