Next: , Previous: gprintf_, Up: format_


3.24.23.2 format specifiers

The acceptable formats (if not in time/date mode) are:

           Format       Explanation
           %f           floating point notation
           %e or %E     exponential notation; an "e" or "E" before the power
           %g or %G     the shorter of %e (or %E) and %f
           %x or %X     hex
           %o or %O     octal
           %t           mantissa to base 10
           %l           mantissa to base of current logscale
           %s           mantissa to base of current logscale; scientific power
           %T           power to base 10
           %L           power to base of current logscale
           %S           scientific power
           %c           character replacement for scientific power
           %P           multiple of pi
     

A 'scientific' power is one such that the exponent is a multiple of three. Character replacement of scientific powers (`"%c"`) has been implemented for powers in the range -18 to +18. For numbers outside of this range the format reverts to exponential.

Other acceptable modifiers (which come after the "%" but before the format specifier) are "-", which left-justifies the number; "+", which forces all numbers to be explicitly signed; " " (a space), which makes positive numbers have a space in front of them where negative numbers have "-"; "#", which places a decimal point after floats that have only zeroes following the decimal point; a positive integer, which defines the field width; "0" (the digit, not the letter) immediately preceding the field width, which indicates that leading zeroes are to be used instead of leading blanks; and a decimal point followed by a non-negative integer, which defines the precision (the minimum number of digits of an integer, or the number of digits following the decimal point of a float).

Some systems may not support all of these modifiers but may also support others; in case of doubt, check the appropriate documentation and then experiment.

Examples:

           set format y "%t"; set ytics (5,10)          # "5.0" and "1.0"
           set format y "%s"; set ytics (500,1000)      # "500" and "1.0"
           set format y "%+-12.3f"; set ytics(12345)    # "+12345.000  "
           set format y "%.2t*10^%+03T"; set ytic(12345)# "1.23*10^+04"
           set format y "%s*10^{%S}"; set ytic(12345)   # "12.345*10^{3}"
           set format y "%s %cg"; set ytic(12345)       # "12.345 kg"
           set format y "%.0P pi"; set ytic(6.283185)   # "2 pi"
           set format y "%.0f%%"; set ytic(50)          # "50%"
     
           set log y 2; set format y '%l'; set ytics (1,2,3)
           #displays "1.0", "1.0" and "1.5" (since 3 is 1.5 * 2^1)
     

There are some problem cases that arise when numbers like 9.999 are printed with a format that requires both rounding and a power.

If the data type for the axis is time/date, the format string must contain valid codes for the 'strftime' function (outside of `gnuplot`, type "man strftime"). See timefmt for a list of the allowed input format codes.