started updating for 1.2 release
[rrdtool.git] / doc / rrdgraph_graph.src
index 46a5152..83ccae5 100644 (file)
@@ -1,27 +1,54 @@
 =include name
 
-=head1 SYNOPSYS
+=head1 SYNOPSIS
 
-I<(to be) Depriciated commands>
+=over 4
+
+=item B<old-style commands, for compatibility>
+
+=over 4
+
+=item B<PRINT> : I<vname> : I<CF> : I<format>
+
+=item B<GPRINT> : I<vname> : I<CF> : I<format>
+
+=item B<HRULE> : I<value> # I<color> [ :I<legend> ]
+
+=item B<STACK> : I<vname> # I<color> [ :I<legend> ]
+
+=back
+
+Z<>
+
+=item B<available commands>
+
+=over 8
 
-[B<PRINT:>I<vname>B<:>I<CF>B<:>I<format>]
-[B<GPRINT:>I<vname>B<:>I<CF>B<:>I<format>]
-[B<HRULE:>I<value>B<#>I<rrggbbaa>[B<:>I<legend>]]
-[B<STACK:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]]]
+=item B<PRINT> : I<vname> : I<format>
 
-I<(soon) available commands>
+=item B<GPRINT> : I<vname> : I<format>
 
-[B<PRINT:>I<vname>B<:>I<format>]
-[B<GPRINT:>I<vname>B<:>I<format>]
-[B<COMMENT:>I<text>]
-[B<VRULE:>I<vname>B<#>I<rrggbbaa>[B<:>I<legend>]]
-[B<LINE>{I<width>}B<:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]]][B<:STACK>]
-[B<AREA:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]]][B<:STACK>]
+=item B<COMMENT> : I<text>
 
-I<to be implemented commands>
+=item B<VRULE> : I<vname> # I<color> [ : I<legend> ]
 
-[B<SHIFT:>I<vname>]
-[B<PART:>I<vname>B<#>I<rrggbbaa>[B<:>I<legend>]]
+=item B<LINE>{I<width>} : I<vname> # I<color> [ : I<legend> ] [ C<:STACK> ]
+
+=item B<AREA> C<:> I<vname> C<#> I<color> [ C<:> I<legend> ] [ C<:STACK> ]
+
+=cut
+
+# =item B<PART> : I<vname> B<#> I<rrggbbaa> [ B<:> I<legend> ]
+
+=pod
+
+=item B<TICK> : I<vname> B<#> I<rrggbbaa> [ : I<fraction> [ : I<legend> ] ]
+
+=item B<SHIFT> : I<vname> , I<offset>
+
+=back
+
+=back
 
 =head1 DESCRIPTION
 
@@ -31,12 +58,14 @@ Similarly no report is generated if you don't use print options.
 
 =head1 PRINT
 
-B<PRINT:>I<vname>B<:>I<CF>B<:>I<format>
+=over 4
+
+=item B<PRINT> : I<vname> : I<CF> : I<format>
 
-I<Depriciated. Use the new form of this command in new scripts.>
+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.
 
-B<PRINT:>I<vname>B<:>I<format>
+=item B<PRINT> : I<vname> : 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
@@ -56,15 +85,16 @@ B<%%> just prints a literal '%' character
 
 =item *
 
-B<%#.#le> (where # is an optional number) prints like 1.2346e+04
+B<%#.#le> prints like 1.2346e+04. Optional numbers # are field width and
+decimal precision
 
 =item *
 
-B<%#.#lf> prints like 12345.6789
+B<%#.#lf> prints like 12345.6789, with optional field width and precision
 
 =item *
 
-B<%s> place this after B<%le> or B<%lf>.  This will be replaced by the
+B<%s> place this after B<%le>, B<%lf> or B<%lg>. This will be replaced by the
 appropriate SI magnitude unit and the value will be scaled
 accordingly (123456 -> 123.456 k)
 
@@ -116,8 +146,8 @@ B<%c, %x, %X> date+time, date, time
 
 =item *
 
-B<%U, %W> week number of the current year with either the first sunday or
-the first monday determining the first week
+B<%U, %W> week number of the current year with either the first Sunday or
+the first Monday determining the first week
 
 =item *
 
@@ -125,32 +155,30 @@ B<%Z> time zone
 
 =back
 
+=back
+
 =head1 GRAPH
 
-B<GPRINT:>I<vname>B<:>I<CF>B<:>I<format>
+=over 4
+
+=item B<GPRINT> : I<vname> : I<CF> : I<format>
 
-I<Depriciated. Use the new form of this command in new scripts.>
-This is the same as B<PRINT> but now it is printed inside the graph.
-See L<PRINT> for more information.
+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.
 
-B<GPRINT:>I<vname>B<:>I<format>
+=item B<GPRINT> : I<vname> : I<format>
 
-This is the same as B<PRINT> but now it is printed inside the graph.
-See L<PRINT> for more information.
+This is the same as C<PRINT> but now it is printed inside the graph.
 
-B<COMMENT:>I<text>
+=item B<COMMENT> : I<text>
 
 Text is printed literally in the legend section of the graph
 
-B<HRULE:>I<value>B<#>I<rrggbbaa>[B<:>I<legend>]
+=item B<HRULE> : I<value> # 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.>
 
-B<VRULE:>I<time>B<#>I<rrggbbaa>[B<:>I<legend>]
+=item B<VRULE> : I<vname> # I<color> [ : 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
@@ -158,7 +186,8 @@ maximum) red, green and blue.  Optionally a legend box and string 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.
 
