C#图表:如何绘制随时间变化的曲线图
到目前为止,我已经用下面的代码成功地绘制了一个图表,但我希望它能够随着时间的推移绘制和连接数据点,而不是一次绘制和连接所有数据点。例如,我可能希望总共需要60秒来绘制所有点。我该怎么做C#图表:如何绘制随时间变化的曲线图,c#,wpf,charts,C#,Wpf,Charts,到目前为止,我已经用下面的代码成功地绘制了一个图表,但我希望它能够随着时间的推移绘制和连接数据点,而不是一次绘制和连接所有数据点。例如,我可能希望总共需要60秒来绘制所有点。我该怎么做 chart1.Series["test1"].ChartType = SeriesChartType.FastLine; chart1.Series["test1"].Color = Color.Red; chart1.Series["test2"].ChartType = SeriesChartType.Fa
chart1.Series["test1"].ChartType = SeriesChartType.FastLine;
chart1.Series["test1"].Color = Color.Red;
chart1.Series["test2"].ChartType = SeriesChartType.FastLine;
chart1.Series["test2"].Color = Color.Blue;
Random rdn = new Random();
for (int i = 0; i < 50; i++)
{
chart1.Series["test1"].Points.AddXY(rdn.Next(0,10), rdn.Next(0,10));
chart1.Series["test2"].Points.AddXY(rdn.Next(0,10), rdn.Next(0,10));
}
chart1.Series[“test1”].ChartType=serieChartType.FastLine;
图表1.系列[“测试1”]。颜色=颜色。红色;
chart1.Series[“test2”].ChartType=SerieChartType.FastLine;
图表1.系列[“测试2”]。颜色=颜色。蓝色;
随机rdn=新随机();
对于(int i=0;i<50;i++)
{
图1.Series[“test1”].Points.AddXY(rdn.Next(0,10),rdn.Next(0,10));
图1.系列[“测试2”].Points.AddXY(rdn.Next(0,10),rdn.Next(0,10));
}
您可以创建一个调度程序
,并将其间隔
设置为要在打印点之间等待的时间量。给它一个勾选
事件处理程序,将下一个点添加到图表中,并在完成后禁用计时器
var timer = new DispatcherTimer
{
Interval = TimeSpan.FromSeconds(0.1d),
};
var pointsRemaining = 50;
var r = new Random();
timer.Tick += (sender, args) =>
{
if (--pointsRemaining == 0)
timer.Stop();
chart1.Series["test1"].Points.AddXY(r.Next(0,10), r.Next(0,10));
chart1.Series["test2"].Points.AddXY(r.Next(0,10), r.Next(0,10));
};
timer.Start();
是要在指定的时间内分散数据点的打印,还是要以固定速率打印点,直到所有点都已打印完毕?实际上是后者。