Learn how to add chart annotation and decoration using InetSoft charting software. Since 1996, InetSoft has been offering free and commercial charting and reporting tools.
Style Intelligence is a commercial business intelligence software package for enterprise chart generation and real-time access to almost any data source. This software is also well-suited for developers to embed into other applications, on-premise or SaaS-based.
The GraphForm object contains information for form (i.e., shape) elements manually drawn on the chart.
Type
value Number
Example (Report or Viewsheet)
importPackage(inetsoft.graph) importPackage(inetsoft.graph.element) importPackage(inetsoft.graph.scale) importPackage(inetsoft.graph.aesthetic) importPackage(inetsoft.graph.data) importPackage(inetsoft.graph.guide.form) var arr = [["State", "Quantity"], ["NJ", 200], ["NY", 300]]; dataset = new DefaultDataSet(arr); graph = new EGraph(); var elem = new IntervalElement("State", "Quantity"); var form = new LineForm(); form.addPoint(new java.awt.Point(0,0)); form.addPoint(new java.awt.Point(100,100)); form.addPoint(new java.awt.Point(200,100)); form.setColor(java.awt.Color(0xff0000)); graph.addForm(form); graph.addElement(elem);
Specifies whether the form should be filled or unfilled.
Type
Boolean true: fill the shape false: do not fill the shape
Example (Report or Viewsheet)
importPackage(inetsoft.graph) importPackage(inetsoft.graph.element) importPackage(inetsoft.graph.scale) importPackage(inetsoft.graph.aesthetic) importPackage(inetsoft.graph.data) importPackage(inetsoft.graph.guide.form) var arr = [["State", "Quantity"], ["NJ", 200], ["NY", 300]]; dataset = new DefaultDataSet(arr); graph = new EGraph(); var elem = new IntervalElement("State", "Quantity"); var form = new LineForm(); form.addPoint(new java.awt.Point(0,0)); form.addPoint(new java.awt.Point(100,100)); form.addPoint(new java.awt.Point(200,100)); form.setFill(true); graph.addForm(form); graph.addElement(elem);
For forms that use relative positioning (values or tuples), specifies whether the chart should be resized so that forms remain fully visible in the chart area.
Type
Boolean true: resize chart false: do not resize chart (crop forms)
Example (Report or Viewsheet)
importPackage(inetsoft.graph) importPackage(inetsoft.graph.element) importPackage(inetsoft.graph.scale) importPackage(inetsoft.graph.aesthetic) importPackage(inetsoft.graph.data) importPackage(inetsoft.graph.guide.form) var arr = [["State", "Quantity"], ["NJ", 200], ["NY", 300]]; dataset = new DefaultDataSet(arr); graph = new EGraph(); var form = new LineForm(); var elem = new IntervalElement("State", "Quantity"); form.addValues(['NJ',0]); form.addValues(['NJ',300]); form.addValues(['NY',400]); form.setInPlot(true); form.setFill(true); graph.addForm(form); graph.addElement(elem);
Specifies the line style used to draw the form.
Type
value a GLine constant
Example (Report or Viewsheet)
importPackage(inetsoft.graph) importPackage(inetsoft.graph.element) importPackage(inetsoft.graph.scale) importPackage(inetsoft.graph.aesthetic) importPackage(inetsoft.graph.data) importPackage(inetsoft.graph.guide.form) var arr = [["State", "Quantity"], ["NJ", 200], ["NY", 300]]; dataset = new DefaultDataSet(arr); graph = new EGraph(); var form = new LineForm(); var elem = new IntervalElement("State", "Quantity"); form.addPoint(new java.awt.Point(0,0)); form.addPoint(new java.awt.Point(100,100)); form.addPoint(new java.awt.Point(200,100)); form.setLine(GraphConstants.DASH_LINE); graph.addForm(form); graph.addElement(elem);
Specifies the measure for which the form should be displayed. If the chart contains a measure of this name, the form object is displayed. Otherwise it is not displayed. This is useful for FacetCoord charts, when the form should be displayed only for the chart that represents a particular measure.
Type
col name of a column (String)
You can pass a field name (e.g., 'Quantity') to the constructor, or specify this later using the inherited VisualFrame.setField(field) property. To stylize or reposition text created using a DefaultTextFrame, use the GraphElement.setTextSpec(spec) and GraphElement.setLabelPlacement(value) options.
Example (Report or Viewsheet)
importPackage(inetsoft.graph) importPackage(inetsoft.graph.element) importPackage(inetsoft.graph.scale) importPackage(inetsoft.graph.aesthetic) importPackage(inetsoft.graph.data) importPackage(inetsoft.graph.coord) importPackage(inetsoft.graph.guide.form) var arr = [["State", "Quantity", "Sales"], ["NJ", 200, 800], ["NY", 300, 600]]; dataset = new DefaultDataSet(arr); graph = new EGraph(); var elem = new IntervalElement("State", "Quantity"); var elem2 = new IntervalElement("State", "Sales"); var form = new LabelForm(); form.setValues(['NJ',200]); form.setLabel("NJ Sales"); form.setAlignmentX(GraphConstants.CENTER_ALIGNMENT); form.setMeasure("Sales"); graph.addForm(form); var scale = new CategoricalScale("State"); var qscale = new LinearScale("Quantity"); var sscale = new LinearScale("Sales"); var qcoord = new RectCoord(scale, qscale); var scoord = new RectCoord(scale, sscale); var facet = new FacetCoord(); facet.setInnerCoordinates([qcoord, scoord]); graph.setCoordinate(facet); graph.addElement(elem); graph.addElement(elem2);
Specifies the layering order for forms. A shape with a larger zIndex overlays a shape with a smaller zIndex. To ensure that a manually drawn shape appears in front of other chart elements, select a large zIndex. See Z-Index Defaults for the values of standard chart objects.
Type
value the index, a positive integer
Example (Report or Viewsheet)
importPackage(inetsoft.graph) importPackage(inetsoft.graph.element) importPackage(inetsoft.graph.scale) importPackage(inetsoft.graph.aesthetic) importPackage(inetsoft.graph.data) importPackage(inetsoft.graph.coord) importPackage(inetsoft.graph.guide.form) var arr = [["State","Quantity"], ["NJ",200], ["NY",300]]; dataset = new DefaultDataSet(arr); graph = new EGraph(); var elem = new IntervalElement("State", "Quantity"); var form1 = new LineForm(); var form2 = new LineForm(); form1.addPoint(new java.awt.Point(0,0)); form1.addPoint(new java.awt.Point(100,100)); form1.addPoint(new java.awt.Point(200,100)); form1.setColor(java.awt.Color(0xff0000)); form1.setFill(true); form1.setZIndex(300); form2.addPoint(new java.awt.Point(100,0)); form2.addPoint(new java.awt.Point(150,150)); form2.addPoint(new java.awt.Point(200,100)); form2.setColor(java.awt.Color(0xffff00)); form2.setFill(true); form2.setZIndex(200); graph.addForm(form1); graph.addForm(form2); graph.addElement(elem);
Specifies whether an arrow should be drawn at the end of the line (i.e., at the last point specified for the line form).
Type
Boolean true: draw arrow false: no arrow
Example (Report or Viewsheet)
importPackage(inetsoft.graph) importPackage(inetsoft.graph.element) importPackage(inetsoft.graph.scale) importPackage(inetsoft.graph.aesthetic) importPackage(inetsoft.graph.data) importPackage(inetsoft.graph.coord) importPackage(inetsoft.graph.guide.form) var arr = [["State", "Quantity"], ["NJ", 200], ["NY", 300]]; dataset = new DefaultDataSet(arr); graph = new EGraph(); var elem = new IntervalElement("State", "Quantity"); var form = new LineForm(); form.addPoint(new java.awt.Point(0,0)); form.addPoint(new java.awt.Point(100,100)); form.setEndArrow(true); form.setColor(java.awt.Color(0xff0000)); graph.addForm(form); graph.addElement(elem);
Specifies the pixel location (integer values) or proportional location (fractional values) defining a point on the line. (Positive values specify distance from left/bottom. Negative values specify distance from right/top.)
Type
value a subclass of java.awt.geom.Point2D e.g., java.awt.Point for pixels java.awt.geom.Point2D.Double for proportion
Example (Report or Viewsheet)
Bind a line-type chart to the sample 'All Sales' query, with 'Company' (top 5) on the X-axis, and Sum(Total) on the Y-axis. Add the following script in the onLoad Handler.
importPackage(inetsoft.graph) importPackage(inetsoft.graph.element) importPackage(inetsoft.graph.scale) importPackage(inetsoft.graph.aesthetic) importPackage(inetsoft.graph.data) importPackage(inetsoft.graph.coord) importPackage(inetsoft.graph.guide.form) var arr = [["State", "Quantity"], ["NJ", 200], ["NY", 300]]; dataset = new DefaultDataSet(arr); graph = new EGraph(); var elem = new IntervalElement("State", "Quantity"); var form1 = new LineForm(); var form2 = new LineForm(); // Set form1 points in pixels: form1.addPoint(new java.awt.Point(100, 0)); form1.addPoint(new java.awt.Point(100, 200)); form1.addPoint(new java.awt.Point(200,100)); form1.setColor(java.awt.Color(0xff0000)); // Set form2 points proportionally: form2.addPoint(new java.awt.geom.Point2D.Double(.5,0)); form2.addPoint(new java.awt.geom.Point2D.Double(.5,.7)); form2.addPoint(new java.awt.geom.Point2D.Double(.7,.5)); form2.setColor(java.awt.Color(0xff00ff)); graph.addForm(form1); graph.addForm(form2); graph.addElement(elem);
Previous: Chart Generator Tool |
Next: Create a Graph
|