-=include name
+=head1 NAME
-=head1 SYNOPSIS
-
-=over 4
-
-=item B<to be deprecated commands>
-
-=over 4
-
-=item B<PRINT> : I<vname> : I<CF> : I<format>
-
-=item B<GPRINT> : I<vname> : I<CF> : I<format>
+rrdgraph_graph - rrdtool graph command reference
-=item B<HRULE> : I<value> # I<color> [ :I<legend> ]
-
-=item B<STACK> : I<vname> # I<color> [ :I<legend> ]
-
-=back
-
-=item B<available commands>
+=head1 SYNOPSIS
-=over 8
+B<PRINT>B<:>I<vname>B<:>I<format>
-=item B<PRINT> : I<vname> : I<format>
+B<GPRINT>B<:>I<vname>B<:>I<format>
-=item B<GPRINT> : I<vname> : I<format>
+B<COMMENT>B<:>I<text>
-=item B<COMMENT> : I<text>
+B<VRULE>B<:>I<vname>B<#>I<color>[B<:>I<legend>]
-=item B<VRULE> : I<vname> # I<color> [ : I<legend> ]
+B<LINE>I<width>B<:>I<vname>B<#>I<color>[B<:>I<legend>][B<:>B<STACK>]
-=item B<LINE>{I<width>} : I<vname> # I<color> [ : I<legend> ] [ : STACK ]
+B<AREA>B<:>I<vname>B<#>I<color>[B<:>I<legend>][B<:>B<STACK>]
-=item B<AREA> C<:> I<vname> C<#> I<color> [ C<:> I<legend> ] [ C<:> C<STACK> ]
+B<TICK>B<:>I<vname>B<#>I<rrggbb>[I<aa>][B<:>I<fraction>[B<:>I<legend>]]
-=item B<PART> : I<vname> B<#> I<rrggbbaa> [ B<:> I<legend> ]
+B<SHIFT>B<:>I<vname>B<:>I<offset>
-=item B<TICK> : I<vname> B<#> I<rrggbbaa> [ : I<fraction> [ : I<legend> ] ]
+=cut
-=back
+B<PART>B<:>I<vname>B<#>I<rrggbb>[I<aa>][B<:>I<legend>]
-=item B<to be implemented commands>
+=pod
-=over 8
+B<PRINT>B<:>I<vname>B<:>I<CF>B<:>I<format> (deprecated)
-=item B<SHIFT> : I<vname> , I<offset>
+B<GPRINT>B<:>I<vname>B<:>I<CF>B<:>I<format> (deprecated)
-=back
+B<HRULE>B<:>I<value>B<#>I<color>[B<:>I<legend>] (deprecated)
-=back
+B<STACK>B<:>I<vname>B<#>I<color>[B<:>I<legend>] (deprecated)
=head1 DESCRIPTION
=over 4
-=item B<PRINT> : I<vname> : I<CF> : I<format>
+=item B<PRINT:>I<vname>B<:>I<CF><:>I<format>
I<Deprecated. Use the new form of this command in new scripts.>
The first form of this command is to be used with B<CDEF> I<vname>s.
-=item B<PRINT> : I<vname> : I<format>
+=item B<PRINT:>I<vname>B<:>I<format>
Depending on the context, either the value component or the time
component of a B<VDEF> is printed using I<format>. It is an error
=over 4
-=item B<GPRINT> : I<vname> : I<CF> : I<format>
+=item B<GPRINT>B<:>I<vname>B<:>I<CF>B<:>I<format>
I<Deprecated. Use the new form of this command in new scripts.>
This is the same as C<PRINT> but now it is printed inside the graph.
-=item B<GPRINT> : I<vname> : I<format>
+=item B<GPRINT>B<:>I<vname>B<:>I<format>
This is the same as C<PRINT> but now it is printed inside the graph.
-=item B<COMMENT> : I<text>
+=item B<COMMENT>B<:>I<text>
Text is printed literally in the legend section of the graph
-=item B<HRULE> : I<value> # I<color> [ :I<legend> ]
+=item B<HRULE>B<:>I<value>B<#>I<color> [ :I<legend> ]
-Draw an horizontal line at I<value>. Its color is composed from three
-hexadecimal numbers specifying the color components (00 is off, FF is
-maximum) red, green and blue. Optionally a legend box and string is
-printed in the legend section. I<value> can be a variable from a B<VDEF>.
-It is an error to use I<vname>s from B<DEF> or B<CDEF> here.
+I<Deprecated. Use B<LINEx> in new scripts.>
-=item B<VRULE> : I<vname> # I<color> [ : I<legend> ]
+=item B<VRULE>B<:>I<vname>B<#>I<color> [B<:>I<legend> ]
Draw a vertical line at I<time>. Its color is composed from three
hexadecimal numbers specifying the color components (00 is off, FF is
printed in the legend section. I<time> may be a number or a variable
from a B<VDEF>. It is an error to use I<vname>s from B<DEF> or B<CDEF> here.
-=item B<LINE>{I<width>} : I<vname> # I<color> [ : I<legend> ] [ : STACK ]
+=item B<LINE>I<width>B<:>I<{vname or number}>B<#>I<color>[B<:>I<legend>]
+[ C<:STACK> ]
Draw a line of the specified width into the graph. If the color
is not specified, the drawing is done 'blind'. This is useful when
stacked on top of the previous element which can be a B<LINEx> or
an B<AREA>
-=item B<AREA> C<:> I<vname> C<#> I<color> [ C<:> I<legend> ] [ C<:> C<STACK> ]
+=item B<AREA>B<:>I<vname>B<#>I<rrggbb>[I<aa>][B<:>I<legend>][B<:STACK>]
See B<LINE>, however the area between the x-axis and the line will
also be filled.
-=item B<STACK> : I<vname> # I<color> [ :I<legend> ]
+=item B<TICK>B<:>I<vname>B<#>I<rrggbb>[I<aa>][B<:>I<fraction>[B<:>I<legend>]]
-I<Deprecated. Use the B<STACK> modifiers on the other commands.>
-I<Note: the comments on stacking are still valid...>
-Repeats the last B<LINEx> or B<AREA> however it doesn't start at the
-x-axis but rather on top of the previous element. This implies that
-there needs to be something to stack on. An invisible B<LINEx> or
-B<AREA> is something you can stack on, an unknown value is not!
+Plot a tick mark (a vertical line) for each value of I<vname> that is
+non-zero and not *UNKNOWN*. The I<fraction> argument specifies the
+length of the tick mark as a fraction of the y-axis; the default value
+is 0.1 (10% of the axis). Note that the color specification is not
+optional.
+
+=item B<SHIFT>B<:>I<vname>B<:>I<offset>
+
+Using this command B<RRDtool> will graph the following elements
+with the specified offset. For instance, you can specify an
+offset of S<( 7*24*60*60 = ) 604800 seconds> to "look back" one
+week. Make sure to notify the viewer you did so...
+As with the other graphing elements, you can specify a number or
+a variable here.
-Note: When you stack on something that was I<unknown>, the whole
-stack will be I<unknown> for that point in time. If the beginning
-is undefined, there's no way to end somewhere... If you want to
-graph this stacked variable anyway you need to make sure that the
-B<LINEx> or B<AREA> it gets stacked on is not unknown. Use a CDEF
-instruction with B<IF> and B<UN> to do so.
+=cut
-=item B<PART> : I<vname> B<#> I<rrggbbaa> [ B<:> I<legend> ]
+=item B<PART>B<:>I<vname>B<#>I<rrggbb>[I<aa>][B<:>I<legend>]
B<RRDtool> has now support for B<pie charts>. If you include the
B<PART> command, the canvas is extended to make room for a chart
function. It should return a number between 0 and 100, being a
percentage. Providing wrong input will produce undefined results.
-=item B<TICK> : I<vname> B<#> I<rrggbbaa> [ : I<fraction> [ : I<legend> ] ]
+=pod
-Plot a tick mark (a vertical line) for each value of I<vname> that is
-non-zero and not *UNKNOWN*. The I<fraction> argument specifies the
-length of the tick mark as a fraction of the y-axis; the default value
-is 0.1 (10% of the axis). Note that the color specification is not
-optional.
+=item B<STACK>B<:>I<vname>B<#>I<color>[B<:>I<legend>]
+
+I<Deprecated. Use the B<STACK> modifiers on the other commands.>
=back
-B<THE NEXT COMMAND IS NOT YET IMPLEMENTED>
+B<Some notes on stacking>
-=over 4
+When stacking, an element is not placed above the X-axis but rather
+on top of the previous element. There must be something to stack
+upon.
-=item B<SHIFT> : I<vname> , I<offset>
+An B<invisible> LINEx or AREA B<is> present and can be stacked upon.
-Using this command B<RRDtool> will graph the following elements
-with the specified offset. For instance, you can specify an
-offset of S<( 7*24*60*60 = ) 604800 seconds> to "look back" one
-week. Make sure to notify the viewer you did so...
-The offset will be valid until the next B<SHIFT> command, which
-can have an offset of zero to restore normal graphing.
-As with the other graphing elements, you can specify a number or
-a variable here.
+An B<unknown> value makes the entire stack unknown from that moment on.
+You don't know where to begin (the unknown value) and therefore do
+not know where to end.
-=back
+If you want to make sure you will be displaying a certain variable,
+make sure never to stack upon the unknown value. Use a CDEF instruction
+with B<IF> and B<UN> to do so.
+
+=head1 NOTES on legend arguments
+
+=head2 Escaping the colon
+
+In a ':' in a I<legend> argument will mark the end of the legend. To
+enter a ':' into a legend, the colon must be escaped with a backslash '\:'.
+Beware, that many environments look for backslashes themselves, so it may
+be necessary to write two backslashes so that one is passed onto rrd_graph.
+
+=head2 String Formatting
+
+The text printed below the actual graph can be formated by appending special
+escaped characters at the end of a text. When ever such a character occurs,
+all pending text is pushed onto the graph according to the character
+specified.
+
+Valid markers are: B<\j> for justified, B<\l> for left aligned, B<\r> for
+right aligned and B<\c> for centered. In the next section there is an
+example showing how to use centered formating.
+
+Normally there are two space characters inserted between every two items
+printed into the graph. The space following a string can be suppressed by
+putting a B<\g> at the end of the string. The B<\g> also ignores any space
+inside the string if it is at the very end of the string. This can be used
+in connection with B<%s> to suppress empty unit strings.
+
+ GPRINT:a:MAX:%lf%s\g
+
+A special case is COMMENT:B<\s> this inserts some additional vertical space
+before placing the next row of legends.
+
+If you are using the proportional font in your graph, you can use tab characters
+or the sequence B<\t> to lin-up legend elements. Note that the tabs inserted are
+relative to the start of the current legend element!
+
+=head1 SEE ALSO
+
+L<rrdgraph> gives an overview of how B<rrdtool graph> works.
+L<rrdgraph_data> describes B<DEF>,B<CDEF> and B<VDEF> in detail,
+L<rrdgraph_rpn> describes the B<RPN> language used in the B<?DEF> statements,
+L<rrdgraph_graph> page describes all of the graph and print functions.
+
+Make sure to read L<rrdgraph_examples> for tipsE<amp>tricks.
+
+=head1 AUTHOR
+
+Program by Tobias Oetiker E<lt>oetiker@ee.ethz.chE<gt>
-=include see_also
+This manual page by Alex van den Bogaerdt E<lt>alex@ergens.op.het.netE<gt>