2016-12-15 4 views
1

Zum Beispiel habe ich eine Menge von Bytes, einige von ihnen entspricht Gigabytes.Gnuplot Format konvertieren, Bytes

Die aktuelle Formatierung Setup set format y "%.2s%cb tut dies:

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

Ich brauche ytics in der Art und Weise umwandeln zu zeigen, nur drei Ziffern oder/und vor allem in einer wissenschaftlichen Leistung:

1.00G 
0.80G 
0.60G 
.... 
0 

Wie kann ich das machen?

Antwort

0

Dann können Sie die automatische Formatierung von gnuplot nicht verwenden. Wenn Sie wissen, dass die Daten in Gigabytes gezeigt werden müssen, dann verwenden

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

Dies setzt voraus, dass die Daten in der zweiten Spalte wird in Bytes angegeben.

Wenn Sie die größte wissenschaftliche Macht bleiben möchten, können Sie zuerst den Maximalwert mit stats bestimmen und dann die wissenschaftliche Leistung berechnen:

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) 

Beachten Sie, dass diese als solche Arbeiten nur mit gnuplot 5, und es funktioniert nicht richtig, wenn der maximale y-Wert eine andere wissenschaftliche Macht hat als der autoskalierte maximale y-Wert (zB max. Wert 990e6 -> autoskaling benötigt 1e9, aber der obige Code würde immer noch 'M' als wissenschaftliche Macht geben) .

Verwandte Themen