大家好,我是John Powell,JMP團隊的軟體開發經理。今天我要講的是JMP如何進入一個全新的維度。我指的不是增加變量,我們早就透過氣泡圖、散點圖矩陣和多維分析器實現了這一點。接下來我就直接進入正題。
不過,我今天要談的是這第三維度。我的意思是,我們現在使用的技術不再局限於二維物體,而是繪製三維影像。關鍵在於如何讓物件在平面螢幕上呈現出三維效果。
要在平面螢幕上實現深度感知,基本上就是模仿人們在現實世界中感知事物的方式。例如,你看一張紙,它只是紙上的平面圖像。但在房間裡,你面對的是立體空間,有前後左右四個方向。如果你觀察房間裡的物體,你會發現它們會根據光線照射的位置呈現不同的陰影。這就是讓人誤以為平面螢幕上的物體是三維立體的一種方法。
還有一點,就是當你觀察近處的物體時,它們看起來比遠處的物體大得多。這是我們在平面螢幕上營造三維效果的一種方法。這種遮擋,簡單來說就是讓一個物體離你更近,它會遮擋住它後面的物體。我們會運用所有這些技巧,以及更多其他技術,讓你在我們的3D圖表中看到一個真實的3D物件。
我主要要講的是JMP中的3D散佈圖平台。這裡有一個JMP中的範例。它以鳶尾花為例,展示了鳶尾花的大致外觀。圖中顯示了三種不同的鳶尾花,它們以不同的顏色表示。這些資訊都編碼在資料表中。
我這裡底部顯示的是萼片寬度和萼片長度。垂直方向顯示的是花瓣長度。你可以看到所有這些球體在三維空間中的樣子。它們看起來有點扁平。一旦你開始移動它們,你會發現它們實際上是三維的。在JMP中如何實現這一點呢?
你進入圖形選單,找到“散點圖 3D”,然後會彈出一個類似這樣的對話框。基本上,你只需要輸入三個 y 列。這些就是我在這個例子中使用的列。然後點選「確定」。如果你發布 JMP Live,它看起來會是一樣的。我們的目標是讓它在 JMP 中看起來一樣,並且具有互動性。我無法在幻燈片上演示,但我稍後會演示。讓我先回到正題,說說什麼是散點圖 3D?它有什麼用途?
它非常適合演示那些具有真實世界概念的數據,例如前後左右上下,以及深度資訊。並非所有數據都如此。你也會遇到抽象資料。用三維方式查看這些數據會很有幫助。在三維空間中,你可以發現那些在與任何座標軸對齊的平面上都無法看到的模式。
舉個例子。你可以看到,當你沿著 x 軸直視時,你實際上看不到任何圖案,但如果你旋轉圖像,從右圖的這個特定角度觀察,你會發現它們大致排列在一個與任何軸都不對齊的平面上。
在 3D 視圖中,你很容易發現另一個特點:當你旋轉視角時,你會注意到一些在正面觀察時可能看不到的聚集區域。它還有什麼其他用途呢?例如,如果你要比較多個 2D 圖,而且這些圖可能跨越不同的時間點,那麼 3D 視圖就非常有用。
如果你看左側底部的座標軸,它代表時間。你可以看到從後向前隨時間變化的 3D 圖。這些圖可能代表的不是時間,而是不同的生產地點,你可以用 2D 圖來分析這些地點的狀況。
這裡還有另一個例子,假設你在一個二維網格上有很多測量值,其中 X 和 Y 軸代表網格,而測量值就是你在這個網格上進行的測量。你可以看到右側的圖表。有很多點的測量值很高,而其餘的點則很低。當你觀察三維影像時,就能看到這種現象。
問題是,為什麼現在才推出?為什麼我們花了這麼長時間才在網頁上實現這個功能?我這就來詳細解釋。為什麼我們等到現在才支持它?說來話長,我先提醒您,接下來會是一句很長的句子。我們一直以來的做法是優先支援大多數用戶經常使用的功能。我們希望儘早為您提供盡可能多的功能。
散佈圖 3D 是 JMP 中少數並非所有使用者都常用,而是專門服務特定使用者群體的功能之一。為了在公司內部推廣統計文化,JMP Live 需要支援能夠吸引多元化員工群體的互動式報表,這些員工不僅包括工程科學家,還包括行銷、財務等部門的人員。
部分 JMP Live 使用者對視覺化的需求可能與科學和工程部門有所不同。我們已經支援大多數用戶常用的大部分功能。此外,我們也新增了對 3D 散佈圖以及其他一些使用者偶爾會使用的功能,例如直方圖中的多重回應資料和局部資料篩選器。
統計製程管制包括製程篩選、控製圖警告分類和環境監測。我們新增了許多分析器,尤其是在可靠性平台方面。紅色三角形選單僅在 JMP Live 中可用,旨在讓 JMP Live 用戶更好地控制他們正在查看的內容。
此外,它還支援圖表和工具提示(在 JMP 中通常稱為「圖形小部件」)、用於文字處理的詞雲以及圓餅圖。餅圖人人都愛,統計學家未必喜歡,但在商業領域卻非常流行。使用 JMP Live,您可以與公司裡的每個人分享這些圖表。有些人喜歡餅圖,還有許多其他改進,這裡我就不一一贅述了。
我想說的是,這並不是我們在這個版本中做的唯一改變。還有很多其他改動,現在也是時候去做這些改動了,因為JMP Live擁有更多元化的受眾群體,我們也希望吸引他們。
隨著新版本的發布,請關注所有功能的影片、部落格和現場演示,並親自體驗。以上就是關於散點圖 3D 的簡短介紹,現在我們繼續。
我想確保您了解這個散點圖 3D 平台的所有功能。它不僅僅是可視化三個或更多變數那麼簡單,它包含許多功能,並且分佈在多個使用者介面中。我將深入講解這些功能,首先介紹您可以自訂和控制散佈圖 3D 的不同方法,因為它在多個地方以及 JMP 的使用者介面中都有提供。
我們先從啟動對話框開始,我之前已經展示過,但當時沒有詳細講解。除了三維空間中的三個 Y 軸列之外,你還可以添加權重來控制這些球體的大小、頻率和顏色。我之前展示的顏色來自表格。它也可以來自變量,例如,如果我輸入物種,而表格中沒有根據物種進行著色,那麼它就會根據物種進行著色。你甚至可以輸入一個連續變量,它會根據該變數進行著色。
接下來當然是紅色三角形選單選項,JMP 的 3D 散佈圖平台提供了豐富的選項。例如,您可以從圖中的點垂下線條,連接圖中的點,在圖中的聚類周圍顯示常態分佈輪廓橢球,以及繪製非等值線密度輪廓和主成分分析。還有一些其他功能,但我不會一一介紹。
接下來是右鍵選單。當您查看 3D 圖表時,右鍵單擊就會彈出此功能表。如果您設定了顏色角色,則可以選擇是否顯示圖例。然後是重置按鈕,用於重置設定。接下來我會向您展示設定對話框。高亮邊框。如果您設定了光源等效果,則可以設定邊框。此外,還可以設定牆壁和背景顏色,使圖表看起來更美觀,或根據需要使數據更加突出。
最後,JMP 中還有一個硬體加速選項,預設是關閉的。如果啟用它,效能將會提升。接下來還有幾個其他功能,您可以自己嘗試。您剛才看到的是設定選項。可以按住 Control 鍵點擊選單或右鍵選單進行設定。介面如下所示。
它可以讓你啟用或停用牆壁、座標軸、網格和框線。框線就是一個框,就是圍繞著所有圖形區域繪製的那條細線框。在 3D 環境中,你需要相機控制功能,因為你需要能夠放大、顯示不同的視角、旋轉等等。這一點也很重要。
現在有了標記,您可以指定標記的許多屬性,例如標記大小、標記品質(決定其繪製方式)以及透明度(允許您透過標記點看到背後的資料)。此外,還有文字大小和線寬。文字大小用於軸標籤,線寬用於您看到的網格線。
我之前提到過,你可以在資料表本身中設定一些內容,例如標記形狀,這裡是三角形標記形狀,還有紅色和綠色。顏色也嵌入在那裡,那個看起來像蒙版的小東西是用來設定可見性的。
這裡還有一些我沒有展示的排除項,但它們可以在數據表中設置,並在 3D 圖表中顯示。可以單獨為每一行啟用標籤。這就是黃色標籤的樣子。它表示當你顯示某個點時,會在其旁邊顯示一個標籤。在本例中,標籤是物種名稱。
當然,你必須能夠旋轉視角。這能讓3D效果看起來更好,也能幫助你更理解畫面內容。我很快就會示範給你看。你必須能夠旋轉視圖,還需要能夠沿坐標軸縮放和平移。如果你想聚焦在某個細節,這些功能就非常有用。
當然,文件選單可讓您匯出為互動式 HTML,以便在網頁上查看互動式 3D 圖表,或發佈到 JMP Live,同樣可以在網頁上查看 3D 圖表。此外,還有許多靜態影像導出選項,但它們對 3D 圖表的幫助不大。
這是我們邁入三維世界的第一步。正如我所說,我們正在進入這個維度。這非常複雜,因為渲染技術完全不同。有鑑於此,我們必須限制散佈圖 3D 的應用範圍,以下是一些需要注意的地方。首先,我們需要設定支援三種不同座標系(三個不同的座標軸)的功能。
這些相機控制功能對於環顧場景和旋轉視角至關重要。在桌面端我們使用滑鼠,而在行動端則使用滑鼠。由於我們支援行動端,您將像在行動裝置上一樣使用滑動和捏合手勢。
在二維圖形中,你幾乎不需要手動裁切視窗邊緣的內容。這會自動完成,因為當你在視窗上繪製時,任何繪製在視窗之外的內容都不會顯示。但在三維圖形中,由於你可以圍繞物體旋轉,位於三維場景之外的內容(我稱之為「場景邊緣裁剪」)需要進行裁剪。否則,當你旋轉物體時,這些超出場景邊緣的內容仍然會顯示出來,這是我們不希望看到的。
我們還得在物體旋轉時隱藏牆壁和網格線,以免它們遮擋資料。這一點非常重要,但實現起來卻很困難。我們需要設定背景、牆壁、座標軸、網格和方框的碰撞可見性,以符合 JMP 的功能。一旦能夠繪製它們,設定可見性和顏色就變得非常簡單,所以我們就完成了。
正如我之前提到的,它們功能多樣,繪製方式也多種多樣。它們的大小、顏色、形狀和透明度都相當複雜。我們支援所有這些僅使用點的選項,但目前還沒有提供在瀏覽器中更改這些選項的方法。
硬體加速。實際上並沒有專門的設定選項,因為在瀏覽器中,如果你的瀏覽器支援三維圖形(現在大多數瀏覽器都支援),那麼它會自動啟用硬體加速,你也不應該關閉它,因為那樣只會降低速度。
現在,很遺憾,JMP Live 目前不支援一些比較重要的功能,但我們希望在未來的 JMP 版本中優先考慮這些功能。這需要收集大家的回饋,了解你們希望看到哪些功能。例如,紅色右三角選單中的「放置線」、「連接點」和「主成分分析」等功能,以及橢球體和等高線等曲面。這些功能目前都不支持,甚至連表格中的行標籤也不支持,因為在點場景中編寫完整的文字有點複雜。
目前不支援坐標軸縮放。如果您在匯出或發佈到 JMP Live 之前已縮放過座標軸或平移過視圖,我們將予以支援。工具提示和選擇功能實際上並未包含在此版本中,但我們預計在維護版本中至少能夠支援工具提示。
如果某個功能不支援會怎樣?這和我們之前不支援某些功能的二維圖表的情況類似。此時,螢幕截圖會取代原有的圖表(在本例中是互動式三維圖表),而 JMP 日誌中會新增一則訊息,指出目前正在使用哪個不支援的功能。您可以利用這則訊息聯絡技術支持,說明您希望支持此功能。日誌中已經記錄了該功能的名稱,方便您提出要求,或者您也可以使用功能願望清單。
我們非常鼓勵您提出這些功能需求。正如我之前所說,我們會根據您的回饋來確定優先順序。這也是我們花了這麼長時間才推出 3D 功能的原因之一。我們收到了大量關於大家常用的 2D 功能的回饋。現在 3D 功能已經上線,我們希望未來能夠推出更多功能。
我想這就是大家期待已久的時刻了。我之前說過會示範一些相關內容,因為如果只看靜態的3D圖表,真的很難理解它到底在講什麼。現在我切換到JMP Live介面。這裡我們已經切換到JMP Live的全螢幕模式了。
為了向您展示三維影像與平面螢幕上三維影像的對比,我們使用等高線圖來表示,左側的資料集代表一個小池塘。我們實際上只是在展示池塘不同位置的深度,紅色代表淺水區,藍色代表深水區。透過等高線圖,您可以大致了解其含義。
靜止不動時,觀察散點圖很難看出深度,但一旦開始旋轉它,尤其是在網頁上…由於視訊錄製的原因,畫面可能會有些卡頓,但當你嘗試旋轉時,畫面就會變得非常流暢。
當你旋轉視角時,甚至可以看到池塘底部的凹凸起伏等等。我認為這比用等高線圖上的顏色來呈現深度感要好得多,當然,我可能有點主觀。這並不是一個很複雜的例子,我只是想向你展示,即使在 3D 場景中,如果你不抖動左邊的點,抖動也是你可能需要做的。例如,你可以看到所有點都排列在女性的平面上,如果我旋轉視角,從男性平面向下看,所有點都會排列在一起,並且相互遮擋。這就是遮擋效應。
如果您希望發布後的效果立竿見影,可以對這些點進行抖動處理,也就是將它們在該平面左右移動。在右側,您可以看到這些點是如何圍繞陰平面和陽平面抖動的,這樣它們就不會互相遮擋——否則在某些角度下它們會互相遮擋,但在正面觀察時則不會。
回到鳶尾花資料集,正如我之前提到的,這裡包含了不同品種的花朵。我想透過這張圖以及我們常用的其他圖表來展示JMP的強大之處,那就是它在圖表選擇上的反射特性。
在這個儀表板的雙變量圖表中,當我進行選擇時,可以看到 3D 視圖中的點被高亮顯示,分別是茶館、夏日藍和夏日綠。這些高亮顯示的點與 2D 視圖中高亮顯示的點相同,也與下方分佈圖中高亮顯示的點相同。同樣地,如果我點擊分佈圖,您也會在 3D 圖表中看到這些高亮顯示的點。
我之前好像提過,你看到的顏色來自數據表,每個物種都有對應的顏色。這個資料集大概有150行,所以你現在看到的就是這麼多。這只是個測試範例,用來展示選擇不同標記形狀時的效果。這裡展示了32種內建的標記形狀。
3D渲染標記形狀的特殊之處在於,旋轉視角時,我們希望它們始終朝向前方。它們總是清晰可見,並且指向上方。例如,我們希望它們始終指向上方。如果您觀察這個向上指向的箭頭,即使我們將其上下旋轉,它相對於觀察者而言仍然指向上方。這在觀察那些標記形狀至關重要的事物時尤其重要。
這是鑽石數據集,我想你們中的許多人可能已經在其他演示中見過它。這是我們的標準樣本之一。我喜歡在這個特定範例中使用它,因為我要展示這裡的標記形狀是根據顏色變數繪製的。
為了準備這個樣本,我需要用到這個資料集。顏色變數以字母 D、E、F 一直到 K 編碼,例如,D 代表一顆明亮潔白的鑽石,K 代表一顆略帶棕色的鑽石。當然,我在這裡誇大了顏色差異,以便您在圖表中更清楚地看到它們之間的差異。您可以看到,在繪製鑽石的 4C(淨度、克拉、重量、切工和顏色)時,這些字母都會出現。顏色和形狀都包含編碼資訊。這裡顯示的是一堆字符,而不是鑽石的形狀、點或圓圈。
這是一個更大的數據集,大約有 29,000 行數據,而且數據量非常大。它記錄了多家航空公司的航班延誤情況,基本上涵蓋了一年中的每一天。數據按星期幾著色。您可以看到,在下方的兩個軸上,我分別繪製了月份和日期。您可以看到所有這些數據點。
製作這樣複雜的圖表的目的之一是為了展示速度。正如我所說,在播放過程中,由於視訊編碼的原因,畫面可能不夠流暢,但在網頁上卻相當流暢,要知道網頁上的播放速度通常比桌面顯示器慢一些。這是因為網頁的3D渲染技術非常強大。
我想放大查看,而網頁標準之一是使用滑鼠滾輪進行放大。我們已經在 3D 散點圖中實現了這個功能,您可以看到這些點是透明的。
我還有另一個關於航班延誤的例子。在這個例子中,點的大小是根據延誤時間這個變數來定的。航班延誤時間越長,或當天的平均延誤時間越長,球體就越大。我之前也給你們展示過球體,但數量沒有這麼多。這裡面有很多球體。當我旋轉它時,畫面非常平滑。
當我放大圖片時,你會看到這些球體有多複雜。它們實際上被分割成了許多細小的三角形,看起來才會光滑平整。此外,它們還施加了我之前提到的光照效果和陰影,使它們看起來像三維物體。如果你不熟悉泰坦尼克號乘客的數據集,這是一個關於當時情況的樣本,講述了船上發生了什麼,以及人們是否倖存。
在這個例子中,我用顏色來表示他們是否倖存。顏色大小是根據他們支付的船票價格來定的。我還調整了背景顏色,這樣你就能看出這或許有助於查看數據。和其他例子一樣,這個例子的數據變化很快。我不記得具體有多少人了,但我相信肯定超過一千。這裡面有很多數據點。
它們都是球體,大小也各不相同。我真正想透過這些並排比較展示的是,我之前說過,如果沿著某個軸縮放或平移,我們會尊重這種縮放效果,而這正是我在右側所做的。這裡我先放大乘客,只顯示一等和二等艙乘客,然後放大年齡變量,只顯示20-50歲左右的乘客,而不是所有年齡層的乘客。
您可以放大該區域,可以看到我之前提到的內容,也就是能夠裁剪場景邊緣的點。我放大一下,讓您看看邊緣的情況。首先,您看不到完全超出資料網格的點,因為它們已被裁剪。有些點正好位於邊緣。如果我再放大一些,您會看到,是的,它們實際上被裁剪穿過了球體,因為該球體正好位於我們目前顯示的資料集的邊緣。這並非易事,但網路技術確實使之成為可能。
回到鑽石資料集。這個例子是為了展示 3D 圖如何回應局部資料篩選器。很多人喜歡這個局部資料篩選器,因為它能幫助你真正了解資料集中包含哪些內容。假設我只想查看 VS2 等級的鑽石。我可以點擊 VS2,這樣資料集中就會只顯示 VS2 等級的鑽石。
我應該說明一下,這裡用球體表示鑽石,因為我用了克拉重量來表示尺寸,顏色則代表價格。顏色越深的綠色代表價格較高的鑽石。我還想展示另一個功能,那就是可以在觀看的同時旋轉螢幕。現在我可以一邊看一邊喝水,解放雙手了。
基本上,即使在它旋轉的時候,你也可以繼續篩選,這樣就能看到篩選結果不斷更新。這裡還有一個價格連續篩選功能。假設我不想花1萬美元買鑽石,我只想看看資料集裡有哪些鑽石。我可以把價格降到4000美元左右。如果我想花1000美元以上,例如2000美元,那麼所有在這個價位的鑽石都有。
當然,既然有了旋轉功能,就更需要能夠停止旋轉。我們還新增了重置視圖或切換到正面視圖的功能。 JMP 工具裡有一些快捷鍵可以實現這些功能,但我們的使用者群體比較廣泛,可能有些人並不熟悉 JMP。所以我把它加到選單中,方便大家更輕鬆地找到這些選項。
剛才我提到了光源,你可以使用彩色光源。我去年十二月做過這個實驗,我們這裡雪不多,但我來自一個雪量很大的地方。如果你用漂亮的燈光,像這裡,左邊是紅燈,右邊是綠燈,下面是藍燈。這就是它在三維空間中的樣子。這三個很大的點看起來就像一個雪人。
這是我在 JMP 用戶社群找到的 Craig Hales 的一個範例。 Craig Hales 是多年前為 JMP 增加 3D 散佈圖功能的開發者。這個範例展示如何使用局部資料過濾器來查看空心結構的內部結構。我認為這是一個非常好的應用案例。
當我更改本地資料過濾器時,您可以看到這裡有一個空心結構。我想再深入探討一下它的原因。您可以看到它的內部結構。另外,如果您想對資料進行切片,也可以使用本機資料篩選器,只需將兩個控制項靠近即可。然後,如果您想仔細檢查它,我們停止旋轉。我可以進入檢查。我可以使用滾輪放大,您可以看到這個結構的外觀。
現在我想用一個例子來結束,我認為這個例子非常能說明3D的優勢。就像我剛才說的,如果你有真實的3D數據,那麼使用3D繪圖就很有意義。這裡就是這種情況。這個例子也是我從JMP用戶社群中了解到的,當時Peter Polito寫了一篇關於名為「well trace add-in」的插件的部落格。
其實就在這則評論裡。我的確有個插件可以實現這個功能。等你拿到這個外掛後,我會把它上傳到 JMP Public 上,讓大家都能用上,到時候你就能看到他部落格的連結了。
他當時在石油鑽井平台上工作,是我們公司的系統工程師。他想透過開發一個插件來展示JMP的這項功能。這個插件可以計算鑽井工具在鑽井後下井的路徑,並檢查是否達到了預期的深度。
我從他的部落格中了解到,這些油井鑽探孔通常不是垂直向下鑽的。這個鑽井孔呈弧形,它位於海床下方。看到這一點並了解這一點,我感到很驚訝。我把背景塗成了我想像中海床底部的樣子,這也讓這些顏色更加突出。
我所做的,是在顏色滾動條上繪製了深度與他們預期深度的差異,以及這些標記或數據採集點的大小差異。如果你放大到大約 2000 的位置,你可以看到那裡有差異。在下方,我估計大約在海床以下 9000 公尺處,他們也發現了另一個有差異的地方。我非常感謝 Peter 提供的這個例子,因為這正是使用 3D 散佈圖的絕佳案例。演示就到這裡。
讓我切換回投影片。 [聽不清楚 00:32:04] 幻燈片。也許我得這麼做。下一張投影片。現在是提問時間。通常情況下,在觀眾席上,你會向他們提問。但這次是錄音的。請在評論區留言或聯絡 JMP 技術支援。
正如我剛才所說,如果您有任何想要的功能,也可以將其添加到願望清單中。我有一個問題,或者說一個請求。請問您是否希望我們支援類似 JMP Live 中的 3D 曲面圖那樣的其他 3D 圖表,還是更希望我們為 3D 散佈圖添加更多功能?我省略了很多功能,如果您覺得這些功能很重要,我們很樂意在未來的版本中嘗試實現。我的投影片和簡報到此結束。感謝觀看。