Desteğiniz için çok teşekkürr ederim. Söylediğiniz yöntemide denedim. Ancak sorun çözülmedi. Bende aşağıdaki gibi bir çözüm buldum. sizlerinde bilginiz olması amacıyla paylaşmak istemedim.
// Aşağı taraf bütün serileri hizalandırmak amacıyla yapılmıştır.
var allValues = lineChart.Series.SelectMany(s => s.Points)
.Select(x => x.XValue).Distinct().ToList();
foreach (Series series in lineChart.Series)
{
int px = 0; //insertion index
foreach (double d in allValues)
{
var p = series.Points.FirstOrDefault(x => x.XValue == d);
if (p == null) // this value is missing
{
DataPoint dp = new DataPoint(d, double.NaN);
dp.IsEmpty = true;
series.Points.Insert(px, dp);
}
px++;
}
}
Tam kod aşağıdaki gibidir.
private void UpdatelineChartValue()
{
try
{
lineChart.Series["PET1"].Points.AddXY(DateTime.Now.ToOADate(), _Pet1Values.LineSpeed);
lineChart.Series["PET2"].Points.AddXY(DateTime.Now.ToOADate(), _Pet2Values.LineSpeed);
lineChart.Series["CAN"].Points.AddXY(DateTime.Now.ToOADate(), _CanValues.LineSpeed);
//lineChart.DataManipulator.InsertEmptyPoints(1, IntervalType.Number, "PET1, PET2, CAN");
//=============================================================================================
// Aşağı taraf bütün serileri hizalandırmak amacıyla yapılmıştır.
var allValues = lineChart.Series.SelectMany(s => s.Points)
.Select(x => x.XValue).Distinct().ToList();
foreach (Series series in lineChart.Series)
{
int px = 0; //insertion index
foreach (double d in allValues)
{
var p = series.Points.FirstOrDefault(x => x.XValue == d);
if (p == null) // this value is missing
{
DataPoint dp = new DataPoint(d, double.NaN);
dp.IsEmpty = true;
series.Points.Insert(px, dp);
}
px++;
}
}
//=============================================================================================
maksimum++;
for (int i = 0; i < lineChart.ChartAreas.Count; i++)
{
lineChart.ChartAreas.AxisX.ScaleView.Zoom(maksimum - 25, maksimum); // ÖNEMLİ
}
Update();
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message);
}
}