| [birt-charting-dev] How to create Bar chart using Chart API |
protected static final Chart createMultiYAxisChart( )
{
ChartWithAxes cwaBar = ChartWithAxesImpl.create( );
// Plot
cwaBar.getBlock( ).setBackground( ColorDefinitionImpl.WHITE( ) );
Plot p = cwaBar.getPlot( );
p.getClientArea( ).setBackground( ColorDefinitionImpl.create( 255,
245,
255 ) );
// Title
cwaBar.getTitle( )
.getLabel( )
.getCaption( )
.setValue( "Line Chart with Multiple Y Axis" );//$NON-NLS-1$
// Legend
Legend lg = cwaBar.getLegend( );
LineAttributes lia = lg.getOutline( );
lg.getText( ).getFont( ).setSize( 16 );
lia.setStyle( LineStyle.SOLID_LITERAL );
lg.getInsets( ).set( 10, 5, 0, 0 );
lg.getOutline( ).setVisible( false );
lg.setAnchor( Anchor.NORTH_LITERAL );
// X-Axis
Axis xAxisPrimary = cwaBar.getPrimaryBaseAxes( )[0];
xAxisPrimary.setType( AxisType.TEXT_LITERAL );
xAxisPrimary.getMajorGrid( ).setTickStyle( TickStyle.BELOW_LITERAL );
xAxisPrimary.getOrigin
( ).setType( IntersectionType.VALUE_LITERAL );
xAxisPrimary.getTitle( ).setVisible( false );
// Y-Axis
Axis yAxisPrimary = cwaBar.getPrimaryOrthogonalAxis( xAxisPrimary );
yAxisPrimary.getMajorGrid( ).setTickStyle( TickStyle.LEFT_LITERAL );
yAxisPrimary.getTitle( )
.getCaption( )
.setValue( "Sales Growth ($Million)" );//$NON-NLS-1$
// Y-Axis (2)
Axis yAxis = AxisImpl.create( Axis.ORTHOGONAL );
yAxis.setType( AxisType.LINEAR_LITERAL );
yAxis.getMajorGrid( ).setTickStyle( TickStyle.RIGHT_LITERAL );
yAxis.setLabelPosition( Position.RIGHT_LITERAL
);
xAxisPrimary.getAssociatedAxes( ).add( yAxis );
// Data Set
TextDataSet categoryValues = TextDataSetImpl.create( new String[]{
"March", "April", "May", "June", "July"} );//$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$//$NON-NLS-5$
NumberDataSet orthoValues1 = NumberDataSetImpl.create( new double[]{
12.5, 19.6, 18.3, 13.2, 26.5
} );
NumberDataSet orthoValues2 = NumberDataSetImpl.create( new double[]{
22.7, 23.6, 38.3, 43.2
, 40.5
} );
// X-Series
Series seCategory = SeriesImpl.create( );
seCategory.setDataSet( categoryValues );
SeriesDefinition sdX = SeriesDefinitionImpl.create( );
xAxisPrimary.getSeriesDefinitions( ).add( sdX );
sdX.getSeries( ).add( seCategory );
// Y-Series (1)
LineSeries ls1 = (LineSeries) LineSeriesImpl.create( );
ls1.setSeriesIdentifier( "A Corp." );//$NON-NLS-1$
ls1.setDataSet( orthoValues1 );
ls1.getLineAttributes( ).setColor(
ColorDefinitionImpl.CREAM( ) );
ls1.getMarker( ).setType( MarkerType.TRIANGLE_LITERAL );
ls1.getMarker( ).setSize( 10 );
ls1.getLabel( ).setVisible( true );
SeriesDefinition sdY1 = SeriesDefinitionImpl.create( );
sdY1.getSeriesPalette( ).update( -2 );
yAxisPrimary.getSeriesDefinitions( ).add( sdY1 );
sdY1.getSeries( ).add( ls1 );
// Y-Serires (2)
LineSeries ls2 = (LineSeries) LineSeriesImpl.create( );
ls2.setSeriesIdentifier( "B Corp." );//$NON-NLS-1$
ls2.setDataSet( orthoValues2 );
ls2.getLineAttributes( ).setColor(
ColorDefinitionImpl.CREAM( ) );
ls2.getMarker( ).setType( MarkerType.CIRCLE_LITERAL );
ls2.getMarker( ).setSize( 10 );
ls2.getLabel( ).setVisible( true );
SeriesDefinition sdY2 = SeriesDefinitionImpl.create( );
sdY2.getSeriesPalette( ).update( -3 );
yAxis.getSeriesDefinitions( ).add( sdY2 );
sdY2.getSeries( ).add( ls2 );
return cwaBar;
}