2016-12-15 61 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'作爲科學能力) 。