This is a migrated thread and some comments may be shown as answers.

How to fix ScatterLine performance issues?

2 Answers 71 Views
ChartView
This is a migrated thread and some comments may be shown as answers.
Mitchell
Top achievements
Rank 1
Mitchell asked on 14 Jul 2017, 09:43 PM

Hello,

I am having trouble with slow down when loading series with a large number of points (>10,000). I have seen in other posts that the suggested solution is to manually aggregate out the data. I just have couple of questions in reference to this.

1. Are there any other ways to increase performance? I have seen on posts in the WPF forum that there are graphics acceleration features available using Direct2D. Am I correct in understanding that these are not at all available in the Winforms version?

2. If aggregating the data is the only way to reduce the number of rendered points, is it possible to load in removed data points when using the zoom feature to zoom in on sections of the data?

Thank you for your help!

2 Answers, 1 is accepted

Sort by
0
Mitchell
Top achievements
Rank 1
answered on 14 Jul 2017, 10:27 PM

Additionally, is there an example of how to use a custom renderer with a ScatterSeries? I think I understand the example in the documentation using a LineSeries, but I am unsure of how to do it with a scatter.

Thank You!

-Mitchell

0
Dimitar
Telerik team
answered on 17 Jul 2017, 12:38 PM
Hi Mitchell,

Thank you for writing.

1. There is no way to use our controls with Direct2D. 

2. Perhaps it would be better to use the drill down feature for this. This way you will be able to pass new data when needed. 

3. You need to create a class that inherits ScatterLineSeriesDrawPart and then use it in a custom renderer like this:
public class CustomCartesianRenderer : CartesianRenderer
{
    public CustomCartesianRenderer(CartesianArea area) : base(area)
    {
    }
      
    protected override void Initialize()
    {
        base.Initialize();
  
        for (int i = 0; i < this.DrawParts.Count; i++)
        {
            ScatterSeriesDrawPart scatterPart = this.DrawParts[i] as ScatterSeriesDrawPart;
            if (scatterPart != null)
            {
                this.DrawParts[i] = new CustomScatterSeriesDrawPart((ScatterLineSeries)scatterPart.Element, this);
            }
        }
    }
}

I hope this will be useful. Let me know if you have additional questions.

Regards,
Dimitar
Progress Telerik
Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
Tags
ChartView
Asked by
Mitchell
Top achievements
Rank 1
Answers by
Mitchell
Top achievements
Rank 1
Dimitar
Telerik team
Share this question
or