1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| if (chartControlLine.InvokeRequired)
{
this.Invoke((MethodInvoker)delegate
{
//this.min = Math.Min(Math.Min(lower,dataReal.Values.ElementAt(0)),dataPredict.Values.ElementAt(0));
//this.max = Math.Max(Math.Max(lower, dataReal.Values.ElementAt(0)), dataPredict.Values.ElementAt(0));
////min max
//if (chartControlLine.ChartAreas[0].AxisY.Minimum != min - (int)((max - min) / 2))
//{
// chartInitialisation();
// chartControlLine.ChartAreas[0].AxisY.Minimum = min - (int)((max - min) / 2);
// chartControlLine.ChartAreas[0].AxisY.Maximum = max + (int)((max - min) / 2);
//}
List<SeriesPoint> pointLowerLimit = new List<DevExpress.XtraCharts.SeriesPoint>();
List<SeriesPoint> pointUpperLimit = new List<DevExpress.XtraCharts.SeriesPoint>();
List<SeriesPoint> pointPredict = new List<DevExpress.XtraCharts.SeriesPoint>();
List<SeriesPoint> pointReal = new List<DevExpress.XtraCharts.SeriesPoint>();
SwiftPlotDiagram diagram = chartControlLine.Diagram as SwiftPlotDiagram;
if (chartControlLine.Series[0].Points.Count == 0)
{
chartInitialisation();
if (diagram != null)
{
//diagram.AxisX.Range.Auto = false;
minDate = DateTime.Parse(dataPredict.Keys.ElementAt(0)).AddHours(-interval);
}
// pointUpperLimit = new List<DevExpress.XtraCharts.SeriesPoint>();
// for (int j = interval-1; j>= 0; j--)
// {
// pointUpperLimit.Add(new SeriesPoint(DateTime.Parse( dataPredict.Keys.ElementAt(i)).AddSeconds(-j), upper));
// pointPredict.Add(new SeriesPoint(DateTime.Parse(dataPredict.Keys.ElementAt(i)).AddSeconds(-j),
// dataPredict.Values.ElementAt(i)));
// pointReal.Add(new SeriesPoint(DateTime.Parse(dataReal.Keys.ElementAt(i)).AddSeconds(-j),
// dataReal.Values.ElementAt(i)));
// }
//}
//pointUpperLimit.Add(new SeriesPoint(dataPredict.Keys.ElementAt(i), upper));
//pointReal.Add(new SeriesPoint(dataPredict.Keys.ElementAt(i), dataReal[dataReal.Keys.ElementAt(i)]));
//pointPredict.Add(new SeriesPoint(dataPredict.Keys.ElementAt(i), dataPredict[dataPredict.Keys.ElementAt(i)]));
//chartControlLine.Series[predict].Points.AddRange(pointPredict.ToArray());
//chartControlLine.Series[real].Points.AddRange(pointReal.ToArray());
//chartControlLine.Series[upperLimit].Points.AddRange(pointUpperLimit.ToArray());
//if (!modelType.Equals("PCA"))
//{
// pointLowerLimit.Add(new SeriesPoint(dataPredict.Keys.ElementAt(i), lower));
// chartControlLine.Series[lowerLimit].Points.AddRange(pointLowerLimit.ToArray());
//}
//int pointToRemove = 0;
//foreach (SeriesPoint point in chartControlLine.Series[upperLimit].Points)
//{
// if (point.DateTimeArgument < minDate)
// {
// pointToRemove++;
// }
//}
//if (pointToRemove < chartControlLine.Series[upperLimit].Points.Count)
//{
// pointToRemove--;
//}
//if (pointToRemove > 0)
//{
// chartControlLine.Series[predict].Points.RemoveRange(0,pointToRemove);
// chartControlLine.Series[real].Points.RemoveRange(0, pointToRemove);
// chartControlLine.Series[upperLimit].Points.RemoveRange(0, pointToRemove);
// if (!modelType.Equals("PCA"))
// {
// chartControlLine.Series[lowerLimit].Points.RemoveRange(0, pointToRemove);
// }
}
//insertion des valeurs
chartControlLine.Series[predict].Points.Add(new SeriesPoint(dataPredict.Keys.ElementAt(i), dataPredict[dataPredict.Keys.ElementAt(i)]));
double axisYmin = (double)diagram.AxisY.Range.MinValue;
double axisYmax = (double)diagram.AxisY.Range.MaxValue;
chartControlLine.Series[upperLimit].Points.Add(new SeriesPoint(dataPredict.Keys.ElementAt(i), upper));
chartControlLine.Series[real].Points.Add(new SeriesPoint(dataPredict.Keys.ElementAt(i), dataReal[dataReal.Keys.ElementAt(i)]));
//transformation
addTransformationPoint(dataPredict.Keys.ElementAt(i), _transformationSigma, chartControlLine.Series[predict].Points.Count > 0 ?
chartControlLine.Series[predict].Points.Count - 1 : 0,
predict, _seriesTransformation);
//reajustement des min max X
if (chartControlLine.Series[upperLimit].Points.Count > interval)
{
//chartControlLine.ChartAreas[0].AxisX.Minimum = chartControlLine.Series[0].Points.Count - interval;
chartControlLine.Series[predict].Points.RemoveAt(0);
chartControlLine.Series[upperLimit].Points.RemoveAt(0);
chartControlLine.Series[real].Points.RemoveAt(0);
minDate = DateTime.Parse(chartControlLine.Series[upperLimit].Points[0].Argument);
diagram.AxisX.Range.SetMinMaxValues(minDate,
DateTime.Parse(chartControlLine.Series[upperLimit].Points[chartControlLine.Series[upperLimit].Points.Count - 1].Argument));
}
else
{
intervalAxis++;
diagram.AxisX.Range.SetMinMaxValues(minDate.AddHours(intervalAxis),
DateTime.Parse(chartControlLine.Series[upperLimit].Points[chartControlLine.Series[upperLimit].Points.Count - 1].Argument));
}
}); |
Partager