Focal Point
[SOLVED] Chart Colors by Group

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

November 08, 2016, 11:35 AM
Joel Elscott
[SOLVED] Chart Colors by Group
I have a stacked bar chart with multiple groupings (2 XAXIS), and I need to have different colors for each of the major groupings, so that the user can easily see when a group ends and the next begins.

For example:
Midwest – Light Blue / Light Green
Northeast – Dark Blue / Dark Green
Southeast – Light Blue / Light Green
West – Dark Blue / Dark Green

I’ve tried to play around with setColorMode(2), but that only works if you have a single group/XAXIS, not multiple like I have.

Any ideas?

  
ENGINE INT CACHE SET ON
-DEFAULTH &WF_STYLE_UNITS='PIXELS';
-DEFAULTH &WF_STYLE_HEIGHT='405.0';
-DEFAULTH &WF_STYLE_WIDTH='770.0';
-DEFAULTH &WF_TITLE='WebFOCUS Report';
GRAPH FILE GGSALES
-* Created by Info Assist for Graph
SUM GGSALES.SALES01.DOLLARS
GGSALES.SALES01.BUDDOLLARS
BY GGSALES.SALES01.REGION
BY GGSALES.SALES01.CATEGORY
ON GRAPH PCHOLD FORMAT JSCHART
ON GRAPH SET VZERO OFF
ON GRAPH SET HTMLENCODE ON
ON GRAPH SET GRAPHDEFAULT OFF
ON GRAPH SET GRWIDTH 1
ON GRAPH SET UNITS &WF_STYLE_UNITS
ON GRAPH SET HAXIS &WF_STYLE_WIDTH
ON GRAPH SET VAXIS &WF_STYLE_HEIGHT
ON GRAPH SET GRMERGE ADVANCED
ON GRAPH SET GRMULTIGRAPH 0
ON GRAPH SET GRLEGEND 0
ON GRAPH SET GRXAXIS 2
ON GRAPH SET LOOKGRAPH VBRSTK1
ON GRAPH SET AUTOFIT ON
ON GRAPH SET STYLE *
*GRAPH_SCRIPT
setPieDepth(0);
setPieTilt(0);
setDepthRadius(0);
setCurveFitEquationDisplay(false);
setPlace(true);
*END
INCLUDE=IBFS:/FILE/IBI_HTML_DIR/javaassist/intl/EN/ENIADefault_combine.sty,$
TYPE=REPORT, TITLETEXT=&WF_TITLE.QUOTEDSTRING, $
*GRAPH_SCRIPT
setReportParsingErrors(false);
setSelectionEnableMove(false);
setColorMode(1);
setFillColor(getSeries(0),new Color(0, 145, 218));
setFillColor(getSeries(1),new Color(0, 196, 217));
*END
ENDSTYLE
END
-RUN

This message has been edited. Last edited by: Joel Elscott,


WebFOCUS 8.2.03
z/OS
November 08, 2016, 12:19 PM
MartinY
Is this may suit your need ?
ENGINE INT CACHE SET ON
-DEFAULTH &WF_STYLE_UNITS='PIXELS';
-DEFAULTH &WF_STYLE_HEIGHT='405.0';
-DEFAULTH &WF_STYLE_WIDTH='770.0';
-DEFAULTH &WF_TITLE='WebFOCUS Report';
GRAPH FILE GGSALES
-* Created by Info Assist for Graph
SUM GGSALES.SALES01.DOLLARS
    GGSALES.SALES01.BUDDOLLARS
BY GGSALES.SALES01.REGION
BY GGSALES.SALES01.CATEGORY
ON GRAPH PCHOLD FORMAT JSCHART
ON GRAPH SET VZERO OFF
ON GRAPH SET HTMLENCODE ON
ON GRAPH SET GRAPHDEFAULT OFF
ON GRAPH SET GRWIDTH 1
ON GRAPH SET UNITS &WF_STYLE_UNITS
ON GRAPH SET HAXIS &WF_STYLE_WIDTH
ON GRAPH SET VAXIS &WF_STYLE_HEIGHT
ON GRAPH SET GRMERGE ADVANCED
ON GRAPH SET GRMULTIGRAPH 0
ON GRAPH SET GRLEGEND 1
ON GRAPH SET GRXAXIS 1
ON GRAPH SET LOOKGRAPH VBRSTK1
ON GRAPH SET AUTOFIT ON
ON GRAPH SET STYLE *
*GRAPH_SCRIPT
setPieDepth(0);
setPieTilt(0);
setDepthRadius(0);
setCurveFitEquationDisplay(false);
setPlace(true);
*END
INCLUDE=IBFS:/FILE/IBI_HTML_DIR/javaassist/intl/EN/ENIADefault_combine.sty,$
TYPE=REPORT, TITLETEXT=&WF_TITLE.QUOTEDSTRING, $
*GRAPH_SCRIPT
setReportParsingErrors(false);
setSelectionEnableMove(false);
setColorMode(1);
-*setFillColor(getSeries(0),new Color(200, 145, 218));
-*setFillColor(getSeries(1),new Color(200, 196, 217));
-*setFillColor(getSeries(2),new Color(100, 145, 218));
-*setFillColor(getSeries(3),new Color(100, 196, 217));
-*setFillColor(getSeries(4),new Color(150, 145, 218));
-*setFillColor(getSeries(5),new Color(150, 196, 217));
-*setFillColor(getSeries(6),new Color(0, 145, 218));
-*setFillColor(getSeries(7),new Color(0, 196, 217));
*END
ENDSTYLE
END
-RUN

