我想知道一个值的字符数。
但是strlen()仅用于字符串,而不用于值。 (strlen(值(" zon"))不起作用)
示例:zon = 12000,len值为5.
这可以用gnuplot吗?
答案 0 :(得分:4)
要获取数值的位数,请使用log10
并向上舍入值:
zon = 12000
digits = int(ceil(log10(zon)))
print digits
根据要求打印5
。
答案 1 :(得分:3)
在某些情况下,您可能希望查看打印时的数字长度:
zon = 12000
print strlen(sprintf("%d", zon))
这也打印5。
答案 2 :(得分:1)
以下是我提出的两个问题的结果;
原因是,我希望列中的值尽可能。 以下是结果,然后是所需的脚本。
这里是图形; 这里有剧本;
set terminal unknown
plot "<tail -24 uur.txt" using 1:(-$7) w p, '' u 1:4 w p
ymax= GPVAL_Y_MAX
ymin= GPVAL_Y_MIN
ptmax=ymax*dy/(ymax-ymin)
ptmin=ymin*dy/(ymax-ymin)
replot
和
"<tail -24 uur.txt" u ($1-600):4:( $4>0 && ($4/ymax*ptmax)> (10 * strlen(sprintf("%d", $4))) ? $4 : sprintf("")) w labels right rotate font ",8" tc rgb "white" offset 0,-0.1 notitle,\
"<tail -24 uur.txt" u ($1-600):4:( $4>0 && ($4/ymax*ptmax)<=(10 * strlen(sprintf("%d", $4))) ? $4 : sprintf("")) w labels left rotate font ",8" tc rgb "black" offset 0,0.1 notitle,\
Thanx所有的解决方案,它现在完美,它适用于各种规模。