histograms
可以看做是line plot
的一个变种,首先来看一个示例
图中最内圈的就是historgams
了,可以看到由许多个柱子组成,每个柱子都是file
中定义的一个区域,柱子的高度由这个区域的value
决定。所有的柱子共有两个方向,一部分朝内,另外一部分朝外。
这个图片对应的数据如下:
可以看到value
的值有正有负,当同时包括了正负数时,所有正数的柱子是一个方向,负数的柱子是另外一个方向。以上这些都是默认行为。
下面看一个最基本的配置文件的例子
r0
, r1
, max
和min
这些属性在之前的文章中已经详细解释过,今天主要看下histogram
独有的几个参数
1. extend_bin
每个bin
的区间是在file
文件中事先定义好的, extend_bin
控制是否把相邻的bin
连接起来, 比如对于下面这个数据
可以看到这3个区间是有一定间隔的,默认情况下,在图上对应的bin
肯定是不连续的;当设置了extend_bin = yes
之后,会将这3个bin连在一起。
具体的做法就是延伸file
中定义好的区间,比如前2个bin
之间有间隔,取这个间隔的中间点的位置,作为第一个bin的终止位置,第2个bin的起始位置,这样两个bin
就连接起来了。
看一个案例
图中的两个histogram
基于相同的数据,当extend_bin = no
时,按照file
中定义的区间来画,可以看到区间并不是连续的;当extend_bin = yes
时,所有的bin
都变成连续的了。
改变了file
文件中定义的区间,通常情况下, 不太推荐使用extend_bin = yes
。
2. 颜色相关的属性
histogram
中,和颜色相关的共有以下4个属性
- color 线条的颜色
- fill_color
bin
的填充色 - background_color
bin
的背景色 - fill_under
当
fill_under = yes
时,background_color
作为bin
的填充色,fill_color
作为线条的颜色,会覆盖color
定义的值
另外一个需要掌握的就是定义多种颜色的技巧,以最常用的fille_color
为例,主要有两种方式:
1. 设置多个条件
根据某个阈值将value
划分成不同的部分,每个部分通过rule
定义不同的填充色
2. 设置一个条件
condition = 1
表示这个rule
一直发挥作用,类似编程中的while(1)
, 永远为真。这里的fill_color
的值通过一个表达式来定义。
remap_int
函数根据value
在区间[-1, 1]的位置, 映射到[1,9]区间中,生成一个1到0之间的整数,然后通过sprintf
函数定义颜色为spectral-9-div
调色板中的一个颜色。
spectral-9-div
这个调色板是在/etc/brewer.all.conf
文件中定义的
在该文件中,还定义了其他颜色的调色板,中间的数字代表了调色板中的颜色总数,可以根据需要选择合适的调色板。