Power BI 中的 3D 效果

前面的文章中有提到做出像动画的效果,链接地址使用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散点图上。

 

posted @ 2020-08-18 14:47  Javi  阅读(1671)  评论(0编辑  收藏  举报