/// <summary> /// Returns a y-axis that is suitable for drawing this plot. /// </summary> /// <returns>A suitable y-axis.</returns> public Axis SuggestYAxis() { if (IsStacked) { double tmpMax = 0.0f; ArrayList adapterList = new ArrayList(); HistogramPlot currentPlot = this; do { adapterList.Add(new SequenceAdapter( currentPlot.DataSource, currentPlot.DataMember, currentPlot.OrdinateData, currentPlot.AbscissaData) ); } while ((currentPlot = currentPlot.stackedTo) != null); SequenceAdapter[] adapters = (SequenceAdapter[])adapterList.ToArray(typeof(SequenceAdapter)); for (int i = 0; i < adapters[0].Count; ++i) { double tmpHeight = 0.0f; for (int j = 0; j < adapters.Length; ++j) { tmpHeight += adapters[j][i].Y; } tmpMax = Math.Max(tmpMax, tmpHeight); } Axis a = new LinearAxis(0.0, tmpMax); // TODO make 0.08 a parameter. a.IncreaseRange(0.08); return(a); } else { SequenceAdapter data = new SequenceAdapter(DataSource, DataMember, OrdinateData, AbscissaData); return(data.SuggestYAxis()); } }
/// <summary> /// Returns a y-axis that is suitable for drawing the data. /// </summary> /// <returns>A suitable y-axis.</returns> public Axis SuggestYAxis() { double min_l; double max_l; double min_h; double max_h; if (rows_ == null) { Utils.ArrayMinMax((System.Collections.IList)lowData_, out min_l, out max_l); Utils.ArrayMinMax((System.Collections.IList)highData_, out min_h, out max_h); } else { Utils.RowArrayMinMax(rows_, out min_l, out max_l, (string)lowData_); Utils.RowArrayMinMax(rows_, out min_h, out max_h, (string)highData_); } Axis a = new LinearAxis(min_l, max_h); a.IncreaseRange(0.08); return(a); }
/// <summary> /// Returns a y-axis that is suitable for drawing the data. /// </summary> /// <returns>A suitable y-axis.</returns> public Axis SuggestYAxis() { double min_l; double max_l; double min_h; double max_h; if (rows_ == null) { Utils.ArrayMinMax ((System.Collections.IList)lowData_, out min_l, out max_l); Utils.ArrayMinMax ((System.Collections.IList)highData_, out min_h, out max_h); } else { Utils.RowArrayMinMax (rows_, out min_l, out max_l, (string)lowData_); Utils.RowArrayMinMax (rows_, out min_h, out max_h, (string)highData_); } Axis a = new LinearAxis (min_l, max_h); a.IncreaseRange (0.08); return a; }
/// <summary> /// Returns a y-axis that is suitable for drawing this plot. /// </summary> /// <returns>A suitable y-axis.</returns> public Axis SuggestYAxis() { if (IsStacked) { double tmpMax = 0.0f; ArrayList adapterList = new ArrayList(); HistogramPlot currentPlot = this; do { adapterList.Add (new SequenceAdapter ( currentPlot.DataSource, currentPlot.DataMember, currentPlot.OrdinateData, currentPlot.AbscissaData) ); } while ((currentPlot = currentPlot.stackedTo) != null); SequenceAdapter[] adapters = (SequenceAdapter[])adapterList.ToArray (typeof(SequenceAdapter)); for (int i=0; i<adapters[0].Count; ++i) { double tmpHeight = 0.0f; for (int j=0; j<adapters.Length; ++j) { tmpHeight += adapters[j][i].Y; } tmpMax = Math.Max (tmpMax, tmpHeight); } Axis a = new LinearAxis (0.0,tmpMax); // TODO make 0.08 a parameter. a.IncreaseRange (0.08); return a; } else { SequenceAdapter data = new SequenceAdapter (DataSource, DataMember, OrdinateData, AbscissaData); return data.SuggestYAxis(); } }