美文网首页Tableau知识
用Tableau画环形图系列(二)画同心圆

用Tableau画环形图系列(二)画同心圆

作者: 扫地sir | 来源:发表于2018-09-11 14:26 被阅读568次

    本系列导航

    用Tableau画环形图系列(一)画个简单的圆

    用Tableau画环形图系列(二)画同心圆

    用Tableau画环形图系列(三)画环状条形图

    用Tableau画环形图系列(四)画圆弧图(1)

    用Tableau画环形图系列(五)画圆弧图(2)

    用Tableau画环形图系列(六)画柱状环形图

    用Tableau画环形图系列(七)用Tableau画尖状环形图[翻译]


    第一讲我们讲了画圆的基本原理,只简单划了一个圆,这是不够的,像跑马灯图的基础都是同心圆,那么同心圆怎么画呢?

    复习一下第一讲:

    圆上每个点的X坐标=a + sin(2*PI / 360*角度) * r ;Y坐标=b + cos(2*PI / 360*角度) * r

    其实同心圆只有r,也就是半径不一样,其他都一样,这样就好办了。

    其实我们只需要构造一张表,字段就是两个 point和R,加入我们要画一个半径为1和一个半径为2的同心圆,根据上一讲的思路,那么我们就需要做720行,前360行point是1-360,R是1,后360行point是1-360,R是2,然后用Tableau引入数据计算sin和cos,这样当然没有问题,但是很麻烦,如果同心圆更多就更麻烦了。

    我们选用另一种方案

    先构造一张point表

    再做一张circle表(这次一次画五个同心圆)

    引入Tableau,用内连接连接两张表,就会以笛卡尔积的形式构造好我们要的表5*361=1805行(因为0度和360度重合了,为了能让圆封闭上,大家可以自己试试0-359度画完了是什么样)

    构造出的表就是这个样子

    下面就是添加计算字段

    拖入sin和cos拖入行列功能区,取消聚合,默认就是5个同心圆,但是如果你放大了,其实还是圆点,还需要用point作为路径把圆点串联起来。

    把point拖入路径

    靠,什么鬼?为什么?

    其实如果你点击图表右键,查看数据,point每个值都是5个,作为路径point是按顺序连接的,所以就会连接5次0和然后连接5次1,以此类推,当然不是我们想要的。

    我们需要把5个圆区分开,point作为路径才能依次连接每个圆内的0-360个点,所以拖入circle字段(也可以用R,但要转换成维度,离散型)到详细或者颜色都可以,这样才能把5个圆分区(大家可以再点击右键查看数据,看看数据是什么样的)

    自此,同心圆就画好了。与一个圆的区别就是point路径要分区,这是重点要理解的,我在研究这个问题的时候就卡这里很久。

    另外还有用数据桶来做的,也是为了构造一个笛卡尔积的表,只不过构造是在生成图表时完成,而我们用的连接表是在数据处理阶段,至于哪种效率更高,我没研究过。链接表的形式我觉得更直接更好理解,如果后续画跑马灯等图表,根据数据判断比例之类的复杂表计算时候,数据桶的方式我个人感觉会麻烦一点。如果有时间大家可以研究一下。

    另外,出个题,上面的表画同心的半圆怎么画呢?

    相关文章

      网友评论

        本文标题:用Tableau画环形图系列(二)画同心圆

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