2016-12-15 47 views
1

例如,我有一大堆字节,其中一些字节等于千兆字节。Gnuplot格式转换,字节

当前格式设置set format y "%.2s%cb做到这一点:

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

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

1.00G 
0.80G 
0.60G 
.... 
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'作为科学能力) 。