Example usage for org.jfree.chart JFreeChart getCategoryPlot

List of usage examples for org.jfree.chart JFreeChart getCategoryPlot

Introduction

In this page you can find the example usage for org.jfree.chart JFreeChart getCategoryPlot.

Prototype

public CategoryPlot getCategoryPlot() 

Source Link

Document

Returns the plot cast as a CategoryPlot .

Usage

From source file:com.pusksesmas.form_statistik.statistik_keuangan_administrasi.java

private void tabelDataMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tabelDataMouseClicked

    if (vpil.getSelectedIndex() == 1) {
        int row = tabelData.getSelectedRow();
        String jan = (tabelData.getModel().getValueAt(row, 0)).toString();
        String feb = (tabelData.getModel().getValueAt(row, 1)).toString();
        String mar = (tabelData.getModel().getValueAt(row, 2)).toString();
        String apr = (tabelData.getModel().getValueAt(row, 3)).toString();
        String mei = (tabelData.getModel().getValueAt(row, 4)).toString();
        String jun = (tabelData.getModel().getValueAt(row, 5)).toString();
        String jul = (tabelData.getModel().getValueAt(row, 6)).toString();
        String agus = (tabelData.getModel().getValueAt(row, 7)).toString();
        String sept = (tabelData.getModel().getValueAt(row, 8)).toString();
        String okt = (tabelData.getModel().getValueAt(row, 9)).toString();
        String nov = (tabelData.getModel().getValueAt(row, 10)).toString();
        String des = (tabelData.getModel().getValueAt(row, 11)).toString();

        DefaultCategoryDataset pieDataset = new DefaultCategoryDataset();
        //        pieDataset.setValue("Diagnosa", new Integer(jan));
        pieDataset.setValue(new Integer(jan), "", "Januari");
        pieDataset.setValue(new Integer(feb), "", "Februari");
        pieDataset.setValue(new Integer(mar), "", "Maret");
        pieDataset.setValue(new Integer(apr), "", "April");
        pieDataset.setValue(new Integer(mei), "", "Mei");
        pieDataset.setValue(new Integer(jun), "", "Juni");
        pieDataset.setValue(new Integer(jul), "", "Juli");
        pieDataset.setValue(new Integer(agus), "", "Agustus");
        pieDataset.setValue(new Integer(sept), "", "September");
        pieDataset.setValue(new Integer(okt), "", "Oktober");
        pieDataset.setValue(new Integer(nov), "", "November");
        pieDataset.setValue(new Integer(des), "", "Desember");
        JFreeChart chart = ChartFactory.createBarChart3D("STATISTIK KEUANGAN ADMINISTRASI", "BULAN", "JUMLAH",
                (CategoryDataset) pieDataset, PlotOrientation.VERTICAL, false, true, false);
        chart.setBackgroundPaint(Color.yellow);
        chart.getTitle().setPaint(Color.red);

        final CategoryPlot p = chart.getCategoryPlot();

        BarRenderer renderer = (BarRenderer) p.getRenderer();
        DecimalFormat sdf = new DecimalFormat("RP #,##0");
        renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", sdf));
        p.setRenderer(renderer);/*from   w ww  .  j  a va  2s .com*/
        renderer.setBasePositiveItemLabelPosition(
                new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.TOP_LEFT));
        renderer.setItemLabelsVisible(true);
        chart.getCategoryPlot().setRenderer(renderer);

        p.setRangeGridlinePaint(Color.blue);
        p.setBackgroundPaint(Color.white);
        ChartFrame frame = new ChartFrame("barchart", chart);
        frame.setVisible(true);
        frame.setLocation(250, 100);
        frame.setSize(800, 600);
    } else if (vpil.getSelectedIndex() == 2) {
        int row = tabelData.getSelectedRow();
        String jan = (tabelData.getModel().getValueAt(row, 0)).toString();
        String feb = (tabelData.getModel().getValueAt(row, 1)).toString();
        String mar = (tabelData.getModel().getValueAt(row, 2)).toString();
        String apr = (tabelData.getModel().getValueAt(row, 3)).toString();
        String mei = (tabelData.getModel().getValueAt(row, 4)).toString();
        String jun = (tabelData.getModel().getValueAt(row, 5)).toString();
        String jul = (tabelData.getModel().getValueAt(row, 6)).toString();
        String agus = (tabelData.getModel().getValueAt(row, 7)).toString();
        String sept = (tabelData.getModel().getValueAt(row, 8)).toString();
        String okt = (tabelData.getModel().getValueAt(row, 9)).toString();
        String nov = (tabelData.getModel().getValueAt(row, 10)).toString();
        String des = (tabelData.getModel().getValueAt(row, 11)).toString();
        DefaultPieDataset pieDataset = new DefaultPieDataset();
        pieDataset.setValue("Januari", new Integer(jan));
        pieDataset.setValue("Februari", new Integer(feb));
        pieDataset.setValue("Maret", new Integer(mar));
        pieDataset.setValue("April", new Integer(apr));
        pieDataset.setValue("Mei", new Integer(mei));
        pieDataset.setValue("Juni", new Integer(jun));
        pieDataset.setValue("Juli", new Integer(jul));
        pieDataset.setValue("Agustus", new Integer(agus));
        pieDataset.setValue("September", new Integer(sept));
        pieDataset.setValue("Oktober", new Integer(okt));
        pieDataset.setValue("November", new Integer(nov));
        pieDataset.setValue("Desember", new Integer(des));
        JFreeChart chart = ChartFactory.createPieChart("STATISTIK KEUANGAN ADMINISTRASI", pieDataset, true,
                true, true);
        //        PiePlot3D P = (PiePlot3D)chart.getPlot();
        PiePlot P = (PiePlot) chart.getPlot();
        //P.setForegroundAlpha(TOP_ALIGNMENT);
        ChartFrame frame = new ChartFrame("STATISTIK KEUANGAN ADMINISTRASI", chart);
        frame.setVisible(true);
        frame.setLocation(250, 100);
        frame.setSize(800, 600);
    } else {

    }

}