Pay attention to:
ON GRAPH SET GRLEGEND 1
ON GRAPH SET GRXAXIS 1

To have your own color set, you must uncomment the lines


WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF
In Focus since 2007
November 08, 2016, 01:53 PM
Joel Elscott
Thank you Martin, but unfortunately I don't think my users would go for this. I would need to keep all the labels intact if at all possible.

I really appreciate the idea though, and could maybe use for a different scenario. Thanks again!


WebFOCUS 8.2.03
z/OS
November 08, 2016, 02:07 PM
MartinY
Maybe that way:
ENGINE INT CACHE SET ON
-DEFAULTH &WF_STYLE_UNITS='PIXELS';
-DEFAULTH &WF_STYLE_HEIGHT='405.0';
-DEFAULTH &WF_STYLE_WIDTH='770.0';
-DEFAULTH &WF_TITLE='WebFOCUS Report';
GRAPH FILE GGSALES
-* Created by Info Assist for Graph
SUM GGSALES.SALES01.DOLLARS
    GGSALES.SALES01.BUDDOLLARS
BY GGSALES.SALES01.REGION NOPRINT
BY GGSALES.SALES01.REGION
BY GGSALES.SALES01.CATEGORY
ON GRAPH PCHOLD FORMAT JSCHART
ON GRAPH SET VZERO OFF
ON GRAPH SET HTMLENCODE ON
ON GRAPH SET GRAPHDEFAULT OFF
ON GRAPH SET GRWIDTH 1
ON GRAPH SET UNITS &WF_STYLE_UNITS
ON GRAPH SET HAXIS &WF_STYLE_WIDTH
ON GRAPH SET VAXIS &WF_STYLE_HEIGHT
ON GRAPH SET GRMERGE ADVANCED
ON GRAPH SET GRMULTIGRAPH 0
ON GRAPH SET GRLEGEND 1
ON GRAPH SET GRXAXIS 2
ON GRAPH SET LOOKGRAPH VBRSTK1
ON GRAPH SET AUTOFIT ON
ON GRAPH SET STYLE *
*GRAPH_SCRIPT
setPieDepth(0);
setPieTilt(0);
setDepthRadius(0);
setCurveFitEquationDisplay(false);
setPlace(true);
*END
INCLUDE=IBFS:/FILE/IBI_HTML_DIR/javaassist/intl/EN/ENIADefault_combine.sty,$
TYPE=REPORT, TITLETEXT=&WF_TITLE.QUOTEDSTRING, $
*GRAPH_SCRIPT
setReportParsingErrors(false);
setSelectionEnableMove(false);
setColorMode(1);
-*setFillColor(getSeries(0),new Color(200, 145, 218));
-*setFillColor(getSeries(1),new Color(200, 196, 217));
-*setFillColor(getSeries(2),new Color(100, 145, 218));
-*setFillColor(getSeries(3),new Color(100, 196, 217));
-*setFillColor(getSeries(4),new Color(150, 145, 218));
-*setFillColor(getSeries(5),new Color(150, 196, 217));
-*setFillColor(getSeries(6),new Color(0, 145, 218));
-*setFillColor(getSeries(7),new Color(0, 196, 217));
*END
ENDSTYLE
END
-RUN

Pay attention to:
BY GGSALES.SALES01.REGION NOPRINT
BY GGSALES.SALES01.REGION
BY GGSALES.SALES01.CATEGORY
...
ON GRAPH SET GRLEGEND 1
ON GRAPH SET GRXAXIS 2



WF versions : Prod 8.2.04M gen 33, Dev 8.2.04M gen 33, OS : Windows, DB : MSSQL, Outputs : HTML, Excel, PDF
In Focus since 2007
November 09, 2016, 10:57 AM
Joel Elscott
This is perfect, thank you!! Now I just need to figure out how to implement this into my much more complicated app. Thanks again!


WebFOCUS 8.2.03
z/OS