Focal Point
[CASE-OPENED] WF8 HTML5 - Scatter Chart - Handling Multiple Occurring Ordered Pairs.

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/8547082376

October 27, 2014, 03:41 PM
David Briars
[CASE-OPENED] WF8 HTML5 - Scatter Chart - Handling Multiple Occurring Ordered Pairs.
The following code creates three points on a Scatter Chart:
APP PREPENDPATH IBISAMP
DEFINE FILE GGSALES
 MYXAXIS/I5 = DECODE SEQ_NO(1 1
                            2 2
 	                    3 3
			    4 3);
 MYYAXIS/I5 = DECODE SEQ_NO(1 2
                            2 4
			    3 5
			    4 5);
 STATE/A02   = DECODE SEQ_NO(1 'CO'
                             2 'IL'
			     3 'IN'
			     4 'MD');
 STBIRD/A15  = DECODE SEQ_NO(1 'Eagle'
                             2 'Osprey'
 			     3 'Hawk'
			     4 'Goose');
 LEGEND/A50  = STATE | '*' | STBIRD;
END
GRAPH FILE GGSALES
SUM    MYYAXIS
BY     LEGEND
ACROSS MYXAXIS
IF SEQ_NO LE 4
ON GRAPH PCHOLD FORMAT JSCHART
ON GRAPH SET VZERO OFF
ON GRAPH SET HTMLENCODE ON
ON GRAPH SET GRAPHDEFAULT OFF
ON GRAPH SET GRMERGE ADVANCED
ON GRAPH SET GRMULTIGRAPH 0
ON GRAPH SET GRLEGEND 1
ON GRAPH SET GRXAXIS 1
ON GRAPH SET LOOKGRAPH SCATTERS
ON GRAPH SET AUTOFIT ON
ON GRAPH SET STYLE *
-*
-* Create Data Labels and Tool Tips.
-*
*GRAPH_JS
legend: {visible:false},
dataLabels: {
  visible: true,
  position: 'right',
  font: 'italic 10pt Sans-Serif',
  color: 'black',
  formatCallback: function(d, s){return this.getSeries(s).label.substr(0,2);}
            },
series: [{series:'all', showDataValues:true},
         {series:'all', marker: {shape:'circle', size: 24}},
         {series: 'reset', tooltip: function(d, s, g) {
		     return ' State: ' + this.getSeries(s).label.substr(0,2) + '<br>'
			    + ' Bird: ' + this.getSeries(s).label.substr(3,15) + '<br>'
		            + ' X Axis: ' + d[0] + '<br>'
                            + ' Y Axis: ' + d[1];}},
	    ]
*END
ENDSTYLE
END


One point, ordered pair (3, 5), has two states ('IN','MD') associated with it.

At display time, I see the two datalabels superimposed upon one another.

Also, upon hover, I see only one tooltip.



How could I handle cases of multiple occurring ordered pairs?

This message has been edited. Last edited by: <Kathryn Henning>,




Pilot: WebFOCUS 8.2.06 Test: WebFOCUS 8.1.05M Prod: WebFOCUS 8.1.05M Server: Windows Server 2016/Tomcat Standalone Workstation: Windows 10/IE11+Edge Database: Oracle 12c, Netezza, & MS SQL Server 2019 Output: AHTML/XLSX/HTML/PDF/JSCHART Tools: WFDS, Repository Content, BI Portal Designer & ReportCaster
November 04, 2014, 12:52 PM
<Kathryn Henning>
Hi David,

Thank you for opening a case for this issue. Please keep us updated on the outcome.

Thanks and regards,

Kathryn
August 28, 2017, 04:10 AM
Arunkumar
Hi David,
Any updates about the issue? I am facing the same issue in 8.1.05.

I tried with
setRepositionDataTextCollision(4);
setRepositionStackedDataTextCollision(true);
but it doesn't seems to work for me . I am using JSCHART.
Any suggestions/ideas?
  GRAPH FILE GGSALES
SUM    
COMPUTE A1/D12.2 = UNITS/100000; 
COMPUTE A2/D12.2 = DOLLARS/100000;
COMPUTE A3/D12.2 = BUDUNITS/100000;
COMPUTE A4/D12.2 = BUDDOLLARS/100000;
BY     REGION NOPRINT
BY ST
-*ACROSS MYXAXIS

ON GRAPH PCHOLD FORMAT JSCHART
ON GRAPH SET HTMLENCODE ON
ON GRAPH SET GRAPHDEFAULT OFF
ON GRAPH SET VZERO OFF
ON GRAPH SET HAXIS 600
ON GRAPH SET VAXIS 350
ON GRAPH SET UNITS PIXELS
ON GRAPH SET LOOKGRAPH VLINE2
ON GRAPH SET GRMERGE ADVANCED
ON GRAPH SET GRMULTIGRAPH 0
ON GRAPH SET GRLEGEND 0
ON GRAPH SET GRXAXIS 2
ON GRAPH SET STYLE *
INCLUDE=IBFS:/FILE/IBI_HTML_DIR/javaassist/intl/EN/ENIADefault_combine.sty,$
*GRAPH_SCRIPT
setTemplateFile("/images/tdg/template/IBIDefault.txt");
setReportParsingErrors(false);
setSelectionEnableMove(false);
setY1MustIncludeZero(false);
setTransparentBorderColor(getSeries(0),true);
setTransparentBorderColor(getSeries(1),true);
setTransparentBorderColor(getSeries(2),true);
setTransparentBorderColor(getSeries(3),true);
setDepthRadius(0);
setUseSeriesShapes(true);
setMarkerSizeDefault(35);
setTransparentBorderColor(getChartBackground(),true);
setDisplay(getY2Label(),false);
setLabelStagger(getY2Label(),true);
setAxisAssignment(getSeries(1),0);
setGradientDirection(getSeries(0),9);
setDisplay(getLegendArea(),true);
setFontSizeAbsolute(getLegendText(),true);
setFontSizeInPoints(getLegendText(),8);
setFontSizeInPoints(getDataText(), 8);
setFontSizeInPoints(getO1Label(), 8);
setPlaceResize(getLegendText(),0);
setPlaceResize(getO1Label(), 0);
setPlaceResize(getDataText(), 0);
setDataLineThickness(1);
setTextFormatPattern(getY1Label(),"#.#%");
setTextFormatPreset(getY1Label(),-2);
setDisplay(getTitle(),true);
setFillMissingData(1);
-*setDataTextPosition(6);
setTextString(getTitle(),"Tier 1");
setMarkerSize(getSeries(0),42);
setMarkerSize(getSeries(1),42);
setMarkerSize(getSeries(2),42);
setMarkerSize(getSeries(3),42);
setMarkerShape(getSeries(0),5)
setLineWidth(getSeries(0),2);
setLineWidth(getSeries(1),2);;
setGridStyle(getO1MajorGrid(),4);
setGridStyle(getY1MajorGrid(),4);
setFillColor(getSeries(1),new Color(255,0,0));
setFillColor(getSeries(3),new Color(255,128,64));
setFillColor(getSeries(2),new Color(0,128,0));
setTransparentBorderColor(getLegendArea(),false);
setSeriesLineWidthDefault(4);
setFontStyle(getDataText(),0);
setDisplay(getO1MajorGrid(),false);
setDisplay(getY1MajorGrid(),false);
setDisplay(getDataText(0),true);
setDisplay(getDataText(1),true);
setDisplay(getDataText(2),true);
setDisplay(getDataText(3),true);
setDisplay(getDataText(4),true);
setDisplay(getDataText(5),true);

setRemoveDuplicateDataText(true);
-*setSeriesAreRows(false);
-*setForceSeriesAbsolute(getSeries(1),true);
-*setForceSeriesAbsolute(getSeries(2),true); 
-*setPlace(true);
-*setRepositionStackedDataTextCollision(true);
-*setRepositionDataTextCollision(4);
-*setRepositionStackedDataTextCollision(true);
setPlace(false); 
setRepositionDataTextCollision(4);
setRepositionStackedDataTextCollision(true);

*END

*END
*GRAPH_JS
dataLabels:{visible: true, formatCallback: function(v, s, g, data){   

      if (v.value < 30) {
        return v.value;
      } else {
        return v.value;
      }
        
}},
    series: [
    {series: 'all', showDataValues: true},
  
    ]
*END
ENDSTYLE
END


Thank you,
Arunkumar. R

This message has been edited. Last edited by: Arunkumar,
August 29, 2017, 04:41 PM
David Briars
quote:
Any updates about the issue?

The status of our case is set to 'Product Division'.

Last update in the case is 31-Oct-2014, for when the case went to Product.

This message has been edited. Last edited by: David Briars,