1:初级桑吉图
1.1作图目的
连接两个堆叠柱形图,利用分支线来说明两个柱形之间量化的关系。
1.2数据准备
创建如图所示表格,Method为左柱形图准备,TAX为右柱形图准备,量化关系是序列数。首先新建rowtype,全命名为1,再把数据复制一遍,新复制的rowtype列全赋值49。其他的列后面用到,本文不用
1.2图形构成
由2个堆叠柱形图,一个logistic曲线构成。曲线的起点连接method、终点连接tax,宽度表示这部分序列占总序列的比例。从左柱形图往右柱形图看就是说明每种方法得到序列都是被注释成了什么、且可以看出比例是多少;倒过来看就是某种物种都是来自于哪些方法得到的序列、也可以看出比例是多少。
1.3 堆叠柱形图创建
数据导入(略)
柱形图制作(比较简单,总和值在快捷计算表里改为总和百分比)
终点将曲线logistic,该函数是著名的生长曲线函数,标准公式1/(1+EXP(1)^-[t]),t是自变量;这个函数s形状,y值范围是(0,1),在x<-5或者>5以后基本就接近极限值。我们只需要知道曲线的起点(int)和终点(end)在哪里,中间的点画的密一点,连城线就是了。准备49个点绘曲线,利用rowtype创建数据桶,大小是1,重命名为path(这些点连起来不就是曲线路径了嘛)。上面数据整理,一个数据有两个rowtype值1和49,那所以这么搞好了一个数据就有49个点了、能在空间上拉开。经过这么一折腾,数据了变成了原来的2(rowtype干的)*49(数据桶干的)倍。
我们说了x不需要过大、[-5,-5]够了,便于修理设定到[-6,-6]:创建字段t,公式(index()-25)/4,计算的依据是path(意思就是index([path]))。创建字段logstic,公式1/(1+EXP(1)^-[t])。设定曲线左端高度:创建int字段,公式100*RUNNING_SUM(sum([numSeqs]))/TOTAL(sum([numSeqs]));创建end字段100*RUNNING_SUM(sum([numSeqs]))/TOTAL(sum([numSeqs]))。这两有啥不一样呢?计算依据不同。int计算依据是method,tax,path;end是tax,method,path。两个都在是分类依据,类别数跟顺序无关,类别和顺序有关、谁在前分类就按谁来。这和excel的排序处理很类似,都是且的关系,谁在前、主要分类依据就是谁。一会图建好了右键再看下数据就更清楚了。细心的朋友发现了终点其实不是终点,终点应该减去起点那个截距,所以最终曲线函数:创建字段ft,公式[INT]+([end]-[INT])*[logistic]。大小写不要纠结,你保持一致就好,我懒得改。现在把ft拉倒行去,右键编辑计算表,设置如下:
再创建size字段,主要用于表示大小,RUNNING_AVG(sum(([numSeqs]))计算依据是path,因为在这个path中的49个点中有2个序列数的值,所以求平均,其实求和也没啥毛病。
其他设定按照以下就好了,修下x轴在[-5,5]。
有那么点样子了。那我们发现其实tax排序不是很好,我们想按照丰度大小降序排列,那我还没学会怎么搞,只好手动改
排好了我们把颜色换成tax检查下,完美。
接下来拼接这3个图了,新建仪表盘,先把两个bar图放进来,把标题都隐藏掉,中间插个空白页。
完美组装
再把method设成方法看看
顺序有点问题,微调下就完美了。另外,位置不好调的话可以按住alt+方向微调(头疼的活儿)。
接下来,我们要做点有意思的了。我们要用中间的颜色来表示序列的长度,很显然,分支还要更多,首先修改ft计算依据。作为分类依据,nbase不能是个数量性状,本来可以直接拖上去的,但是后面我们还要用到这个,所以最好新建个数据桶来解决,间距设置成5(也可以是1了,不想搞那么密)。ft计算依据如下修改:
如果我们把nbase直接放到颜色里会发现没什么用,只改了线头的颜色,看下数据表就发现了,49个点只有头和尾2个点有值。所以我们要把空值补齐了,新建计算,输入以下公式,计算依据是path。把该字段拉到颜色去,调整下色板,完美。
修改下图例
把上面的仪表盘复制一个,中间的图删除了,把新做的曲线放进去,微调,基本成型。
知远识 发布了14 篇原创文章 · 获赞 3 · 访问量 1万+ 私信 关注