我正在同一个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);
}
}
答案 0 :(得分:0)
我无法确认这一点,但我看不到您的数据。
以下是一个示例,其中包含从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
?