不幸的是,gnuplot 只能为整个字符串着色"Number of Connections"
。frac
您可以使用附加选项影响颜色。
但是,这是一种实现您想要的东西的方法。但是,它涉及一些手动设置,我将在下面解释:
# define the location of your plot:
bm = 0.15
lm = 0.12
rm = 0.75
tm = 0.90
# letter spacing - play with this as needed:
STRDIST = 0.03
# set up the plot window:
set lmargin at screen lm
set rmargin at screen rm
set bmargin at screen bm
set tmargin at screen tm
# place the colorbar in a defined location:
set colorbox vertical user origin rm+0.1,0.15 size .05,tm-bm
# define your palette:
set palette model RGB defined ( \
0 '#F46D43',\
1 '#FDAE61',\
2 '#FEE08B',\
3 '#E6F598',\
4 '#ABDDA4',\
5 '#66C2A5' )
# your label
LABEL = "Number of Connections"
# the 'length' of LABEL, unfortunately counted manually:
LEN_LABEL = 21.0 # IMPORTANT, declare as float
# use a loop to individually place each char of the string on the plot:
do for [i=1:LEN_LABEL]{\
set label i LABEL[i:i] at screen 0.8,bm+((i-1.)*STRDIST) \
rotate by 90 textcolor palette frac i/LEN_LABEL\
}
# dummy function plot (so that there's something to see):
plot '+' using ($1):(sin($1)):(0.5*(1.0+sin($1))) w l lw 3 lc pal not
到底是怎么回事:
- 定义绘图和颜色条的位置:这样您就可以准确地知道它们的位置,并且可以准确地放置“伪”标签。
- 该变量
STRDIST
用于分隔各个字母。这很笨拙,但你明白了要点。玩它以获得良好的效果。
- 不幸的是,gnuplot 似乎无法计算字符串的长度,所以我硬连线了它,
LEN_LABEL
.
- 使用-loop 将标签字符串的每个字母放在绘图上,使用附加选项
do for
从调色板中分配颜色。是调色板上最低和“最高”的颜色。在这里,我们利用循环计数器从调色板中提供均匀间隔的颜色。注意:这就是为什么声明为浮点数很重要,而不是整数或任何东西,但最后一次迭代将导致. frac
frac 0.0
frac 1.0
LEN_LABEL
frac 0
- 该命令是从这个站点
plot '+' ...
借来的。
复制/粘贴上述示例时得到的图如下所示:
使用“标签”的起点以及STRDIST
生成/放置您喜欢的标签。