From source file:it.eng.spagobi.engines.chart.bo.charttypes.dialcharts.BulletGraph.java

public JFreeChart createChart(DatasetMap datasets) {

    logger.debug("IN");
    Dataset dataset = (Dataset) datasets.getDatasets().get("1");
    ValueDataset valDataSet = (ValueDataset) dataset;

    Number value = valDataSet.getValue();

    DefaultCategoryDataset datasetC = new DefaultCategoryDataset();
    datasetC.addValue(value, "", "");

    // customize a bar chart 
    JFreeChart chart = ChartFactory.createBarChart(null, null, null, datasetC, PlotOrientation.HORIZONTAL,
            false, false, false);//from w  w  w .j a  v a2  s . com
    chart.setBorderVisible(false);

    chart.setBackgroundPaint(color);

    TextTitle title = setStyleTitle(name, styleTitle);
    chart.setTitle(title);
    if (subName != null && !subName.equals("")) {
        TextTitle subTitle = setStyleTitle(subName, styleSubTitle);
        chart.addSubtitle(subTitle);
    }

    CategoryPlot plot = chart.getCategoryPlot();
    plot.setOutlineVisible(true);
    plot.setOutlinePaint(Color.BLACK);
    plot.setInsets(new RectangleInsets(0.0, 0.0, 0.0, 0.0));
    plot.setBackgroundPaint(null);
    plot.setDomainGridlinesVisible(false);
    plot.setRangeGridlinesVisible(false);
    plot.setRangeCrosshairVisible(false);
    plot.setAnchorValue(value.doubleValue());

    // add the target marker 
    if (target != null) {
        ValueMarker marker = new ValueMarker(target.doubleValue(), Color.BLACK, new BasicStroke(2.0f));
        plot.addRangeMarker(marker, Layer.FOREGROUND);
    }

    //sets different marks
    for (Iterator iterator = intervals.iterator(); iterator.hasNext();) {
        KpiInterval interval = (KpiInterval) iterator.next();
        // add the marks 
        IntervalMarker marker = new IntervalMarker(interval.getMin(), interval.getMax(), interval.getColor());
        plot.addRangeMarker(marker, Layer.BACKGROUND);
        logger.debug("Added new interval to the plot");
    }

    // customize axes 
    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setVisible(false);

    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setVisible(true);
    // calculate the upper limit 
    //double upperBound = target * upperFactor; 
    rangeAxis.setRange(new Range(lower, upper));
    plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);

    // customize renderer 
    BarRenderer renderer = (BarRenderer) plot.getRenderer();
    renderer.setMaximumBarWidth(0.18);
    renderer.setSeriesPaint(0, Color.BLACK);

    return chart;
}

