Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-7991

Visually show upper limits in XY-plot with different marker

    XMLWordPrintable

Details

    • 10
    • SUIT Sprint 2018-03, SUIT Sprint 2018-04
    • Science User Interface

    Description

      Scattered plot should show in XY-plot a different marker than the default ('dot') for visually distinguish upper limits.

      There is a very detailed description for WISE light curve in DM-7950

      This ticket is to provide a generic way to deal with the situation of plotting upper limit in the scattered plot. For other specific use cases, the data should be prepared in such a way to use this generic function. This ticket should do the following:

      • Design a data model to represent this special scattered plot
      • Expand the current scattered plot to be able to plot the upper limit

      Plot option dialog needs more design discussion. This ticket does not cover it. 

      March 2018 TG
      It was decided that measurements and upper limits should be in the separate columns – which can be synthetic – to facilitate automatic ucd-base column handling in the future and to allow the cases when both a measurement with error bars and an upper limit are present.

      Since Plotly does not provide an attribute for upper limits, upper limit column or expression will be stored in a firefly specific option. API users can specify it via `data.[traceNum].firefly.yMax` attribute.

      Each upper limit will be represented by an arrow pointing down. It will be possible to highlight, select, or filter the rows with upper limits and no measurement just like we highlight, select, or filter the rows with measurements. (If no measurement is available for this row, a point with an upper limit value will be added.)

      Attachments

        Issue Links

          Activity

            gpdf Gregory Dubois-Felsmann added a comment - - edited

            Added link to the improvement ticket I submitted for the same thing. In that ticket I've included details on how data points where the magnitude is an upper limit can be identified.

            gpdf Gregory Dubois-Felsmann added a comment - - edited Added link to the improvement ticket I submitted for the same thing. In that ticket I've included details on how data points where the magnitude is an upper limit can be identified.
            ejoliet Emmanuel Joliet added a comment - - edited

            Found a nice way to add custom marker/symbol to XYplot using highchart svg renderer and custom path command to build a 'T' for example:

            // Define a custom symbol path that would represent a 'T'
            Highcharts.SVGRenderer.prototype.symbols.upperLimit = function (x, y, w, h) {
                return ['M',x,y, 'L', x + w, y, 'M', x+w/2, y, 'L', x + w / 2, y+h, 'z'];
            };
            if (Highcharts.VMLRenderer) {
                Highcharts.VMLRenderer.prototype.symbols.upperLimit = Highcharts.SVGRenderer.prototype.symbols.upperLimit;
            }
            

            Then when calling the chart, we can specify the symbol 'T' such as:

            series: [{
                        name: 'serie1',
                        marker: {
                            symbol: 'triangle'
                        },
                        data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
             
                    }, {
                        name: 'WISE',
                        marker: {
                            symbol: 'triangle'
                        },
                        data: [{
                            y: 4.2,
                            marker: {
                                symbol: 'upperLimit'
                            }
                        }, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
                    }]
            

            ejoliet Emmanuel Joliet added a comment - - edited Found a nice way to add custom marker/symbol to XYplot using highchart svg renderer and custom path command to build a 'T' for example: // Define a custom symbol path that would represent a 'T' Highcharts.SVGRenderer.prototype.symbols.upperLimit = function (x, y, w, h) { return [ 'M' ,x,y, 'L' , x + w, y, 'M' , x+w/2, y, 'L' , x + w / 2, y+h, 'z' ]; }; if (Highcharts.VMLRenderer) { Highcharts.VMLRenderer.prototype.symbols.upperLimit = Highcharts.SVGRenderer.prototype.symbols.upperLimit; } Then when calling the chart, we can specify the symbol 'T' such as: series: [{ name: 'serie1' , marker: { symbol: 'triangle' }, data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]   }, { name: 'WISE' , marker: { symbol: 'triangle' }, data: [{ y: 4.2, marker: { symbol: 'upperLimit' } }, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8] }]

            Done

            tatianag Tatiana Goldina added a comment - Done

            People

              tatianag Tatiana Goldina
              ejoliet Emmanuel Joliet
              Loi Ly
              Emmanuel Joliet, Gregory Dubois-Felsmann, Loi Ly, Tatiana Goldina, Xiuqin Wu [X] (Inactive)
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Jenkins

                  No builds found.