summaryrefslogtreecommitdiff
path: root/grapher/Models/Charts/ChartXY.cs
diff options
context:
space:
mode:
Diffstat (limited to 'grapher/Models/Charts/ChartXY.cs')
-rw-r--r--grapher/Models/Charts/ChartXY.cs33
1 files changed, 19 insertions, 14 deletions
diff --git a/grapher/Models/Charts/ChartXY.cs b/grapher/Models/Charts/ChartXY.cs
index 98ba059..553ab3e 100644
--- a/grapher/Models/Charts/ChartXY.cs
+++ b/grapher/Models/Charts/ChartXY.cs
@@ -1,4 +1,5 @@
using grapher.Models.Mouse;
+using System;
using System.Collections;
using System.Windows.Forms.DataVisualization.Charting;
@@ -29,6 +30,8 @@ namespace grapher
#endregion Constructors
+ private const double VerticalMargin = 0.1;
+
#region Properties
public Chart ChartX { get; }
@@ -219,28 +222,30 @@ namespace grapher
ChartX.Series[2].IsVisibleInLegend = true;
}
- public void SetMinMax(double min, double max)
+ private void VerifyRange(double min, double max)
{
- if (min < max)
+ if (min > max)
{
- ChartX.ChartAreas[0].AxisY.Minimum = min * 0.95;
- ChartX.ChartAreas[0].AxisY.Maximum = max * 1.05;
+ throw new ArgumentException($"invalid chart range: ({min}, {max})");
}
}
+ public void SetMinMax(double min, double max)
+ {
+ VerifyRange(min, max);
+ ChartX.ChartAreas[0].AxisY.Minimum = min * (1 - VerticalMargin);
+ ChartX.ChartAreas[0].AxisY.Maximum = max * (1 + VerticalMargin);
+ }
+
public void SetMinMaxXY(double minX, double maxX, double minY, double maxY)
{
- if (minX < maxX)
- {
- ChartX.ChartAreas[0].AxisY.Minimum = minX * 0.95;
- ChartX.ChartAreas[0].AxisY.Maximum = maxX * 1.05;
- }
+ VerifyRange(minX, maxX);
+ ChartX.ChartAreas[0].AxisY.Minimum = minX * (1 - VerticalMargin);
+ ChartX.ChartAreas[0].AxisY.Maximum = maxX * (1 + VerticalMargin);
- if (minY < maxY)
- {
- ChartY.ChartAreas[0].AxisY.Minimum = minY * 0.95;
- ChartY.ChartAreas[0].AxisY.Maximum = maxY * 1.05;
- }
+ VerifyRange(minY, maxY);
+ ChartX.ChartAreas[0].AxisY.Minimum = minY * (1 - VerticalMargin);
+ ChartX.ChartAreas[0].AxisY.Maximum = maxY * (1 + VerticalMargin);
}
public void SetCombined()