显示带有实时数据的图表(直方图)条
Display Chart (Histogram) Bars with real time data
我正在构建一个简单的 WinForms (C#) 应用程序以在图表中显示一些数据分布。我在我的应用程序中使用 .net 图表控件。我的窗体上只有一个图表和按钮控件,我想填充图表 onclick 事件。
我在 onclick 事件中使用了这样的东西:
chartPractice.Series["Distribution"].Points.AddXY("1", 150);
chartPractice.Series["Distribution"].Points.AddXY("2", 11);
chartPractice.Series["Distribution"].Points.AddXY("3", 250);
填充图表中的值效果很好。
我想实现允许应用程序用户实时查看图形填充方式的功能。
例如,如果我将系列放在 for 循环中,只有最终输出显示在图表控件中:
for (int i = 0; i < 900; i++)
{
chartPractice.Series["Distribution"].Points.AddXY("1", i);
}
我希望用户看到直方图条随每次循环迭代而变化。现在,当我使用上面的方法时,应用程序只是通过循环并在图表中显示最终结果。
谢谢,
我认为你应该让你的线程在几毫秒内休眠
for (int i = 0; i < 900; i++)
{
chartPractice.Series["Distribution"].Points.AddXY("1", i);
System.Threading.Thread.Sleep(100); //each loop will sleep 100 millisecond before continue
}
其实解决方法很简单,我有点不好意思没有早点想出来。我所要做的就是在循环中添加 chartPractice.Refresh();
。
它强制应用程序在每次迭代后重新绘制图形。
我希望这个答案能帮助可能正在开发需要此功能的应用程序的其他人。
我正在构建一个简单的 WinForms (C#) 应用程序以在图表中显示一些数据分布。我在我的应用程序中使用 .net 图表控件。我的窗体上只有一个图表和按钮控件,我想填充图表 onclick 事件。 我在 onclick 事件中使用了这样的东西:
chartPractice.Series["Distribution"].Points.AddXY("1", 150);
chartPractice.Series["Distribution"].Points.AddXY("2", 11);
chartPractice.Series["Distribution"].Points.AddXY("3", 250);
填充图表中的值效果很好。
我想实现允许应用程序用户实时查看图形填充方式的功能。
例如,如果我将系列放在 for 循环中,只有最终输出显示在图表控件中:
for (int i = 0; i < 900; i++)
{
chartPractice.Series["Distribution"].Points.AddXY("1", i);
}
我希望用户看到直方图条随每次循环迭代而变化。现在,当我使用上面的方法时,应用程序只是通过循环并在图表中显示最终结果。
谢谢,
我认为你应该让你的线程在几毫秒内休眠
for (int i = 0; i < 900; i++)
{
chartPractice.Series["Distribution"].Points.AddXY("1", i);
System.Threading.Thread.Sleep(100); //each loop will sleep 100 millisecond before continue
}
其实解决方法很简单,我有点不好意思没有早点想出来。我所要做的就是在循环中添加 chartPractice.Refresh();
。
它强制应用程序在每次迭代后重新绘制图形。
我希望这个答案能帮助可能正在开发需要此功能的应用程序的其他人。