在之前的文章,我们介绍了如何使用​​histograms​​来构建普通的柱状图,今天看下如何构建堆积柱状图。

先来看一个堆积柱状图的例子

circos 中堆积柱状图的画法_柱状图
对应的数据如下:

circos 中堆积柱状图的画法_数据_02

和普通的柱状图相比,堆积柱状图只不过是第4列有多个value, 多个value 之间用逗号分隔。

配置文件的写法如下:

circos 中堆积柱状图的画法_柱状图_03

大部分属性和常规的柱状图是完全一样的,需要注意的是其赋值的写法。比如​​fill_color​​​, 可以看到是逗号连接的5个颜色。对应​​file​​中的5个value。

对于​​fill_color​​​和​​thickness​​这两个属性来说,其值既可以是一个值,也可以是逗号连接的多个值。其值为一个是,代表所有的柱子属性都一样;为多个值时,用逗号连接,每个柱子对应一个属性;如果属性个数比value个数少是,会自动循环。

下图中有每个​​bin​​​有5个柱子,但是​​fill_color​​​只有两个值,此时填充色的值自动循环,变成 ​​red, black,red,black,red​​。

circos 中堆积柱状图的画法_数据_04

​thiockness​​在堆积柱状图中有了新的用途,可以看作每个柱子边框的粗细程度,其值越大,在图中柱子之间的间隔就越大。

在下图中,可以看到随着​​thickness​​的增大,不仅柱子之间的间隔变大了,对应的填充色的区域整体都缩小了一圈。

circos 中堆积柱状图的画法_数据_05

在堆积柱状图中,有一个独有的属性​​sort_bin_values​​​, 表示是否根据value的大小调整柱子的高度,默认值为​​no​​​, 柱子的顺序按照​​file​​​文件中指定的顺序,第一个value 对应最底部的柱子。当取值为​​yes​​​时,柱子的顺序会打乱,​​value​​​最大的柱子在最底部。示意图如下:
circos 中堆积柱状图的画法_柱状图_06

除了填充色之外,还可以设置​​pattern​​属性,用法如下

pattern    = vline,hline,solid,checker,solid

效果图如下:

circos 中堆积柱状图的画法_柱状图_07

​pattern​​的作用就是设置填充的样式,比如斜线填充等样式。