Gnuplot,我如何得到一个值的长度?

时间:2014-10-23 12:42:56

标签: gnuplot strlen

我想知道一个值的字符数。

但是strlen()仅用于字符串,而不用于值。 (strlen(值(" zon"))不起作用)

示例:zon = 12000,len值为5.

这可以用gnuplot吗?

3 个答案:

答案 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)

以下是我提出的两个问题的结果;

  • 是否可以在gnuplot中获取de y-axis的值?
  • 我如何得到一个值的长度?

原因是,我希望列中的值尽可能。 以下是结果,然后是所需的脚本。

这里是图形; example 这里有剧本;

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所有的解决方案,它现在完美,它适用于各种规模。