Время по оси X MSChart при построении 2 или более рядов

Я рисую несколько серий данных из файлов CSV на одном и том же MSChart. Хотя значения TimeString для двух рядов могут не совпадать (одна группа точек собиралась за другой), я получаю данные для обоих графиков с наложением, а отметка времени на диаграмме исходит из последней загруженной серии.

Я хочу выяснить, как отображать каждую серию данных с абсолютным временем, чтобы компоненты времени из каждой серии были относительно правильными при сравнении графиков. Если они перекрываются во времени, графики XY могут перекрываться. Если они относятся к разным периодам времени, участки должны быть смежными.

Вот как я читаю данные CSV в свои таблицы данных.

DataTable[] seriesData;
...
private void BindData(int pen, string fname)
{
    try
    {
        if (System.IO.File.Exists(fname))
        {
            seriesData[pen - 1] = GetDataTable(fname);
            DataTableReader myReader = seriesData[pen - 1].CreateDataReader();
            chart1.Series[pen - 1].Points.DataBindXY(myReader, "TimeString", myReader, "VarValue");
            chart1.Series[pen - 1].ChartType = SeriesChartType.Line;
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Exception: " + ex.Message);
    }
}

person Lindsey    schedule 04.12.2014    source источник


Ответы (1)


Я не могу это подтвердить, но я не вижу ваших данных.

Вот пример с простыми тестовыми данными, взятыми из Random объекта R, и его результатом:

Series S1 = chart1.Series[0];
Series S2 = chart1.Series[1];
S1.ChartType = SeriesChartType.Line;
S2.ChartType = SeriesChartType.Line;
S1.Color = Color.Red;
S2.Color = Color.Green;
S1.XValueType = ChartValueType.Time;
S2.XValueType = ChartValueType.Time;

for (int d = 100; d < 200; d++)
{
    DateTime dt = DateTime.Now.AddMinutes(d);
    S1.Points.AddXY(dt, 100 + R.Next(100));
}
for (int d = 150; d < 300; d++)
{
    DateTime dt = DateTime.Now.AddMinutes(d);
    S2.Points.AddXY(dt, 200 + R.Next(100));
}

Как вы устанавливаете XValueType ?

перекрывающиеся времена

person TaW    schedule 04.12.2014