Gnuplot格式转换,字节

时间:2016-12-15 09:45:47

标签: format gnuplot format-specifiers

例如,我有大量的字节,其中一些等于千兆字节。

当前格式设置set format y "%.2s%cb执行此操作:

1.20G
1.00G
800.00M
600.00M
.....
0

我需要转换ytics的方式只显示三位数,或/和主要是一个科学力量:

1.00G
0.80G
0.60G
....
0

我该怎么做?

1 个答案:

答案 0 :(得分:0)

然后你不能使用gnuplot的自动格式化。如果您知道,数据必须以千兆字节显示,请使用

set format y "%.2fG"
plot 'data.dat' using 1:($2/1e9)

这假定第二列中的数据以字节为单位。

如果你想坚持最大的科学力量,你可以先用stats确定最大值,然后计算科学能力:

stats 'data.dat' using 2 nooutput
scientific_power_index = ceil(log10(STATS_max)/3)
scientific_power = word("'' k M G T", scientific_power_index)
scale = 10**((scientific_power_index - 1) * -3)

set format y "%.2f".scientific_power
plot 'data.dat' using 1:($2 * scale)

注意,这样只适用于gnuplot 5,如果最大y值具有不同的科学能力,那么它无法正常工作,那么自动调整的最大y值(例如最大值990e6 - >自动缩放需要1e9,但上面的代码仍然会将'M'作为科学力量。)