Когда GraphPane содержит только одну серию CurveItem rime, все работает нормально, каждая новая точка добавляется в диаграмму и отображается без пробелов или пропущенных значений.
Затем я добавляю второй временной ряд в тот же GraphPane и точки данных в этих временных рядах поступают с разной частотой, поэтому они имеют разные значения по оси X, тип данных по оси X установлен на DateAsOrdinal
. В этот момент, когда я добавляю точки данных к каждому временному ряду, диаграмма, кажется, пытается синхронизировать точки данных в обоих временных рядах и заполнять разницу между точкой данных в первом временном ряду и точкой данных во втором с некоторыми средними промежуточными значениями.
Пример
var seriesA = new PointPairList();
var seriesB = new PointPairList();
var valuesA = new []
{
new PointPair { DateTime.Parse("2006-01-01", 5) },
new PointPair { DateTime.Parse("2006-01-02", 25) },
new PointPair { DateTime.Parse("2006-01-03", 15) },
new PointPair { DateTime.Parse("2006-01-04", 0) },
new PointPair { DateTime.Parse("2006-01-05", 10) }
};
for (var i = 0; i < 5; i++)
{
control.GraphPane.seriesA.Add(valuesA[i]);
}
// Until now, everything works fine, now I try to add one point to the second seriesB
control.GraphPane.seriesB.Add(new PointPair { DateTime.Parse("2006-02-05", 10) });
// At this moment, chart identifies that the average interval between dates is 1 day
// and try to populate missing spaces between seriesA (2006-01-05) and seriesB (2006-02-05)
// and automatically adds 30 more points to seriesA and 34 points to seriesB to make them equal
В конце я ожидаю, что seriesA
будет иметь 5 баллов, а seriesB
1 балл, но ZedGraph пытается обеспечить равное количество точек данных , что равно 35.
Вопрос
Как убедиться, что я вижу на графике только те точки, которые добавил я сам?
Настройки диаграммы
control.AutoScroll = true;
control.IsEnableHPan = true;
control.IsEnableVPan = true;
control.IsEnableHZoom = false;
control.IsEnableVZoom = false;
control.IsShowHScrollBar = false;
control.IsShowVScrollBar = false;
control.IsAutoScrollRange = true;
control.IsShowPointValues = true;
control.IsSynchronizeXAxes = true;
control.IsEnableWheelZoom = false;
control.IsZoomOnMouseCenter = false;
Настройки панели
area.XAxis.Title.Text = string.Empty;
area.XAxis.Type = AxisType.DateAsOrdinal;
area.XAxis.Scale.Format = "dd-MM-yyyy HH:mm";
area.XAxis.MajorGrid.IsVisible = true;
area.XAxis.Scale.MinAuto = false;
area.XAxis.Scale.MaxAuto = false;
area.YAxis.Title.Text = string.Empty;
area.YAxis.MajorGrid.IsVisible = true;
area.YAxis.Scale.MinAuto = true;
area.YAxis.Scale.MaxAuto = true;