Thanks Doug, Yes I have been thinking (the last hour) of using such a representation or alternatively of plotting a graph of floating columns, with each column starting at min and ending at max, combined with a line graph in a different colour showing the averages. BUT (and this is a big but) the client said he was not interested in min and max, but rather exceptional values. Although I have to take his requirements with a grain of salt sometimes it does pay to listen to him - he is the client! :)
The exceptions may be a single solitary value or a series of values. So, if I were to grab the points that within each sample are 1 or 2 std deviations outside the normal then I wont always have these points - so they may just be the odd value. Hence using floating columns to display these seems to make sense. Mark -----Original Message----- From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com]on Behalf Of Doug McCune Sent: Friday, 30 January 2009 12:34 p.m. To: flexcoders@yahoogroups.com Subject: Re: [flexcoders] Charting 1 minute data over 1 year What if you aggregate your data by some amount (say the maximum resolution you can display on the x-axis), and then for each data point you plot the min, max, and average, kind of like the HLOCChart that's used to show stock data. That would let you see the average trend as well as identify any peaks or valleys that were out of the ordinary. So then the task involves being able to efficiently take 500,000 points and turn it into 2,000 aggregated points with min/max/avg. Or even just do 3 completely separate line series for the min, max, and avg. There's only so much information you can show in a single horizontal pixel, so there's simply no way to show all the data. But showing min/max/avg might get you the info you need. Doug On Thu, Jan 29, 2009 at 3:27 PM, Maciek Sakrejda <msakre...@truviso.com> wrote: How about, on the main graph, showing the raw data as limited by the slider, but on the slider, show points that average over some period of time, combined with a separate series for outlying points (those outside 1 or 2 standard deviations from the mean)? This gives you an overview of the general trends, a quick indication of outliers, and an ability to zoom in on any single section fairly easily. -- Maciek Sakrejda Truviso, Inc. http://www.truviso.com -----Original Message----- From: Mark Easton <mar...@azurebell.co.nz> Reply-To: flexcoders@yahoogroups.com To: flexcoders@yahoogroups.com Subject: RE: [flexcoders] Charting 1 minute data over 1 year Date: Fri, 30 Jan 2009 12:16:16 +1300 Hi Maciek, Thanks for your response. Yes I have seen that example and I liked it. We still need to contend, though, with having 500,000 values to plot for the full graph. Using standard graphing that takes for ever to plot - in fact I could not get it to plot. 2000 values seems to the maximum number of points that can be plotted, or to be exact the number of pixels available on x-axis. So how can I take 500,000 points and : 1. Producre a graph that as closely as possible retains its shape? 2. Shows exceptional values If I were to massage the 500,000 points by taking sample of 250 points and averaging them, then I can miss important detail. I could use a vertical column graph with floating columns, where I plotted the line starting at min and ending at max for the plot point. Furthermore as the user used the slider to look at a smaller portion of the graph I would still want to plot at maximum pixel detail. That is if the user uses the slider to look at 1 month then that would allow me to plot points where each point was calculated from a smaller sample size. Cheers Mark -----Original Message----- From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com]on Behalf Of Maciek Sakrejda Sent: Friday, 30 January 2009 11:21 a.m. To: flexcoders@yahoogroups.com Subject: Re: [flexcoders] Charting 1 minute data over 1 year Have you suggested a thumbnail slider solution à la Google Finance (say, like here: http://www.meutzner.com/blog/index.cfm/2007/6/15/Google-Finance-with-Flex-from-Silvafug-last-night )? We've implemented something similar, and it works quite well. I can't share our implementation, but the example I linked has source. -- Maciek Sakrejda Truviso, Inc. http://www.truviso.com -----Original Message----- From: Mark Easton <mar...@azurebell.co.nz> Reply-To: flexcoders@yahoogroups.com To: Flexcoders <flexcoders@yahoogroups.com> Subject: [flexcoders] Charting 1 minute data over 1 year Date: Fri, 30 Jan 2009 11:04:42 +1300 Hi, I am trying to work out how best to produce a chart which allows a user to make sense of data logged every minute for up to 12 months (ie 524160 values). To complicate matters the graphs are are presented on a dashboard where the user can display many graphs at once - so we are not just displaying the one graph and the size of the graph will change depending on how many graphs are being displayed in the dashboard window. We are logging sensor data (temperature, current, vibration, humidity, wind speed etc). Client does not like a month, week, day, hour, minute drill down scenario - I tried that and it was rejected. He wants a line graph, but where we do have to average data would like to some idea of max and mins - maybe that can be done in point comment. Trouble is if we chart so many points then there are too many points for the mouse click to discern. Essentially the client would like to see the data always at maximum detail no matter what period is being looked at. I have read this http://www.cynergysystems.com/blogs/page/andrewtrice?entry=visualizing_large _data_sets, and am thinking that I will need to proceed in kind and to use an Image object and set BitmapData pixels directly - depending on how I decide to reimplement this thing. Of course I am limited by the number of pixels available along the x-axis for a given chart size. This is complicated as the client would like to zoom on the graph and also look at time slices. The client would also like to be able to see exceptions clearly on the graph - for example if there was a vibration spike. Also sometimes the sensor might not be operational so we need to see those breaks in the graph when no data was captured. All in all I am finding this a complicated requirement to unravel, as some of the requirements seem to be nonsensical - eg having a zoom - when the client always wants to see maximum detail??? So, I need to work out a design for this which will best meet the clients requirement and which flex can handle. Any comments and ideas are appreciated. I am working on this presently, so as I come up with ideas on how to proceed I will post them here. Cheers Mark