我知道如何在gnuplot轴中使用后缀符号:
set ytics format "%.1s%c"
但是在短跑中没有考虑到这一点.
gnuplot> f_sprintf(“%s”,2e+3) f_sprintf:尝试打印字符串格式的数值
所以我做了我自己的功能:
suffixNotation(x)=sprintf("%g%s",\
(x>=1e+9&&x<1e+12 ) ? x*1e-9 :\
(x>=1e+6&&x<1e+9 ) ? x*1e-6 :\
(x>=1e+3&&x<1e+6 ) ? x*1e-3 :\
(x>=1e-3&&x<1 ) ? x*1e+3 :\
(x>=1e-6&&x<1e-3 ) ? x*1e+6 :\
(x>=1e-9&&x<1e-6 ) ? x*1e+9 :\
(x>=1e-12&&x<1e-9) ? x*1e+12 : x\
,\
(x>=1e+6&&x<1e+12 ) ? "G" :\
(x>=1e+6&&x<1e+9 ) ? "M" :\
(x>=1e+3&&x<1e+6 ) ? "k" :\
(x>=1e-3&&x<1 ) ? "u" :\
(x>=1e-6&&x<1e-3 ) ? "n" :\
(x>=1e-9&&x<1e-6 ) ? "p" :\
(x>=1e-12&&x<1e-9) ? "f" : ""\
)
# gnuplot> i=4.321e-13 ; while (i<10e6) { pr suffixNotation(i); i=i*10;}
# 4.321e-13 4.321f 43.21f 432.1f 4.321p 43.21p 432.1p 4.321n 43.21n 432.1n 4.321u 43.21u 432.1u 4.321 43.21 432.1 4.321k 43.21k 432.1k 4.321G
问题1?有人知道这个函数是否已经存在于gnuplot中了吗?
问题2?是否计划将其添加到sprintf中?
问题3?我们如何处理gnuplot中的'package‘,比如load(“$GNUPLOTPATH/parixNotation.gp”),我的意思是正确的。
发布于 2015-05-12 01:33:51
Gnuplot提供了自己的格式化函数gprintf
,它支持所有这些特定于gnuplot的格式说明符。
print gprintf('%.1s%c', 2e+3)
版画
2.0k
引用正式文件:
string函数
gprintf("format", x)
使用自己的格式说明符,set format、set时间戳和其他命令也是如此。这些格式说明符与标准C语言例程sprintf()
使用的格式说明符不同.gprintf()
只接受要格式化的单个变量。
https://stackoverflow.com/questions/30186482
复制相似问题