S<[B<-e>|B<--end> I<seconds>]>
S<[B<-x>|B<--x-grid> I<x-axis grid and label>]>
S<[B<-y>|B<--y-grid> I<y-axis grid and label>]>
S<[B<-e>|B<--end> I<seconds>]>
S<[B<-x>|B<--x-grid> I<x-axis grid and label>]>
S<[B<-y>|B<--y-grid> I<y-axis grid and label>]>
S<[B<-X>|B<--units-exponent>]> I<value>]>
S<[B<-v>|B<--vertical-label> I<text>]>
S<[B<-w>|B<--width> I<pixels>]>
S<[B<-X>|B<--units-exponent>]> I<value>]>
S<[B<-v>|B<--vertical-label> I<text>]>
S<[B<-w>|B<--width> I<pixels>]>
-S<[B<-h>|B<--height> I<pixels>]>
-S<[B<-i>|B<--interlaced>]>
-S<[B<-f>|B<--imginfo> I<formatstring>]>
-S<[B<-a>|B<--imgformat> B<SVG>|B<PNG>]>
-S<[B<-z>|B<--lazy>]>
+S<[B<-h>|B<--height> I<pixels>]>
+S<[B<-i>|B<--interlaced>]>
+S<[B<-f>|B<--imginfo> I<formatstring>]>
+S<[B<-a>|B<--imgformat> B<SVG>|B<PNG>]>
+S<[B<-z>|B<--lazy>]>
If the I<filename> is set to '-' the image file will be written
to standard out. All other output will get suppressed.
If the I<filename> is set to '-' the image file will be written
to standard out. All other output will get suppressed.
Place Y grid dynamically based on graph Y range. Algorithm ensures
that you always have grid, that there are enough but not too many
Place Y grid dynamically based on graph Y range. Algorithm ensures
that you always have grid, that there are enough but not too many
-Compute Y range based on function absolute minimum and
-maximum values. Default algorithm uses predefined set of ranges.
+Compute Y range based on function absolute minimum and
+maximum values. Default algorithm uses predefined set of ranges.
will use Y range from 250 to 300 and on the graph you will see
almost straight line. With --alt-autoscale Y range will be
from slightly less the 260 - 0.001 to slightly more then 260 + 0.001
will use Y range from 250 to 300 and on the graph you will see
almost straight line. With --alt-autoscale Y range will be
from slightly less the 260 - 0.001 to slightly more then 260 + 0.001
value, if not defined on the command line, will be 0. This option can
be useful when graphing router traffic when the WAN line uses compression,
and thus the throughput may be higher than the WAN line speed.
value, if not defined on the command line, will be 0. This option can
be useful when graphing router traffic when the WAN line uses compression,
and thus the throughput may be higher than the WAN line speed.
Defines the value normally located at the upper border of the
graph. If the graph contains higher values, the upper border will
Defines the value normally located at the upper border of the
graph. If the graph contains higher values, the upper border will
If you want to define an upper-limit which will not move in any
event you have to set the B<--rigid> option as well.
If you want to define an upper-limit which will not move in any
event you have to set the B<--rigid> option as well.
tries to get data at that resolution from the RRD. With this switch you can
override this behaviour. If you want rrdgraph to get data at 1 hour
resolution from the RRD, then you can set the step to 3600 seconds. Note,
tries to get data at that resolution from the RRD. With this switch you can
override this behaviour. If you want rrdgraph to get data at 1 hour
resolution from the RRD, then you can set the step to 3600 seconds. Note,
Create a new virtual data source by evaluating a mathematical expression,
specified in Reverse Polish Notation (RPN). If you have ever used a traditional
Create a new virtual data source by evaluating a mathematical expression,
specified in Reverse Polish Notation (RPN). If you have ever used a traditional
that you have a stack and push your data onto this stack. When ever
you execute an operation, it takes as many data values from the stack
as needed. The pushing of data is implicit, so when ever you specify a number
that you have a stack and push your data onto this stack. When ever
you execute an operation, it takes as many data values from the stack
as needed. The pushing of data is implicit, so when ever you specify a number
If this is all a big load of incomprehensible words for you, maybe an
example helps (a more complete explanation is given in [1]): The
If this is all a big load of incomprehensible words for you, maybe an
example helps (a more complete explanation is given in [1]): The
The I<rpn-expression> in the B<CDEF> function takes both, constant values
as well as I<vname> variables. The following operators can be used on these
The I<rpn-expression> in the B<CDEF> function takes both, constant values
as well as I<vname> variables. The following operators can be used on these
-Pushes the number 1 if it is at the first value of the data set, the
-number 2 if it is at the second, and so on. This special value, allows
-you to make calculations based on the position of the value within
+Pushes the number 1 if it is at the first value of the data set, the
+number 2 if it is at the second, and so on. This special value, allows
+you to make calculations based on the position of the value within
=item B<LINE>{B<1>|B<2>|B<3>}B<:>I<vname>[B<#>I<rrggbb>[B<:>I<legend>]]
Plot for the requested data, using the color specified. Write a legend
=item B<LINE>{B<1>|B<2>|B<3>}B<:>I<vname>[B<#>I<rrggbb>[B<:>I<legend>]]
Plot for the requested data, using the color specified. Write a legend
-into the graph. The 3 possible keywords B<LINE1>, B<LINE2>, and B<LINE3>
-generate increasingly wide lines. If no color is defined,
-the drawing is done 'blind' this is useful in connection with the
-B<STACK> function when you want to ADD the values of two
+into the graph. The 3 possible keywords B<LINE1>, B<LINE2>, and B<LINE3>
+generate increasingly wide lines. If no color is defined,
+the drawing is done 'blind' this is useful in connection with the
+B<STACK> function when you want to ADD the values of two
the graph will be filled with the color specified.
=item B<STACK>:I<vname>[B<#>I<rrggbb>[B<:>I<legend>]]
the graph will be filled with the color specified.
=item B<STACK>:I<vname>[B<#>I<rrggbb>[B<:>I<legend>]]
previous graph, the B<STACK> will be either a B<LINE?> or an B<AREA>.
This obviously implies that the first B<STACK> must be preceded by an
B<AREA> or B<LINE?> -- you need something to stack something onto in
previous graph, the B<STACK> will be either a B<LINE?> or an B<AREA>.
This obviously implies that the first B<STACK> must be preceded by an
B<AREA> or B<LINE?> -- you need something to stack something onto in
any graphics ... *UNKNOWN* is not zero ... if you want it to be zero
then you might want to use a CDEF argument with IF and UN functions to
turn *UNKNOWN* into zero ...
any graphics ... *UNKNOWN* is not zero ... if you want it to be zero
then you might want to use a CDEF argument with IF and UN functions to
turn *UNKNOWN* into zero ...
Normally there are two space characters inserted between every two items
printed into the graph. The space following a string can be suppressed by
Normally there are two space characters inserted between every two items
printed into the graph. The space following a string can be suppressed by
=head1 NOTE on Return Values
Whenever rrd_graph gets called, it prints a line telling the size of
=head1 NOTE on Return Values
Whenever rrd_graph gets called, it prints a line telling the size of
CDEF:aggoutput=odat1,UN,0,odat1,IF,odat2,UN,0,odat2,IF,+,8,* \
AREA:agginput#00cc00:Input Aggregate \
LINE1:agginput#0000FF:Output Aggregate
CDEF:aggoutput=odat1,UN,0,odat1,IF,odat2,UN,0,odat2,IF,+,8,* \
AREA:agginput#00cc00:Input Aggregate \
LINE1:agginput#0000FF:Output Aggregate
leaves us with a stack with contents of 1,0,NaN and the IF function
will pop off the 3 values and replace them with 0. If idat1 had a
real value like 7942099, then the stack would have 0,0,7942099 and the
leaves us with a stack with contents of 1,0,NaN and the IF function
will pop off the 3 values and replace them with 0. If idat1 had a
real value like 7942099, then the stack would have 0,0,7942099 and the
to signal any unknown data.
Note that this example assumes that your data is in the positive half of the y-axis
to signal any unknown data.
Note that this example assumes that your data is in the positive half of the y-axis
-otherwhise you would would have to add NEGINF in order to extend the coverage
-of the rea to whole graph.
+otherwise you would would have to add NEGINF in order to extend the coverage
+of the area to whole graph.