前面的文章中有提到做出像動畫的效果,鏈接地址使用Power BI 實現動畫效果。那么就有小伙伴提問了,有沒有3D效果呢?答案是肯定的,今天我們就來看一下。
正投影是一種使用二維空間表示三維對象的方法。在Microsoft Power BI中,如果在組成(x,y,z)的三個獨立列中具有一組坐標,則可以非常輕松地實現3D效果。在下面的示例中,我使用了具有從人臉輪廓中獲取的坐標的數據集,並構建了一個報告,該報告允許用戶沿三個軸旋轉人臉。
讓我們看一下如何構建它。
數據
獲取在三個單獨的列中具有坐標的數據集。就我而言,我需要添加一個Index列,以便一旦將它們添加到Power BI中的視覺對象后就可以將所有點分解為唯一的行。您的數據可能看起來像這樣:
新建參數
動態旋轉依賴於“假設”參數。添加與三個軸相對應的三個“假設”參數。就我而言,我使用了-90到90度的可能旋轉值,但是您可以使用0到360,-180到180等值。請確保選中“將切片器添加到此頁面”選項。使用切片器可以使用戶動態旋轉對象。
X Rotation = GENERATESERIES(-90,90, 1)
X和Y度量
通過添加以下兩個措施,可以實現從三個坐標到2D平面的投影。確保調整頂部的列引用和假設參數名稱,以與您自己的數據相對應。
這是我的“正交x”度量。最初的六個粗體值是您需要調整以適合自己的數據和參數名稱的值。
Ortho x = VAR x = MIN ( Coordinates[x] ) VAR y = MIN ( Coordinates[y] ) VAR z = MIN ( Coordinates[z] ) VAR xDegrees = RADIANS ( 'X Rotation'[X Rotation Value] ) VAR yDegrees = RADIANS ( 'Y Rotation'[Y Rotation Value] ) VAR zDegrees = RADIANS ( 'Z Rotation'[Z Rotation Value] ) VAR x0 = x VAR y0 = y * COS ( xDegrees ) + z * SIN ( xDegrees ) VAR z0 = z * COS ( xDegrees ) - y * SIN ( xDegrees ) VAR x1 = x0 * COS ( yDegrees ) - z0 * SIN ( yDegrees ) VAR y1 = y0 VAR finalX = x1 * COS ( zDegrees ) + y1 * SIN ( zDegrees ) RETURN finalX
這是我的“正交 y”測量。同樣,前六個粗體值是您需要調整以適合自己的數據和參數名稱的值。
Ortho y = VAR x = MIN ( Coordinates[x] ) VAR y = MIN ( Coordinates[y] ) VAR z = MIN ( Coordinates[z] ) VAR xDegrees = RADIANS ( 'X Rotation'[X Rotation Value] ) VAR yDegrees = RADIANS ( 'Y Rotation'[Y Rotation Value] ) VAR zDegrees = RADIANS ( 'Z Rotation'[Z Rotation Value] ) VAR x0 = x VAR y0 = y * COS ( xDegrees ) + z * SIN ( xDegrees ) VAR z0 = z * COS ( xDegrees ) - y * SIN ( xDegrees ) VAR x1 = x0 * COS ( yDegrees ) - z0 * SIN ( yDegrees ) VAR y1 = y0 VAR finalY = y1 * COS ( zDegrees ) - x1 * SIN ( zDegrees ) RETURN finalY
散點圖
一旦有了兩個新的X和Y度量,就可以在報表中添加散點圖。將X度量拖到X軸,將Y度量拖到Y軸,然后將其拖到Detail的唯一索引中。
條件格式
要使沿z軸的深度具有更好的視覺外觀,請向散點圖添加條件格式。轉到格式並展開數據顏色。將鼠標懸停在該區域上,然后單擊出現的[…],然后選擇“ 條件格式”。
最后,我調整了一些其他格式選項,例如Shape,以減小點的大小。完成所有構建后,我現在在數據中有了一個“面孔”,該面孔從原始數據集中獲取了3D坐標,並投影到了2D Power BI散點圖上。