com.cete.dynamicpdf.pageelements.charting
Class PercentageDataLabel



Example: The following example creates a date time 100percent stacked bar series chart and creates a percentage data label.

import com.cete.dynamicpdf.*;
import com.cete.dynamicpdf.pageelements.charting.*;
import com.cete.dynamicpdf.pageelements.charting.axes.*;
import com.cete.dynamicpdf.pageelements.charting.series.*;
import java.util.Calendar;
 
public class MyClass{
       public static void main(String args[]){
 
           // Create a PDF Document
           Document document = new Document();
 
           // Create a Page and add it to the document
           Page page = new Page();
           document.getPages().add(page);
 
           // Create a chart
           Chart chart = new Chart(0, 0, 400, 200);
        
           // Get the default plot area from the chart
           PlotArea plotArea = chart.getPrimaryPlotArea();
        
           // Create header titles and add it to the chart
           Title title1 = new Title("Website Visitors");
           Title title2 = new Title("Year - 2007");
           chart.getHeaderTitles().add(title1);
           chart.getHeaderTitles().add(title2);
        
           // Create percentage xAxis and add labels to it
           PercentageXAxis xAxis = new PercentageXAxis();
           xAxis.getLabels().add(new PercentageXAxisLabel("0%", 0));
           xAxis.getLabels().add(new PercentageXAxisLabel("20%", 20));
           xAxis.getLabels().add(new PercentageXAxisLabel("40%", 40));
           xAxis.getLabels().add(new PercentageXAxisLabel("60%", 60));
           xAxis.getLabels().add(new PercentageXAxisLabel("80%", 80));
           xAxis.getLabels().add(new PercentageXAxisLabel("100%", 100));
        
           // Create a date time yAxis
           DateTimeYAxis yAxis = new DateTimeYAxis();
        
           Calendar p0 = Calendar.getInstance();
           p0.set(2007,0,1);
           Calendar p1 = Calendar.getInstance();
           p1.set(2007,1,1);
           Calendar p2 = Calendar.getInstance();
           p2.set(2007,2,1);
           Calendar p3 = Calendar.getInstance();
           p3.set(2007,3,1);
        
           // Create a date time 100percent stacked bar series element and add values to it
           DateTime100PercentStackedBarSeriesElement barSeriesElement1 = new DateTime100PercentStackedBarSeriesElement("Website A");        
           barSeriesElement1.getValues().add(5, p0);        
           barSeriesElement1.getValues().add(7, p1);        
           barSeriesElement1.getValues().add(9, p2);        
           barSeriesElement1.getValues().add(6, p3);
        
           DateTime100PercentStackedBarSeriesElement barSeriesElement2 = new DateTime100PercentStackedBarSeriesElement("Website B");      
           barSeriesElement2.getValues().add(4, p0);        
           barSeriesElement2.getValues().add(2, p1);        
           barSeriesElement2.getValues().add(5, p2);        
           barSeriesElement2.getValues().add(8, p3);
        
           DateTime100PercentStackedBarSeriesElement barSeriesElement3 = new DateTime100PercentStackedBarSeriesElement("Website C");        
           barSeriesElement3.getValues().add(2, p0);        
           barSeriesElement3.getValues().add(4, p1);        
           barSeriesElement3.getValues().add(6, p2);        
           barSeriesElement3.getValues().add(9, p3);
        
           // Create a date time 100percent  stacked bar series and add date time  100percent  stacked bar series elements to it
           DateTime100PercentStackedBarSeries stackedBarSeries1 = new DateTime100PercentStackedBarSeries(xAxis, yAxis);
           stackedBarSeries1.add(barSeriesElement1);
           stackedBarSeries1.add(barSeriesElement2);
           stackedBarSeries1.add(barSeriesElement3);
        
           // Create a percentage data label
           BarColumnPercentageDataLabel percentageDataLabel = new BarColumnPercentageDataLabel(true);
           barSeriesElement1.setDataLabel( percentageDataLabel);
           barSeriesElement2.setDataLabel(percentageDataLabel);
           barSeriesElement3.setDataLabel(percentageDataLabel);
        
           // Add stacked bar series to the plot area
           plotArea.getSeries().add(stackedBarSeries1);
        
           // Set label list format for the axislabels
           stackedBarSeries1.getYAxis().setLabelFormat("MMM");
        
           // Add the chart to the page
           page.getElements().add(chart);
 
           // Save the PDF
           document.draw("[PhysicalPath]/MyDocument.pdf" );
       }
 }