-B<LINE>{I<width>}B<:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]][B<:STACK>]
+=item B<LINE>{I<width>} : I<{vname or number}> # I<color> [ : 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
@@ -169,53 +198,100 @@ B<CDEF>.  If the optional B<STACK> modifier is used, this line is
 stacked on top of the previous element which can be a B<LINEx> or
 an B<AREA>
 
-B<AREA:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]][B<:STACK>]
+=item B<AREA> C<:> I<vname> C<#> I<color> [ C<:> I<legend> ] [ C<:STACK> ]
 
-See B<LINEx>, however the area between the x-axis and the line will
+See B<LINE>, however the area between the x-axis and the line will
 also be filled.
 
-B<STACK:>I<vname>[B<#>I<rrggbbaa>[B<:>I<legend>]]
-
-I<Depriciated.  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!
-
-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.
+=item B<TICK> : I<vname> B<#> I<rrggbbaa> [ : I<fraction> [ : I<legend> ] ]
 
-B<THE NEXT STUFF IS NOT YET IMPLEMENTED>
+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.
 
-B<SHIFT:>I<offset in seconds>
+=item B<SHIFT> : I<vname> : 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...
-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 grapher elements, you can specify a number or
+As with the other graphing elements, you can specify a number or
 a variable here.
 
-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
-(or, if no other graph elements are used, the canvas is solely
-used for the pie chart). The size of the canvas is determined by
-the lesser of L<width and height|rrdgraph/item_Size>.
+=cut
+
+#=item B<PART> : I<vname> B<#> I<rrggbbaa> [ 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
+#The size of the canvas is determined by the lesser of
+#L<width and height|rrdgraph/item_Size>.
+#
+#Pie parts will be concatenated, the first one will start at the
+#top and parts will be created clockwise.  The size of the part
+#is defined by the value part of the L<VDEF|rrdgraph_data/VDEF>
+#function.  It should return a number between 0 and 100, being a
+#percentage.  Providing wrong input will produce undefined results.
+
+=pod
+
+=item B<STACK> : I<vname> # I<color> [ :I<legend> ]
+
+I<Deprecated.  Use the B<STACK> modifiers on the other commands.>
+
+=back
+
+B<Some notes on stacking>
+
+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.
+
+An B<invisible> LINEx or AREA B<is> present and can be stacked upon.  
+
+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.
+
+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
 
-B<PART:>I<vname>B<#>I<rrggbbaa>[B<:>I<legend>]
+A special case is COMMENT:B<\s> this inserts some additional vertical space
+before placing the next row of legends.
 
-Draw a part of pie. Pie parts will be concatenated, the first one
-will start at the top and parts will be created clockwise.
-The size of the part is defined by the value part of
-the L<VDEF|rrdgraph_data/VDEF> function.  It should return
-a number between 0 and 100, being a percentage.
-Providing wrong input will produce undefined results.
+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!
 
 =include see_also