2016-12-15 8 views
1

たとえば、バイト数があり、そのうちのいくつかはギガバイトに相当します。Gnuplot形式の変換、バイト

現在の書式設定set format y "%.2s%cbは、この処理を行います。

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

私は3桁のみを表示するような方法でyticsを変換する必要がある、または/および主に1人の、科学の力で:

どう
1.00G 
0.80G 
0.60G 
.... 
0 

それをしてもいいですか?

答えて

0

次に、gnuplotの自動フォーマットは使用できません。あなたは、データがギガバイト単位で示されなければならないことを、知っている場合は、

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

を使用これは、2列目のデータはバイト単位で示されていること、を前提としています。

あなたが最大の科学的な力に固執する場合は、まずstatsと最大値を決定し、その後の科学力を計算することができます。この唯一のgnuplot 5とのような作品などという、

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) 

注意を、最大y値が異なる科学的な力を持つ場合、自動スケールされた最大y値(例えば、最大値990e6→自動スケーリングは1e9を取るが、上記のコードは科学的な力として 'M'を与える​​) 。

関連する問題