2016-05-24 7 views
0

Ich zeichne Wellenlänge mit einem benutzerdefinierten Format für xtics in Gnuplot. Was ich will achive sind xtics wie folgt aus:Gnuplot mit SI-Präfixen: Wie bekomme ich Gnuplot, um Dezimal-Nullen nicht anzuzeigen?

200nm, 400nm, 600nm, 800nm, 1um, 1,2 um, 1.4um

ich mit diesem Code bin fast da:

set xlabel "Wavelenth" 
set format x "%3.1s%cm" 
set xrange [1e-8:1.5e-6] 

plot x lw 3 

Aufgrund der %3.1s hängt Gnuplot jedoch eine unbrauchbare .0, wo keiner notwendig ist. So Gnuplot die xtics in aboves Bereich sind:

200.0nm, 400.0nm, 600.0nm, 800.0nm, 1um, 1,2 um, 1.4um

dass die tics erweitert, was hässlich ist. Ich kann nicht herausfinden, wie Breite und Genauigkeit angegeben werden, so dass Dezimalstellen, die alle Null sind, nicht angezeigt werden. Gibt es einen Weg?

unwanted digits

+2

Haben Sie einfach '% s% cm' probiert? Andernfalls glaube ich nicht, dass Sie das erreichen können, ohne die Beschriftungen mit 'set for [...] xtics add ... manuell zu setzen.' – Christoph

Antwort

0

Ich denke, das das Tics nicht möglich, andere manuell als Angabe:

set xtics ("200nm" 2e-7, "400nm" 4e-7, "600nm" 6e-7, "800nm" 8e-7, "1.2um" 1.2e-6, "1.4um" 1.4e-6) 

Wenn Sie den Postscript-Terminal verwenden, können Sie mich in der Lage geschnitten werden entfernt die „.0nm“ mit

sed
set term postscript eps 
set out 'plot.eps' 
set xlabel "Wavelenth" 
set format x "%3.1s%cm" 
set xrange [1e-8:1.5e-6] 
plot x lw 3 
set output 
!sed -i 's/\.0nm/nm/g' plot.eps 
+1

Haben Sie das nicht versucht, aber auf jeden Fall müssen Sie die Ausgabe mit 'set output beenden 'vor dem Aufruf' sed' – Christoph

+0

@Christoph Wusste nicht, das Skript funktionierte vorher gut (vielleicht nicht immer), so fügte ich die Zeile jetzt in der Antwort hinzu –