Example #1
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="Graph.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);
            this._curveList.Add(curve);

            return curve;
        }
Example #2
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(this._color, this._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]);
                        }
                    }
                }
            }
        }
Example #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="Graph.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);
            this._curveList.Add(curve);

            return curve;
        }
Example #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ErrorBarItem"/> class. 
 /// The Copy Constructor
 /// </summary>
 /// <param name="rhs">
 /// The <see cref="ErrorBarItem"/> object from which to copy
 /// </param>
 public ErrorBarItem(ErrorBarItem rhs)
     : base(rhs)
 {
     this._bar = new ErrorBar(rhs.Bar);
 }