The class NumericTimeDataPoint in UltraWinChartis very handy when it comes to creating monitor graphs (like the one in Windows' Task Manager). It allows me to have a line of data begin on the right side of a line chart, and then grow into the chart, and eventually flow out on the left side. The X axis labels automatically update to reflect the time when the data was collected.
Is there a comparable way to do this with Wpf.Chart?
Thanks,
Stefan
I figured it out using the ScatterLine graph does the trick, but then I noticed an absolutely horrible performance of the ScatterLine graph with time as X axis. As soon as more than about 100 data points are added (in a single or multiple series) the CPU usage shoots up to near 100%. It stays there for a while, only to recover to about 40% after about 500 data points have been added.
I am using data binding against a collection. I can supply a sample application on request.
Is this a known issue?
i don't think so. can you provide the sample?
No problem, sample app is attached.
This app has 4 data series that update every 250ms. The interval is not improtant, though - I've seen the CPU spikes even at intervals of 1000ms. This graph grows from the right to the left, which means the X asis has to be 'moved'. That is not the cause for the CPU spike, I have done other tests where I simply add a single data series without moving the axis, and that too has consumed all available CPU ticks.
By comparison, the WinForms library can easily handle 10 data series at the same update rate and stay below 10% CPU.
Thanks for looking t this,
i see what you mean; i got the same results when i tested this.
we will continue to work on this, but the biggest bottleneck seems to be getting the platform to display many objects on the screen at once. we did add a fast rendering mode which you can enable:
<ig:XamChart.Scene> <ig:Scene> <ig:Scene.GridArea> <ig:GridArea> <ig:GridArea.RenderingOptions> <ig:GridAreaRenderingOptions RenderingMode="Performance" /> </ig:GridArea.RenderingOptions> </ig:GridArea> </ig:Scene.GridArea> </ig:Scene> </ig:XamChart.Scene>