From source file:org.pentaho.plugin.jfreereport.reportcharts.BarLineChartExpression.java

protected void configureChart(final JFreeChart chart) {
    super.configureChart(chart);

    final CategoryPlot plot = chart.getCategoryPlot();

    if (isSharedRangeAxis() == false) {
        final ValueAxis linesAxis = plot.getRangeAxis(1);
        if (linesAxis instanceof NumberAxis) {
            final NumberAxis numberAxis = (NumberAxis) linesAxis;
            numberAxis.setAutoRangeIncludesZero(isLineAxisIncludesZero());
            numberAxis.setAutoRangeStickyZero(isLineAxisStickyZero());

            if (getLinePeriodCount() > 0) {
                if (getLineTicksLabelFormat() != null) {
                    final FastDecimalFormat formatter = new FastDecimalFormat(getLineTicksLabelFormat(),
                            getResourceBundleFactory().getLocale());
                    numberAxis.setTickUnit(new FastNumberTickUnit(getLinePeriodCount(), formatter));
                } else {
                    numberAxis.setTickUnit(new FastNumberTickUnit(getLinePeriodCount()));
                }//from  w ww .j  a  v a2s . com
            } else {
                if (getLineTicksLabelFormat() != null) {
                    final DecimalFormat formatter = new DecimalFormat(getLineTicksLabelFormat(),
                            new DecimalFormatSymbols(getResourceBundleFactory().getLocale()));
                    numberAxis.setNumberFormatOverride(formatter);
                }
            }
        } else if (linesAxis instanceof DateAxis) {
            final DateAxis numberAxis = (DateAxis) linesAxis;

            if (getLinePeriodCount() > 0 && getLineTimePeriod() != null) {
                if (getLineTicksLabelFormat() != null) {
                    final SimpleDateFormat formatter = new SimpleDateFormat(getLineTicksLabelFormat(),
                            new DateFormatSymbols(getResourceBundleFactory().getLocale()));
                    numberAxis.setTickUnit(new DateTickUnit(getDateUnitAsInt(getLineTimePeriod()),
                            (int) getLinePeriodCount(), formatter));
                } else {
                    numberAxis.setTickUnit(new DateTickUnit(getDateUnitAsInt(getLineTimePeriod()),
                            (int) getLinePeriodCount()));
                }
            } else if (getRangeTickFormatString() != null) {
                final SimpleDateFormat formatter = new SimpleDateFormat(getRangeTickFormatString(),
                        new DateFormatSymbols(getResourceBundleFactory().getLocale()));
                numberAxis.setDateFormatOverride(formatter);
            }
        }

        if (linesAxis != null) {
            final Font labelFont = Font.decode(getLabelFont());
            linesAxis.setLabelFont(labelFont);
            linesAxis.setTickLabelFont(labelFont);

            if (getLineTitleFont() != null) {
                linesAxis.setLabelFont(getLineTitleFont());
            }
            if (getLineTickFont() != null) {
                linesAxis.setTickLabelFont(getLineTickFont());
            }
            final int level = getRuntime().getProcessingContext().getCompatibilityLevel();
            if (ClassicEngineBoot.isEnforceCompatibilityFor(level, 3, 8)) {
                if (getRangeMinimum() != 0) {
                    linesAxis.setLowerBound(getLineRangeMinimum());
                }
                if (getRangeMaximum() != 1) {
                    linesAxis.setUpperBound(getLineRangeMaximum());
                }
                if (getLineRangeMinimum() == 0 && getLineRangeMaximum() == 1) {
                    linesAxis.setLowerBound(0);
                    linesAxis.setUpperBound(1);
                    linesAxis.setAutoRange(true);
                }
            } else {
                linesAxis.setLowerBound(getLineRangeMinimum());
                linesAxis.setUpperBound(getLineRangeMaximum());
                linesAxis.setAutoRange(isLineAxisAutoRange());
            }
        }
    }

    final LineAndShapeRenderer linesRenderer = (LineAndShapeRenderer) plot.getRenderer(1);
    if (linesRenderer != null) {
        //set stroke with line width
        linesRenderer.setStroke(translateLineStyle(lineWidth, lineStyle));
        //hide shapes on line
        linesRenderer.setShapesVisible(isMarkersVisible());
        linesRenderer.setBaseShapesFilled(isMarkersVisible());

        //set colors for each line
        for (int i = 0; i < lineSeriesColor.size(); i++) {
            final String s = (String) lineSeriesColor.get(i);
            linesRenderer.setSeriesPaint(i, parseColorFromString(s));
        }
    }
}

