Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[birt-charting-dev] How to create Bar chart using Chart API


 
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?
 
this is following code

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@xxxxxxxxx
URL:www.grameensoftware.com

Back to the top