예제 #1
0
        /// <summary>
        /// Draw all the <see cref="ErrorBar"/>'s to the specified <see cref="Graphics"/>
        /// device as a an error bar at each defined point.
        /// </summary>
        /// <param name="g">
        /// A graphic device object to be drawn into.  This is normally e.Graphics from the
        /// PaintEventArgs argument to the Paint() method.
        /// </param>
        /// <param name="pane">
        /// A reference to the <see cref="GraphPane"/> object that is the parent or
        /// owner of this object.
        /// </param>
        /// <param name="curve">A <see cref="CurveItem"/> object representing the
        /// <see cref="Bar"/>'s to be drawn.</param>
        /// <param name="baseAxis">The <see cref="Axis"/> class instance that defines the base (independent)
        /// axis for the <see cref="Bar"/></param>
        /// <param name="valueAxis">The <see cref="Axis"/> class instance that defines the value (dependent)
        /// axis for the <see cref="Bar"/></param>
        /// <param name="scaleFactor">
        /// The scaling factor to be used for rendering objects.  This is calculated and
        /// passed down by the parent <see cref="GraphPane"/> object using the
        /// <see cref="PaneBase.CalcScaleFactor"/> method, and is used to proportionally adjust
        /// font sizes, etc. according to the actual size of the graph.
        /// </param>
        public void Draw( Graphics g, GraphPane pane, ErrorBarItem curve,
							Axis baseAxis, Axis valueAxis, float scaleFactor )
        {
            ValueHandler valueHandler = new ValueHandler( pane, false );

            float	pixBase, pixValue, pixLowValue;
            double	scaleBase, scaleValue, scaleLowValue;

            if ( curve.Points != null && this.IsVisible )
            {
                using ( Pen pen = !curve.IsSelected ? new Pen( _color, _penWidth ) :
                        new Pen( Selection.Border.Color, Selection.Border.Width ) )
                {
                    // Loop over each defined point
                    for ( int i = 0; i < curve.Points.Count; i++ )
                    {
                        valueHandler.GetValues( curve, i, out scaleBase,
                                    out scaleLowValue, out scaleValue );

                        // Any value set to double max is invalid and should be skipped
                        // This is used for calculated values that are out of range, divide
                        //   by zero, etc.
                        // Also, any value <= zero on a log scale is invalid

                        if ( !curve.Points[i].IsInvalid3D &&
                                ( scaleBase > 0 || !baseAxis._scale.IsLog ) &&
                                ( ( scaleValue > 0 && scaleLowValue > 0 ) || !valueAxis._scale.IsLog ) )
                        {
                            pixBase = baseAxis.Scale.Transform( curve.IsOverrideOrdinal, i, scaleBase );
                            pixValue = valueAxis.Scale.Transform( curve.IsOverrideOrdinal, i, scaleValue );
                            pixLowValue = valueAxis.Scale.Transform( curve.IsOverrideOrdinal, i, scaleLowValue );

                            //if ( this.fill.IsGradientValueType )
                            //	brush = fill.MakeBrush( _rect, _points[i] );

                            this.Draw( g, pane, baseAxis is XAxis || baseAxis is X2Axis, pixBase, pixValue,
                                            pixLowValue, scaleFactor, pen, curve.IsSelected,
                                            curve.Points[i] );
                        }
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Add an error bar set (<see cref="ErrorBarItem"/> object) to the plot with
        /// the given data points (<see cref="IPointList"/>) and properties.
        /// This is simplified way to add curves without knowledge of the
        /// <see cref="CurveList"/> class.  An alternative is to use
        /// the <see cref="ZeeGraph.CurveList" /> Add() method.
        /// </summary>
        /// <param name="label">The text label (string) for the curve that will be
        /// used as a <see cref="Legend"/> entry.</param>
        /// <param name="x">An array of double precision X values (the
        /// independent values) that define the curve.</param>
        /// <param name="y">An array of double precision Y values (the
        /// dependent values) that define the curve.</param>
        /// <param name="baseValue">An array of double precision values that define the
        /// base value (the bottom) of the bars for this curve.
        /// </param>
        /// <param name="color">The color to used for the curve line,
        /// symbols, etc.</param>
        /// <returns>An <see cref="ErrorBarItem"/> class for the newly created curve.
        /// This can then be used to access all of the curve properties that
        /// are not defined as arguments to the
        /// <see cref="AddErrorBar(string,IPointList,Color)"/> method.</returns>
        public ErrorBarItem AddErrorBar( string label, double[] x, double[] y,
			double[] baseValue, Color color )
        {
            ErrorBarItem curve = new ErrorBarItem( label, new PointPairList( x, y, baseValue ),
                color );
            _curveList.Add( curve );

            return curve;
        }
예제 #3
0
        /// <summary>
        /// Add an error bar set (<see cref="ErrorBarItem"/> object) to the plot with
        /// the given data points (<see cref="IPointList"/>) and properties.
        /// This is simplified way to add curves without knowledge of the
        /// <see cref="CurveList"/> class.  An alternative is to use
        /// the <see cref="ZeeGraph.CurveList" /> Add() method.
        /// </summary>
        /// <param name="label">The text label (string) for the curve that will be
        /// used as a <see cref="Legend"/> entry.</param>
        /// <param name="points">A <see cref="IPointList"/> of double precision value pairs that define
        /// the X and Y values for this curve</param>
        /// <param name="color">The color to used for the curve line,
        /// symbols, etc.</param>
        /// <returns>An <see cref="ErrorBarItem"/> class for the newly created curve.
        /// This can then be used to access all of the curve properties that
        /// are not defined as arguments to the
        /// <see cref="AddErrorBar(string,IPointList,Color)"/> method.</returns>
        public ErrorBarItem AddErrorBar( string label, IPointList points, Color color )
        {
            ErrorBarItem curve = new ErrorBarItem( label, points, color );
            _curveList.Add( curve );

            return curve;
        }
예제 #4
0
 /// <summary>
 /// The Copy Constructor
 /// </summary>
 /// <param name="rhs">The <see cref="ErrorBarItem"/> object from which to copy</param>
 public ErrorBarItem( ErrorBarItem rhs )
     : base(rhs)
 {
     _bar = new ErrorBar( rhs.Bar );
 }