From source file:com.att.aro.ui.view.overviewtab.TraceBenchmarkChartPanel.java

private JFreeChart initializeChart() {

    JFreeChart chart = ChartFactory.createBarChart(
            ResourceBundleHelper.getMessageString("overview.traceoverview.title"), null, null, createDataset(),
            PlotOrientation.HORIZONTAL, false, true, false);
    chart.setBackgroundPaint(this.getBackground());
    chart.getTitle().setFont(AROUIManager.HEADER_FONT);

    this.plot = chart.getCategoryPlot();
    plot.setBackgroundPaint(Color.white);
    plot.setDomainGridlinePaint(Color.gray);
    plot.setRangeGridlinePaint(Color.gray);
    plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);

    CategoryAxis valueRangeAxis = plot.getDomainAxis();
    valueRangeAxis.setMaximumCategoryLabelWidthRatio(1.0f);
    valueRangeAxis.setMaximumCategoryLabelLines(2);
    valueRangeAxis.setLabelFont(AROUIManager.LABEL_FONT);
    valueRangeAxis.setTickLabelFont(AROUIManager.LABEL_FONT);

    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setLabel(ResourceBundleHelper.getMessageString("analysisresults.percentile"));
    rangeAxis.setRange(0.0, 100.0);/*from   w  w w  .  j  a va 2s .c o  m*/
    rangeAxis.setTickUnit(new NumberTickUnit(10));
    rangeAxis.setLabelFont(AROUIManager.LABEL_FONT);
    rangeAxis.setTickLabelFont(AROUIManager.LABEL_FONT);

    BarRenderer renderer = new StackedBarRenderer();
    renderer.setBasePaint(AROUIManager.CHART_BAR_COLOR);
    renderer.setAutoPopulateSeriesPaint(false);
    renderer.setBaseItemLabelGenerator(new PercentLabelGenerator());
    renderer.setBaseItemLabelsVisible(true);
    renderer.setBaseItemLabelPaint(Color.black);

    // Make second bar in stack invisible
    renderer.setSeriesItemLabelsVisible(1, false);
    renderer.setSeriesPaint(1, new Color(0, 0, 0, 0));

    ItemLabelPosition insideItemlabelposition = new ItemLabelPosition(ItemLabelAnchor.INSIDE3,
            TextAnchor.CENTER_RIGHT);
    renderer.setBasePositiveItemLabelPosition(insideItemlabelposition);

    ItemLabelPosition outsideItemlabelposition = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE3,
            TextAnchor.CENTER_LEFT);
    renderer.setPositiveItemLabelPositionFallback(outsideItemlabelposition);

    renderer.setBarPainter(new StandardBarPainter());
    renderer.setShadowVisible(false);
    renderer.setMaximumBarWidth(BAR_WIDTH_PERCENT);
    renderer.setBaseToolTipGenerator(new CategoryToolTipGenerator() {
        @Override
        public String generateToolTip(CategoryDataset arg0, int arg1, int arg2) {
            String traceInfo = "";
            switch (arg2) {
            case TRACE_AVERAGE:
                traceInfo = ResourceBundleHelper.getMessageString("tooltip.traceAnalysis.avg");
                break;
            case TRACE_ENERGY:
                traceInfo = ResourceBundleHelper.getMessageString("tooltip.traceAnalysis.engy");
                break;
            case TRACE_OVERHEAD:
                traceInfo = ResourceBundleHelper.getMessageString("tooltip.traceAnalysis.ovrhd");
                break;
            default:
                break;
            }

            return traceInfo;
        }
    });

    plot.setRenderer(renderer);
    plot.getDomainAxis().setMaximumCategoryLabelLines(2);

    return chart;

}

From source file:Gui.Pantalla.java

