Definitely will do Doug. Its going to test my flex skills, but I hope to have 
done it by the end of next week. It is complicated in that we have a dashboard 
that allows the users to see many graphs for all the different sensors, contact 
inputs and actuators at the same time - and move them in to display groups 
(each display group has its own tab). I am taking the approach that these 
"display group" graphs will all be displayed for the last 24 hours or the last 
hour (switchable by the user). Then if the user wants to do further analysis 
he/she can select the graph to analyse it further and we will do that in a full 
size window. That is where we will apply what is discussed below.

Graphing actuators and contact inputs is also interesting as they only have 
three values - Nan, 0 and 1. I will used a stepped line for those, but will 
still need to be massaging data depending on the sample size required to fit 
the data into the available x-axis pixels. In this case the client does not 
want the sampling to miss any state change activity. Obviously we cant average 
the sample data, so for this I am thinking I will plot the sample entry point 
and exit point. Then, in another series I will also plot the number of state 
changes in the sample. Then the user can slice using the slider to look at 
parts of the graph in more detail and thus be able to see exactly what the 
activity was.

Thanks!


  -----Original Message-----
  From: flexcoders@yahoogroups.com [mailto:flexcod...@yahoogroups.com]on Behalf 
Of Doug McCune
  Sent: Friday, 30 January 2009 1:43 p.m.
  To: flexcoders@yahoogroups.com
  Subject: Re: [flexcoders] Charting 1 minute data over 1 year


  Hey Mark, 

  This might be out of the question due to client restrictions, but I'd be very 
interested in seeing a screenshot of the solution you come up with (even if you 
have to use some fake data to show us). It's an interesting data visualization 
problem and I think it would benefit many people here (or maybe just me) to see 
how you decided to solve it. So if after you figure out a workable solution you 
can share what you did and how well it worked, I'd be interested.

  Best of luck,
  Doug



  On Thu, Jan 29, 2009 at 4:12 PM, Mark Easton <mar...@azurebell.co.nz> wrote:

     

    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












   

Reply via email to