FeatureVectorCalculatore bug fix : case when complete curve is below zero and fromZero == true

This commit is contained in:
Milan Hanajik 2022-01-20 13:16:33 +01:00
parent 5854a6e620
commit cfaf8e6a59

View File

@ -55,12 +55,42 @@ namespace FeatureVectorCalculator
// cl.ToPosition = Math.Log10(xs[j] / spacer); // cl.ToPosition = Math.Log10(xs[j] / spacer);
// chArea.AxisX.CustomLabels.Add(cl); // chArea.AxisX.CustomLabels.Add(cl);
// } // }
chArea.AxisY.Title = captionY; chArea.AxisY.Title = captionY;
chArea.AxisY.IsLogarithmic = false; chArea.AxisY.IsLogarithmic = false;
chArea.AxisY.IsLabelAutoFit = true; chArea.AxisY.IsLabelAutoFit = true;
chArea.AxisY.IsStartedFromZero = fromZero;
chArea.AxisY.Minimum = chArea.AxisY.IsStartedFromZero ? 0 : minY; if (!fromZero)
chArea.AxisY.Maximum = 1.1 * maxY; {
/// fromZero = false
chArea.AxisY.IsStartedFromZero = false;
float diff = maxY - minY;
chArea.AxisY.Minimum = minY - 0.05 * diff;
chArea.AxisY.Maximum = maxY + 0.05 * diff;
}
else if (minY >= 0)
{
/// fromZero = true, All points are above zero
chArea.AxisY.IsStartedFromZero = true;
chArea.AxisY.Minimum = 0;
chArea.AxisY.Maximum = 1.05 * maxY;
}
else if (maxY <= 0)
{
/// fromZero = true, All points are below zero
chArea.AxisY.IsStartedFromZero = true;
chArea.AxisY.Minimum = 1.05 * minY;
chArea.AxisY.Maximum = 0;
}
else
{
/// Points are both below and above zero
chArea.AxisY.IsStartedFromZero = false;
float diff = maxY - minY;
chArea.AxisY.Minimum = minY - 0.05 * diff;
chArea.AxisY.Maximum = maxY + 0.05 * diff;
}
if (chArea.AxisY.Maximum == chArea.AxisY.Minimum) if (chArea.AxisY.Maximum == chArea.AxisY.Minimum)
{ {
chArea.AxisY.Maximum = chArea.AxisY.Maximum + 1; chArea.AxisY.Maximum = chArea.AxisY.Maximum + 1;