private void DeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_DeleteActionPerformed
    // TODO add your handling code here:
    try {/*w  w  w.  java  2  s  .c  o m*/
        tipoTrabajo = 1;
        AddGraf();
        JFreeChart grafica = ChartFactory.createBarChart("Redimiento en borrado de elementos", "promedio",
                "Tiempo en milisegundos", cuadro, PlotOrientation.VERTICAL, true, true, false);
        CategoryPlot grfic = grafica.getCategoryPlot();
        ChartPanel barras = new ChartPanel(grafica);
        JFreeChart grafica1 = ChartFactory.createBarChart("Redimiento en borrado de elementos",
                "peor de los casos", "Tiempo en milisegundos", cuadro, PlotOrientation.VERTICAL, true, true,
                false);
        CategoryPlot grfic1 = grafica1.getCategoryPlot();
        ChartPanel barras1 = new ChartPanel(grafica1);
        PanChart.removeAll();
        PanChart.add(barras, BorderLayout.CENTER);
        PanChart.validate();
        PanChart1.removeAll();
        PanChart1.add(barras1, BorderLayout.CENTER);
        PanChart1.validate();
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null,
                "Error: los espacios de cantidad de datos y recursiones no deben de estar vacios");
    }
}

From source file:Gui.Pantalla.java

private void FindActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_FindActionPerformed
    // TODO add your handling code here:
    try {/* w w  w .j ava 2  s. c o m*/
        tipoTrabajo = 2;
        AddGraf();
        JFreeChart grafica = ChartFactory.createBarChart("Redimiento en busqueda de elementos", "promedio",
                "Tiempo en milisegundos", cuadro, PlotOrientation.VERTICAL, true, true, false);
        CategoryPlot grfic = grafica.getCategoryPlot();
        ChartPanel barras = new ChartPanel(grafica);
        JFreeChart grafica1 = ChartFactory.createBarChart("Redimiento en busqueda de elementos",
                "peor de los casos", "Tiempo en milisegundos", cuadroPC, PlotOrientation.VERTICAL, true, true,
                false);
        CategoryPlot grfic1 = grafica1.getCategoryPlot();
        ChartPanel barras1 = new ChartPanel(grafica1);
        PanChart.removeAll();
        PanChart.add(barras, BorderLayout.CENTER);
        PanChart.validate();
        PanChart1.removeAll();
        PanChart1.add(barras1, BorderLayout.CENTER);
        PanChart1.validate();
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null,
                "Error: los espacios de cantidad de datos y recursiones no deben de estar vacios");
    }
}

From source file:edu.ucla.stat.SOCR.chart.demo.LayeredBarChartDemo2.java

protected JFreeChart createLegend(CategoryDataset dataset) {

    //  JFreeChart chart = ChartFactory.createAreaChart(
    JFreeChart chart = ChartFactory.createBarChart(chartTitle, // chart title
            domainLabel, // domain axis label
            rangeLabel, // range axis label
            dataset, // data
            PlotOrientation.VERTICAL, // orientation
            true, // include legend
            true, // tooltips
            false // urls
    );/*w  w w  .j a v a  2s.c om*/

    // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
    chart.setBackgroundPaint(Color.white);
    CategoryPlot plot = chart.getCategoryPlot();

    BarRenderer renderer = (BarRenderer) plot.getRenderer();
    GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, Color.blue, 0.0f, 0.0f, new Color(0, 0, 64));
    GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, Color.green, 0.0f, 0.0f, new Color(0, 64, 0));
    GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f, 0.0f, new Color(64, 0, 0));
    renderer.setSeriesPaint(0, gp0);
    renderer.setSeriesPaint(1, gp1);
    renderer.setSeriesPaint(2, gp2);
    // renderer.setDrawOutlines(true);
    // renderer.setUseFillPaint(true);
    // renderer.setFillPaint(Color.white);
    renderer.setLegendItemLabelGenerator(new SOCRCategorySeriesLabelGenerator());
    return chart;

}

From source file:edu.ucla.stat.SOCR.chart.demo.LayeredBarChartDemo1.java

