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, "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
>


Reply via email to