any one knows how to create bar chart programatically using chart api, i got some code in the birt help site, but there is no direction how apply dataset to the barchart.hope smart guy can do this. so any smart here?
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;
}
--
Md.Saiufl Islam Raju
Software Engineer
Grameen Bank Bhaban(11th floor).
Mirpur-2, Dhaka-1216.
Ph(off):-88-02-8021647-8, Ext-114
Email.
saiful.raju@xxxxxxxxxURL:
www.grameensoftware.com