protected JFreeChart createLegend(CategoryDataset dataset) {

    //  JFreeChart chart = ChartFactory.createAreaChart(
    JFreeChart chart = ChartFactory.createBarChart(chartTitle, // chart title
            domainLabel, // domain axis label
            rangeLabel, // range axis label
            dataset, // data
            PlotOrientation.VERTICAL, // orientation
            true, // include legend
            true, // tooltips
            false // urls
    );/*from   ww w. ja va  2 s. co m*/

    // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
    chart.setBackgroundPaint(Color.white);
    CategoryPlot plot = chart.getCategoryPlot();

    BarRenderer renderer = (BarRenderer) plot.getRenderer();
    GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, Color.blue, 0.0f, 0.0f, new Color(0, 0, 64));
    GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, Color.green, 0.0f, 0.0f, new Color(0, 64, 0));
    GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f, 0.0f, new Color(64, 0, 0));
    renderer.setSeriesPaint(0, gp0);
    renderer.setSeriesPaint(1, gp1);
    renderer.setSeriesPaint(2, gp2);

    // renderer.setDrawOutlines(true);
    // renderer.setUseFillPaint(true);
    // renderer.setFillPaint(Color.white);
    renderer.setLegendItemLabelGenerator(new SOCRCategorySeriesLabelGenerator());
    return chart;

}

From source file:Gui.Pantalla.java

private void InsertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_InsertActionPerformed
    // TODO add your handling code here:
    try {/*from   w  w  w  .j  a v  a 2 s.c  om*/
        tipoTrabajo = 0;
        AddGraf();
        JFreeChart grafica = ChartFactory.createBarChart("Redimiento en insercin de elementos", "promedio",
                "Tiempo en milisegundos", cuadro, PlotOrientation.VERTICAL, true, true, false);
        CategoryPlot grfic = grafica.getCategoryPlot();
        ChartPanel barras = new ChartPanel(grafica);
        JFreeChart grafica1 = ChartFactory.createBarChart("Redimiento en insercin de elementos",
                "peor de los casos", "Tiempo en milisegundos", cuadroPC, PlotOrientation.VERTICAL, true, true,
                false);
        CategoryPlot grfic1 = grafica1.getCategoryPlot();
        ChartPanel barras1 = new ChartPanel(grafica1);
        PanChart.removeAll();
        PanChart.add(barras, BorderLayout.CENTER);
        PanChart.validate();
        PanChart1.removeAll();
        PanChart1.add(barras1, BorderLayout.CENTER);
        PanChart1.validate();
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null,
                "Error: los espacios de cantidad de datos y recursiones no deben de estar vacios");
    }
}

From source file:org.eevolution.form.CRPDetail.java

/**
 * Create Chart based on UOM//from   w ww.j  a va 2 s .  c  o  m
 * 
 * @param dataset
 * @param title
 * @param uom
 * @return JFreeChart Chart based On UOM
 */
public JFreeChart createChart(CategoryDataset dataset, String title, MUOM uom) {

    JFreeChart chart = ChartFactory.createBarChart3D(title, Msg.translate(Env.getCtx(), "Day"), // X-Axis label
            Msg.translate(Env.getCtx(), (uom == null) ? "" : uom.getName()), // Y-Axis
            // label
            dataset, // Dataset
            PlotOrientation.VERTICAL, // orientation
            true, // include legend
            true, // tooltips?
            false // URLs?
    );

    chart.setBackgroundPaint(Color.WHITE);
    chart.setAntiAlias(true);
    chart.setBorderVisible(true);

    CategoryPlot plot = chart.getCategoryPlot();
    plot.setRangeGridlinesVisible(true);
    plot.setRangeGridlinePaint(Color.GRAY);

    plot.setDomainGridlinesVisible(true);
    plot.setDomainGridlinePaint(Color.GRAY);

    BarRenderer3D barrenderer = (BarRenderer3D) plot.getRenderer();
    barrenderer.setDrawBarOutline(false);
    barrenderer.setBaseItemLabelGenerator(new LabelGenerator());
    barrenderer.setBaseItemLabelsVisible(true);
    barrenderer.setSeriesPaint(0, new Color(10, 80, 150, 128));
    barrenderer.setSeriesPaint(1, new Color(180, 60, 50, 128));

    ItemLabelPosition itemlabelposition = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,
            TextAnchor.TOP_CENTER);
    barrenderer.setPositiveItemLabelPosition(itemlabelposition);

    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
    return chart;
}