繁体   English   中英

绘制2个或更多序列时的MSChart x轴时间

[英]MSChart x-axis time when plotting 2 or more series

我正在从同一MSChart上的CSV文件中绘制多个系列的数据。 尽管两个系列的TimeString值可能不一致(一组点接一个的被收集),但是我得到的是两个图的数据重叠,图表上的时间戳来自上一个加载的系列。

我想找出如何用绝对时间显示每个系列的数据,因此在比较图表时每个系列的时间分量相对正确。 如果它们在时间上重叠,则XY图可能会重叠。 如果它们来自不同的时间段,则图应相邻。

这就是我将CSV数据读入DataTables的方式

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);
    }
}

我无法确认,但看不到您的数据。

这是一个示例,其中包含从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

重叠的时间

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM