Focal Point
[SOLVED] stacked-bar Pareto diagram

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

October 07, 2008, 08:18 PM
dballest
[SOLVED] stacked-bar Pareto diagram
Hi All,

Does this graph type exists in WF? If it does, what version.

Thanks.

This message has been edited. Last edited by: dballest,


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
October 08, 2008, 03:32 AM
Tony A
DB,

I don't see why we shouldn't respond as normal Wink Look in the graphics manual for your version and above, there are not that many manuals and they often don't change with sub release (e.g. the "n" in 7.6.n) - pareto graph type is graphtype 102.

Happy hunting Smiler

T



In FOCUS
since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2  
WebFOCUS App Studio 8.2.06 standalone on Windows 10 
October 08, 2008, 07:41 PM
dballest
Hi Anthony,

I have a copy of the wf76graphics manual and there was no mention of stacked pareto. We are using pareto with a single series. Now they wanted to break down that bar even further. I tried to demo using the CAR file below.

GRAPH FILE CAR
SUM SALES
ACROSS COUNTRY
BY BODYTYPE
ON GRAPH SET LOOKGRAPH PARETO
ON GRAPH SET GRAPHEDIT SERVER
ON GRAPH SET BARNUMB OFF
ON GRAPH SET 3D OFF
ON GRAPH SET VZERO ON
ON GRAPH SET GRID ON
ON GRAPH SET GRMERGE OFF
ON GRAPH PCHOLD FORMAT JPEG
ON GRAPH SET GRAPHSTYLE *
setMarkerDisplay(true);
setConnectLineMarkers(true);
setConnectScatterMarkers(true);
setO1LabelDisplay(true);
setO1AxisSide(0);
setO1MajorGridDisplay(true);
setO1MajorGridStyle(0);
setO1MinorGridDisplay(false);
setAxisAssignment(0,0);
setSeriesType(0,0);
setY1LabelDisplay(true);
setY1AxisSide(0);
setY1MajorGridDisplay(true);
setY1MajorGridStyle(0);
setY1MinorGridDisplay(false);
setTextFormatPreset(getY1Label(),-1);
setTextFormatPattern(getY1Label(),"#.##");
setPieFeelerTextDisplay(1);
setPieLabelDisplay(0);
setTextFormatPreset(getPieSliceLabel(),1);
setLegendDisplay(true);
setLegendTextAutofit(true);
setFontSizeAbsolute(getY1Title(),true);
setFontSizeAbsolute(getY1Label(),true);
setFontSizeAbsolute(getY2Title(),true);
setFontSizeAbsolute(getY2Label(),true);
setFontSizeAbsolute(getO1Title(),true);
setO1LabelAutofit(true);
setPlace(false);
setDisplayParetoSeries(0);
ENDSTYLE
ON GRAPH SET STYLE *
SQUEEZE=ON,
ORIENTATION=PORTRAIT,
$
TYPE=REPORT,
GRID=OFF,
FONT='TIMES NEW ROMAN',
SIZE=10,
$
ENDSTYLE
END


If I change the setting ON GRAPH SET GRMERGE ON, the graph's display is all messed up.

DB


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
October 09, 2008, 02:16 AM
Tony A
DB,

I think you have your answer - no stacked pareto graph currently Frowner

You could change the ACROSS to a BY to get COUNTRY:BODYTYPE as your axis but I'd guess that is not what your end users would want? It's the closest they'll get with the current standard Graphics though.

Checking advanced graphics manual I can't even find pareto graphs! I have 7.1.6 DS installed so I don't have AG and I guess you've checked yourself?

Anthony Smiler



In FOCUS
since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2  
WebFOCUS App Studio 8.2.06 standalone on Windows 10 
October 09, 2008, 09:34 AM
<JG>
There actually is no thing such as a stacked pareto chart.
The definition is that it's a single series not multiple series.

However you can simulate it by generating your own data series and labels

 APP PREPENDPATH IBISAMP
-RUN
TABLE FILE CAR
SUM
DEALER_COST
BY COUNTRY
ON TABLE HOLD AS DC
END
-RUN
TABLE FILE DC
SUM
COMPUTE PARTO/I9= LAST PARTO + DEALER_COST;
BY HIGHEST DEALER_COST 
BY COUNTRY
ON TABLE SET ASNAMES ON
ON TABLE HOLD AS LINEDATA 
END
-RUN
TABLE FILE LINEDATA
PRINT
COMPUTE GROUP/I2= (LAST GROUP +1); NOPRINT
COMPUTE POS/I2=GROUP -1; NOPRINT
COMPUTE SERIES0/A50='setData(0,' || EDIT(POS) || ','|| EDIT(PARTO) || ');';
BY HIGHEST DEALER_COST NOPRINT
ON TABLE SET ASNAMES ON
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE HOLD AS SERIES0 FORMAT ALPHA
END
-RUN
TABLE FILE LINEDATA
PRINT
COMPUTE GROUP/I2= (LAST GROUP +1); NOPRINT
COMPUTE POS/I2=GROUP -1; NOPRINT
COMPUTE SERIES0/A80='setGroupLabel('|| EDIT(POS) || ',"' || COUNTRY || '");';
BY HIGHEST DEALER_COST NOPRINT
ON TABLE SET ASNAMES ON
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE HOLD AS LABELS FORMAT ALPHA
END
-RUN
TABLE FILE CAR
SUM 
COMPUTE PARTO/I9= DEALER_COST;
BY COUNTRY
SUM DEALER_COST
BY COUNTRY
BY MODEL
ON TABLE SET ASNAMES ON
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE HOLD AS BARDATA
END
-RUN
TABLE FILE BARDATA
PRINT
COMPUTE SERIES/I2= IF COUNTRY NE LAST COUNTRY THEN LAST SERIES +1 ELSE LAST SERIES; NOPRINT
COMPUTE GROUP/I2=IF SERIES EQ LAST SERIES THEN LAST GROUP +1 ELSE 0 ;NOPRINT
COMPUTE GROUPP/I2=GROUP + 1; NOPRINT
COMPUTE SERIESP/I2=SERIES - 1; NOPRINT
COMPUTE SERIES0/A50='setData(' || EDIT(GROUPP) || ',' || EDIT(SERIESP) || ','|| EDIT(DEALER_COST) || ');';
BY HIGHEST PARTO  NOPRINT
BY COUNTRY NOPRINT
BY MODEL NOPRINT
ON TABLE SET ASNAMES ON
ON TABLE SET HOLDLIST PRINTONLY
ON TABLE HOLD AS GROUPS FORMAT ALPHA
END
-RUN
GRAPH FILE LINEDATA
SUM PARTO AS ''
ON GRAPH SET LOOKGRAPH VBRSTK1
ON GRAPH SET GRAPHEDIT SERVER
ON GRAPH SET BARNUMB OFF
ON GRAPH SET 3D OFF
ON GRAPH SET VZERO ON
ON GRAPH SET GRID ON
ON GRAPH SET GRMERGE ON
ON GRAPH PCHOLD FORMAT JPEG
ON GRAPH SET GRAPHSTYLE *
setSeriesType(0,2);
setMarkerDisplay(true);
setConnectLineMarkers(true);
setConnectScatterMarkers(true);
setO1LabelDisplay(true);
setO1AxisSide(0);
setO1MajorGridDisplay(true);
setO1MajorGridStyle(0);
setO1MinorGridDisplay(false);
setAxisAssignment(0,0);
setY1LabelDisplay(false);
setY1AxisSide(0);
setY1MajorGridDisplay(true);
setY1MajorGridStyle(0);
setY1MinorGridDisplay(false);
setLegendDisplay(false);
setLegendTextAutofit(true);
setPlace(true);

-INCLUDE SERIES0
-INCLUDE GROUPS
-INCLUDE LABELS
setDataRangeToExtent();
ENDSTYLE
ON GRAPH SET STYLE *
SQUEEZE=ON,
ORIENTATION=PORTRAIT,
$
TYPE=REPORT,
GRID=OFF,
FONT='TIMES NEW ROMAN',
SIZE=10,
$
ENDSTYLE
END
 

October 09, 2008, 10:19 AM
Tony A
There's that lateral thinking cap demonstration again Wink

T



In FOCUS
since 1986
WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2  
WebFOCUS App Studio 8.2.06 standalone on Windows 10 
October 09, 2008, 11:55 AM
dballest
Thanks JG & Tony for your help. That's exactly what I need.


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
October 09, 2008, 08:05 PM
dballest
JG,

One more thing, is there a way to remove the LIST label text whenever I set setY1LabelDisplay(true);?

Thanks,
DB


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
October 10, 2008, 01:29 AM
<JG>
DB, use

setY1LabelDisplay(true);
setTextString(getY1Title()," ");
October 10, 2008, 11:56 AM
dballest
Thanks JG! That's perfect.

DB


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
November 10, 2008, 01:56 PM
dballest
Follow-up question:

How do I increase the interval of the Y1 Label in a Pareto Graph? On the graphics manual, I only see setParetoY2MajorGridStep.

I've attached a sanpshot of the graph @ http://tinypic.com/view.php?pic=33k3t4k&s=4

The code:

TABLE FILE HOLD1
PRINT
FAILCODE22
FCNT
END

GRAPH FILE HOLD1
SUM FCNT AS ''
BY FAILCODE22 AS ''
ON GRAPH SET LOOKGRAPH PARETO
ON GRAPH SET GRAPHSTYLE *
setParetoY2MajorGridStep(15.0);
ENDSTYLE
END

-EXIT

Thanks in advance.

DB


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
November 10, 2008, 03:35 PM
<JG>
Can not run the code as the hold file is not available,
However apply some rotation to the Y1 Axis
November 11, 2008, 11:35 AM
dballest
Hi JG,

I'm sorry, I don't know what you mean my rotation on the Y1 Axis.

I'm looking for a property on the Y1 Grid Step similar to setParetoY2MajorGridStep(15.0);

Thanks,
DB


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
November 11, 2008, 01:41 PM
<JG>
DB, It looks to me as if the text on the Y axis is vertical and not horizontal.

If you could supply and example using the car file then it would be easier to explain.
November 11, 2008, 04:27 PM
dballest
JG,

Here's a sample.

-* File test_pareto.fex
-SET ECHO=ALL;

DEFINE FILE CAR
N_VALUE/I5 = DECODE COUNTRY('ENGLAND' 1 'JAPAN' 2 ELSE 1);
END

TABLE FILE CAR
PRINT
COUNTRY
N_VALUE
ON TABLE HOLD AS TEST1
END

GRAPH FILE TEST1
SUM N_VALUE
ACROSS COUNTRY
ON GRAPH SET LOOKGRAPH PARETO
ON GRAPH SET GRAPHEDIT SERVER
ON GRAPH SET BARNUMB OFF
ON GRAPH SET 3D OFF
ON GRAPH SET VZERO ON
ON GRAPH SET GRID ON
ON GRAPH PCHOLD FORMAT PNG
ON GRAPH SET GRAPHSTYLE *
setMarkerDisplay(true);
setConnectLineMarkers(true);
setConnectScatterMarkers(true);
setO1LabelDisplay(true);
setO1AxisSide(0);
setO1MajorGridDisplay(true);
setO1MajorGridStyle(0);
setO1MinorGridDisplay(false);
setAxisAssignment(0,0);
setSeriesType(0,0);
setY1LabelDisplay(true);
setY1AxisSide(0);
setY1MajorGridDisplay(true);
setY1MajorGridStyle(0);
setY1MinorGridDisplay(false);
setTextFormatPreset(getY1Label(),-1);
setTextFormatPattern(getY1Label(),"#.##");
setPieFeelerTextDisplay(1);
setPieLabelDisplay(0);
setTextFormatPreset(getPieSliceLabel(),1);
setRiserBorderMode(1);
setSeriesDefaultTransparentBorderColor(true);
setUseSeriesBorderDefaults(true);
setLegendDisplay(true);
setFontSizeAbsolute(getY1Title(),true);
setFontSizeAbsolute(getY1Label(),true);
setFontSizeAbsolute(getY2Title(),true);
setFontSizeAbsolute(getY2Label(),true);
setFontSizeAbsolute(getO1Title(),true);
setPlace(true);
ENDSTYLE
ON GRAPH SET STYLE *
SQUEEZE=ON,
ORIENTATION=PORTRAIT,
$
TYPE=REPORT,
GRID=OFF,
FONT='TIMES NEW ROMAN',
SIZE=10,
$
ENDSTYLE
END


Notice that the intervals on the Y1 axis are incremented by 0.2. I need to have it by 2.0.

Thanks,
DB


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
November 12, 2008, 01:24 AM
<JG>
DB,

Very strange on my sytsm the step comes as 1 not .2

However setParetoY1MajorGridStep is not a valid call for some reason.

What you need is

setY1MajorGridStep(n.m); and setParetoY2MajorGridStep(n.m);
November 12, 2008, 12:43 PM
dballest
JG,

The setParetoY2MajorGridStep(n.m) works but the setY1MajorGridStep(n.m) did not do anything for the Pareto graph. It works however on other graph types.

Yes, I'm also surprise that setParetoY1MajorGridStep is not a valid call.

DB


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
November 12, 2008, 01:34 PM
<JG>
DB, do you have a higher release that you can test on.
It works fine in 764 and 767, looks like it may be a release level bug.
November 12, 2008, 02:53 PM
dballest
JG,

We don't have a higer release. So, in your version the intervals are 1 and setParetoY1MajorGridStep is not valid. Should I open up a case or enhancement request to have this call valid in Pareto graphs?

Thanks,
DB


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
November 13, 2008, 01:27 AM
<JG>
DB, I would open a case

However as setParetoY1MajorGridStep(); is not documented then that would need to be an NFR
which would probably be rejected as setY1MajorGridStep(); is supposed to cover the need.

What would be better is to raise a case asking for a hotfix so that setY1MajorGridStep();
works in your release.
November 13, 2008, 11:17 AM
dballest
Thanks JG. I'll open up a case.


Dev: WebFOCUS 7.6.10, Data Migrator 7.6.10
QA: WebFOCUS 7.6.10, Data Migrator 7.6.10
Prod: WebFOCUS 7.6.2, Data Migrator 7.6.8
Windows 2K3, Tomcat 5.5.17, IIS 6
Usage: HTML, PDF, Excel, Self-serve, BID and MRE
January 02, 2009, 07:20 PM
Viral
Hello,

I am interested doing similar the Pareto graph.
I need to give the different color for each stack bar like default will be in red color and for other grouping different color.
Also want to know is it possible to show the stacked information when hover over it like it has Group by Country and stacked by Model. So when it over bar it shows only country and value, is it possible to show the up the country.model - value.

Looking for suggestions. Thanks in advance for your inputs.

Thanks,
WF 7.6.2


WF 7.6.2/ OS WIN2003.
DM 7.6.2