slrom
slrom

Reputation: 144

Display Chart (Histogram) Bars with real time data

I am building a simple WinForms (C#) application to display some data distribution in the chart. I am using .net chart control in my application. I only have a chart and button controls on my form and I want to populate the chart onclick event. I am using something like this in the onclick event:

chartPractice.Series["Distribution"].Points.AddXY("1", 150);
chartPractice.Series["Distribution"].Points.AddXY("2", 11);
chartPractice.Series["Distribution"].Points.AddXY("3", 250);

It works fine to populate the values in the graph.

I want to implement the functionality that allows the user of the application to see how the graph is populated in real time.

For example, if I put series in the for loop only the final output is displayed in the chart control:

for (int i = 0; i < 900; i++)
{
    chartPractice.Series["Distribution"].Points.AddXY("1", i);
}

I would like the user to see the histogram bar changing with each loop iteration. Right now when I use the approach above the application simply goes through the loop and displays the the final result in the graph.

Thank you,

Upvotes: 0

Views: 2411

Answers (2)

slrom
slrom

Reputation: 144

Actually the solution was pretty easy and I am a little embarrassed that I did not figure it out sooner. All I had to do was add chartPractice.Refresh(); in the loop.

It forces the application to redraw the graph after each iteration.

I hope this answer will help someone else who might be working on the application that requires this functionality.

Upvotes: 1

anhtv13
anhtv13

Reputation: 1808

I think you should make your thread sleep in few millisecond

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
}

Upvotes: 0

Related Questions