What kind of charts are you displaying?  I've had amazing success with
scrapping the charting framework all together and simply "drawing" the chart
programmatically.  Yes, it's a bit more work, and yes it's only feasible if
you don't really need a lot of the charting features that come in the
framework.  However, the performance difference is huge.
The project I applied this on was for financial stock data, and using a
custom drawn chart I mention above, along with the concept someone else
mentioned by only showing the n-th datapoint interval depending on the
overall range being displayed worked quite well.  You're able to keep a
consistent number of plot points (I've found 500-750 performs best) no
matter what the overall range of data you're displaying.  I say 500-750
performs best as I also had a horizontal axis slider which allowed for
constantly updating data in the chart.

Brendan


On Tue, Nov 18, 2008 at 1:27 PM, jim.abbott45 <[EMAIL PROTECTED]>wrote:

>   50,000? LOL. ;-)
>
> On a more serious note, I have to agree with Fotis and Ricky that 50K
> data points is too many, both from a (Flash 9 VM at least) performance
> perspective and probably also from an Information Visualization
> perspective (unless, maybe, your users have 300 dpi monitors).
>
> There are several standard interaction design and information
> visualization techniques which may be useful to you . . .
>
> 1) Aggregation (as already suggested, take 'N' data points, average
> them, and then only display the average value).
>
> 2) Filtering (by sliders on an axis, by date/time, by structured or
> open-ended queries, ...)
>
> 3) Progressive rendering (sample the entire data set at intervals of
> 'N', render those points, then go back and get the data which is
> mid-point between the original points, add the new points to the
> curve, repeat until desired resolution obtained--or on user demand)
>
> 4) Non-linear zooming (like idea 1), but allow user to zoom in on a
> section of the curve, when they do, add the additional data points to
> the curve for the zoomed-in region)
>
> On a more pragmatic note, you certainly _can_ plot more than 2,000
> points. For example, I've personally used Flex to create charts with
> over 14,000 points in them, so I know that at least that number is
> definitely *possible*. However, the overall rendering time was (as I
> recall) over 3 minutes long. More troubling was the fact that the
> entire Flex UI become very sluggish once a chart that large was
> displayed. I've seen good chart rendering speed ( ~= 2S ) and no UI
> sluggishness, up to about 1500 points. I've also been able to render
> up to 6,000 points, but it took about 10S for the rendering and the UI
> started to become sluggish. From your posting, it sounds like you're
> not seeing those rendering speeds. I'd recommend that you experiment
> with how you are using the charting objects/API. My experience was
> that I was able to see some very noticeable speed-ups simply be
> optimizing how I called the charting API (especially w.r.t. how I
> loaded the series data). In particular, if your charts are
> interactive, try to cache anything you can that doesn't necessarily
> change during an interaction (i.e., axis objects).
>
> Last thought: the new Flash 10 VM (Astro) has support for larger
> bitmaps and also can now do hardware-based rendering, apparently. I
> haven't tried either of those features myself, but using the v10 VM
> _might_ be another way to get a performance boost, etc.
>
> Good luck!
> Jim
>
>
> --- In flexcoders@yahoogroups.com <flexcoders%40yahoogroups.com>, "Mark
> Easton" <[EMAIL PROTECTED]> wrote:
> >
> > Hi,
> >
> > It appears that Flex Charts cannot handle generating charts with large
> > DataSets. We tried with 50,000 data points and it thrashed away without
> > producing a result after 6 minutes. It was able to plot 2,000 points in
> > about 25 seconds.
> >
> > What is the recommended approach for creating charts from large data
> sets.
> > The best I can think of is to write some code that will reduce the
> data set
> > in size yet still provide enough data to represent the graph accurately.
> >
> > Thoughts?
> >
> > Ta.
> > Mark
> >
>
>  
>



-- 
Brendan Meutzner
http://www.meutzner.com/blog/

Reply via email to