美文网首页
用Tableau画3D模型之二(提高篇)

用Tableau画3D模型之二(提高篇)

作者: 扫地sir | 来源:发表于2020-03-02 13:01 被阅读0次

    上一篇文章里我们学习了双轴旋转的3D模型制作方法,由于建立的字段比较少,所以相对简单。

    本篇文章,我们学习三轴旋转的3D模型,难度略微有些增加。

    建立数据集

    我们用上一篇中的第二个数据集,也就是增加了连线的数据

    group,id,x,y,z
    1-2,1,0,0,0
    1-2,2,0,1,0
    1-4,1,0,0,0
    1-4,4,0,0,1
    1-5,1,0,0,0
    1-5,5,2,0,0
    2-3,2,0,1,0
    2-3,3,0,1,1
    2-6,2,0,1,0
    2-6,6,2,1,0
    3-4,3,0,1,1
    3-4,4,0,0,1
    3-7,3,0,1,1
    3-7,7,2,1,1
    4-8,4,0,0,1
    4-8,8,2,0,1
    5-6,5,2,0,0
    5-6,6,2,1,0
    5-8,5,2,0,0
    5-8,8,2,0,1
    6-7,6,2,1,0
    6-7,7,2,1,1
    7-8,7,2,1,1
    7-8,8,2,0,1
    

    创建计算字段

    • 创建参数XZ - Angle (Radians),浮点,4.7-6

    • 创建参数YZ - Angle (Radians),浮点,0-3.14

    • 创建参数XY - Angle (Radians),浮点,0-3.14

    前两个参数和上一篇一样,新增了XY - Angle (Radians)这个参数,参数值的范围也可以自己调节。

    • x_rotated (xy)=[x]*COS([XY - Angle (Radians)])-[y]*SIN([XY - Angle (Radians)])

    • x_rotated=[x_rotated (xy)]*COS([XZ - Angle (Radians)])-[z]*SIN([XZ - Angle (Radians)])

    • z_rotated=[x_rotated (xy)]*SIN([XZ - Angle (Radians)])+[z]*COS([XZ - Angle (Radians)])

    • y_rotated (xy)=[y]*COS([XY - Angle (Radians)])+[x]*SIN([XY - Angle (Radians)])

    • y_rotated=-[z_rotated]*SIN([YZ - Angle (Radians)])+[y_rotated (xy)]*COS([YZ - Angle (Radians)])

    开始做图

    • 将[x_rotated]拖到行功能区,[y_rotated]拖到列功能区。

    • 标记类型选择“圆”。

    • 将[group]字段拖到标记栏“详细信息”。

    • 将[id]拖到标记栏“详细信息”和“标签”。

    • 复制[x_rotated]字段,做双轴并同步轴。

    • 将[id]字段拖到标记栏“路径”里,类型改为“线”。

    如果操作正确,效果如下:

    上面是最基本的三轴旋转的3D模型制作方方,只是点线相连。长方形有6个面,如果增加难度,还需要用多边形绘制6个面。由于这里的6个面是4个点组成的多边形,所以上面的数据集就不能满足要求了,需要新建数据集。

    新建数据集

    group,index,id,x,y,z
    1-2-3-4,1,1,0,0,0
    1-2-3-4,2,2,0,1,0
    1-2-3-4,3,3,0,1,1
    1-2-3-4,4,4,0,0,1
    1-2-3-4,5,1,0,0,0
    5-6-7-8,1,5,2,0,0
    5-6-7-8,2,6,2,1,0
    5-6-7-8,3,7,2,1,1
    5-6-7-8,4,8,2,0,1
    5-6-7-8,5,5,2,0,0
    2-3-7-6,1,2,0,1,0
    2-3-7-6,2,3,0,1,1
    2-3-7-6,3,7,2,1,1
    2-3-7-6,4,6,2,1,0
    2-3-7-6,5,2,0,1,0
    1-2-6-5,1,1,0,0,0
    1-2-6-5,2,2,0,1,0
    1-2-6-5,3,6,2,1,0
    1-2-6-5,4,5,2,0,0
    1-2-6-5,5,1,0,0,0
    3-4-8-7,1,3,0,1,1
    3-4-8-7,2,4,0,0,1
    3-4-8-7,3,8,2,0,1
    3-4-8-7,4,7,2,1,1
    3-4-8-7,5,3,0,1,1
    1-4-8-5,1,1,0,0,0
    1-4-8-5,2,4,0,0,1
    1-4-8-5,3,8,2,0,1
    1-4-8-5,4,5,2,0,0
    1-4-8-5,5,1,0,0,0
    

    这里大家要注意一下,每组数据是5行,为什么呢?理论上4个点的多边形只需要4行数据,系统会自动将首尾用直线相接,做成封闭的图形。但是我这里需要把线和面的数据整合到一起,如果绘制4个点的封闭连线,要收尾相接,就需要每组的第一行数据和最后一行数据重叠。所以每组数据用5行,可以同时满足绘制线和面的要求。

    • 用新数据集替换掉上面的数据。

    • 将上面标记类型为“圆”的标记卡改为“多边形”。

    • 将“线”和“多边形”两个标记卡里的路径都改为[index]。

    至此绘制完毕。

    操作并不难,关键是要理解数据集是怎建立的。我把做好工作簿放到了Public上,有兴趣的同学可以下载研究。

    https://public.tableau.com/profile/jiangbin#!/vizhome/Simple3deffectdemo/3-_1

    此篇文章已发布到我的公众号:saodisir,有兴趣也可关注一下

    相关文章

      网友评论

          本文标题:用Tableau画3D模型之二(提高篇)

          本文链接:https://www.haomeiwen.com/subject/jgkpkhtx.html