Example usage for org.jfree.chart.labels ItemLabelPosition ItemLabelPosition

List of usage examples for org.jfree.chart.labels ItemLabelPosition ItemLabelPosition

Introduction

In this page you can find the example usage for org.jfree.chart.labels ItemLabelPosition ItemLabelPosition.

Prototype

public ItemLabelPosition(ItemLabelAnchor itemLabelAnchor, TextAnchor textAnchor) 

Source Link

Document

Creates a new position record (with zero rotation).

Usage

From source file:com.netflix.ice.basic.BasicWeeklyCostEmailService.java

private File createImage(ApplicationGroup appgroup) throws IOException {

    Map<String, Double> costs = Maps.newHashMap();
    DateTime end = new DateTime(DateTimeZone.UTC).withDayOfWeek(1).withMillisOfDay(0);
    Interval interval = new Interval(end.minusWeeks(numWeeks), end);

    for (Product product : products) {
        List<ResourceGroup> resourceGroups = getResourceGroups(appgroup, product);
        if (resourceGroups.size() == 0) {
            continue;
        }/*from   ww  w.  jav  a2  s . c  om*/
        DataManager dataManager = config.managers.getCostManager(product, ConsolidateType.weekly);
        if (dataManager == null) {
            continue;
        }
        TagLists tagLists = new TagLists(accounts, regions, null, Lists.newArrayList(product), null, null,
                resourceGroups);
        Map<Tag, double[]> data = dataManager.getData(interval, tagLists, TagType.Product, AggregateType.none,
                false);
        for (Tag tag : data.keySet()) {
            for (int week = 0; week < numWeeks; week++) {
                String key = tag + "|" + week;
                if (costs.containsKey(key))
                    costs.put(key, data.get(tag)[week] + costs.get(key));
                else
                    costs.put(key, data.get(tag)[week]);
            }
        }
    }

    boolean hasData = false;
    for (Map.Entry<String, Double> entry : costs.entrySet()) {
        if (!entry.getKey().contains("monitor") && entry.getValue() != null && entry.getValue() >= 0.1) {
            hasData = true;
            break;
        }
    }
    if (!hasData)
        return null;

    DefaultCategoryDataset dataset = new DefaultCategoryDataset();

    for (Product product : products) {
        for (int week = 0; week < numWeeks; week++) {
            String weekStr = String.format("%s - %s week",
                    formatter.print(end.minusWeeks(numWeeks - week)).substring(5),
                    formatter.print(end.minusWeeks(numWeeks - week - 1)).substring(5));
            dataset.addValue(costs.get(product + "|" + week), product.name, weekStr);
        }
    }

    JFreeChart chart = ChartFactory.createBarChart3D(appgroup.getDisplayName() + " Weekly AWS Costs", "",
            "Costs", dataset, PlotOrientation.VERTICAL, true, false, false);
    CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();
    BarRenderer3D renderer = (BarRenderer3D) categoryplot.getRenderer();
    renderer.setItemLabelAnchorOffset(10.0);
    TextTitle title = chart.getTitle();
    title.setFont(title.getFont().deriveFont((title.getFont().getSize() - 3)));

    renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator() {
        public java.lang.String generateLabel(org.jfree.data.category.CategoryDataset dataset, int row,
                int column) {
            return costFormatter.format(dataset.getValue(row, column));
        }
    });
    renderer.setBaseItemLabelsVisible(true);
    renderer.setBasePositiveItemLabelPosition(
            new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));

    NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
    numberaxis.setNumberFormatOverride(costFormatter);

    BufferedImage image = chart.createBufferedImage(1200, 400);
    File outputfile = File.createTempFile("awscost", "png");
    ImageIO.write(image, "png", outputfile);

    return outputfile;
}

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);/*w w  w  . j  av  a  2s . c  o  m*/
        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:com.pusksesmas.form_statistik.statistik_obat_masuk.java

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

    if (vpil.getSelectedIndex() == 1) {
        int row = tabelData.getSelectedRow();
        String namaObat = (tabelData.getModel().getValueAt(row, 0)).toString();
        String jan = (tabelData.getModel().getValueAt(row, 1)).toString();
        String feb = (tabelData.getModel().getValueAt(row, 2)).toString();
        String mar = (tabelData.getModel().getValueAt(row, 3)).toString();
        String apr = (tabelData.getModel().getValueAt(row, 4)).toString();
        String mei = (tabelData.getModel().getValueAt(row, 5)).toString();
        String jun = (tabelData.getModel().getValueAt(row, 6)).toString();
        String jul = (tabelData.getModel().getValueAt(row, 7)).toString();
        String agus = (tabelData.getModel().getValueAt(row, 8)).toString();
        String sept = (tabelData.getModel().getValueAt(row, 9)).toString();
        String okt = (tabelData.getModel().getValueAt(row, 10)).toString();
        String nov = (tabelData.getModel().getValueAt(row, 11)).toString();
        String des = (tabelData.getModel().getValueAt(row, 12)).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 PENERIMAAN OBAT\nNAMA OBAT: " + namaObat,
                "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("#,##0");
        renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", sdf));
        p.setRenderer(renderer);/* ww w.  j a  va2 s  .c  o m*/
        renderer.setBasePositiveItemLabelPosition(
                new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.TOP_CENTER));
        renderer.setItemLabelsVisible(true);
        chart.getCategoryPlot().setRenderer(renderer);

        p.setRangeGridlinePaint(Color.blue);
        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, 1)).toString();
        String feb = (tabelData.getModel().getValueAt(row, 2)).toString();
        String mar = (tabelData.getModel().getValueAt(row, 3)).toString();
        String apr = (tabelData.getModel().getValueAt(row, 4)).toString();
        String mei = (tabelData.getModel().getValueAt(row, 5)).toString();
        String jun = (tabelData.getModel().getValueAt(row, 6)).toString();
        String jul = (tabelData.getModel().getValueAt(row, 7)).toString();
        String agus = (tabelData.getModel().getValueAt(row, 8)).toString();
        String sept = (tabelData.getModel().getValueAt(row, 9)).toString();
        String okt = (tabelData.getModel().getValueAt(row, 10)).toString();
        String nov = (tabelData.getModel().getValueAt(row, 11)).toString();
        String des = (tabelData.getModel().getValueAt(row, 12)).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 PENERIMAAN OBAT", pieDataset, true, true,
                true);
        //        PiePlot3D P = (PiePlot3D)chart.getPlot();
        PiePlot P = (PiePlot) chart.getPlot();
        //P.setForegroundAlpha(TOP_ALIGNMENT);
        ChartFrame frame = new ChartFrame("STATISTIK PENERIMAAN OBAT", chart);
        frame.setVisible(true);
        frame.setLocation(250, 100);
        frame.setSize(800, 600);
    } else {

    }

}

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

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

    if (vpil.getSelectedIndex() == 1) {
        int row = tabelData.getSelectedRow();
        String namaPenyakit = (tabelData.getModel().getValueAt(row, 0)).toString();
        String jan = (tabelData.getModel().getValueAt(row, 1)).toString();
        String feb = (tabelData.getModel().getValueAt(row, 2)).toString();
        String mar = (tabelData.getModel().getValueAt(row, 3)).toString();
        String apr = (tabelData.getModel().getValueAt(row, 4)).toString();
        String mei = (tabelData.getModel().getValueAt(row, 5)).toString();
        String jun = (tabelData.getModel().getValueAt(row, 6)).toString();
        String jul = (tabelData.getModel().getValueAt(row, 7)).toString();
        String agus = (tabelData.getModel().getValueAt(row, 8)).toString();
        String sept = (tabelData.getModel().getValueAt(row, 9)).toString();
        String okt = (tabelData.getModel().getValueAt(row, 10)).toString();
        String nov = (tabelData.getModel().getValueAt(row, 11)).toString();
        String des = (tabelData.getModel().getValueAt(row, 12)).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 HASIL DIGNOSA\nNAMA PENYAKIT: " + namaPenyakit, "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("#,##0");
        renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", sdf));
        p.setRenderer(renderer);/*from   www  . j a v a2  s. c  om*/
        renderer.setBasePositiveItemLabelPosition(
                new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.TOP_CENTER));
        renderer.setItemLabelsVisible(true);
        chart.getCategoryPlot().setRenderer(renderer);

        p.setRangeGridlinePaint(Color.blue);
        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, 1)).toString();
        String feb = (tabelData.getModel().getValueAt(row, 2)).toString();
        String mar = (tabelData.getModel().getValueAt(row, 3)).toString();
        String apr = (tabelData.getModel().getValueAt(row, 4)).toString();
        String mei = (tabelData.getModel().getValueAt(row, 5)).toString();
        String jun = (tabelData.getModel().getValueAt(row, 6)).toString();
        String jul = (tabelData.getModel().getValueAt(row, 7)).toString();
        String agus = (tabelData.getModel().getValueAt(row, 8)).toString();
        String sept = (tabelData.getModel().getValueAt(row, 9)).toString();
        String okt = (tabelData.getModel().getValueAt(row, 10)).toString();
        String nov = (tabelData.getModel().getValueAt(row, 11)).toString();
        String des = (tabelData.getModel().getValueAt(row, 12)).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 HASIL DIGNOSA", pieDataset, true, true, true);
        //        PiePlot3D P = (PiePlot3D)chart.getPlot();
        PiePlot P = (PiePlot) chart.getPlot();
        //P.setForegroundAlpha(TOP_ALIGNMENT);
        ChartFrame frame = new ChartFrame("STATISTIK HASIL DIGNOSA", chart);
        frame.setVisible(true);
        frame.setLocation(250, 100);
        frame.setSize(800, 600);
    } else {

    }

}

From source file:org.locationtech.udig.processingtoolbox.tools.BubbleChartDialog.java

private void updateChart(SimpleFeatureCollection features, String xField, String yField, String sizeField) {
    // 1. Create a single plot containing both the scatter and line
    XYPlot plot = new XYPlot();
    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setBackgroundPaint(java.awt.Color.WHITE);
    plot.setDomainPannable(false);// w  ww . j  a va2  s . c  om
    plot.setRangePannable(false);
    plot.setSeriesRenderingOrder(SeriesRenderingOrder.FORWARD);

    plot.setDomainCrosshairVisible(false);
    plot.setRangeCrosshairVisible(false);
    plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
    plot.setForegroundAlpha(0.75f);

    // 2. Setup Scatter plot
    // Create the bubble chart data, renderer, and axis
    int fontStyle = java.awt.Font.BOLD;
    FontData fontData = getShell().getDisplay().getSystemFont().getFontData()[0];
    NumberAxis xPlotAxis = new NumberAxis(xField); // Independent variable
    xPlotAxis.setLabelFont(new Font(fontData.getName(), fontStyle, 12));
    xPlotAxis.setTickLabelFont(new Font(fontData.getName(), fontStyle, 10));

    NumberAxis yPlotAxis = new NumberAxis(yField); // Dependent variable
    yPlotAxis.setLabelFont(new Font(fontData.getName(), fontStyle, 12));
    yPlotAxis.setTickLabelFont(new Font(fontData.getName(), fontStyle, 10));

    XYItemRenderer plotRenderer = new XYBubbleRenderer(XYBubbleRenderer.SCALE_ON_RANGE_AXIS);
    plotRenderer.setSeriesPaint(0, java.awt.Color.ORANGE); // dot
    plotRenderer.setBaseItemLabelGenerator(new BubbleXYItemLabelGenerator());
    plotRenderer.setBaseToolTipGenerator(new StandardXYZToolTipGenerator());
    plotRenderer
            .setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));

    // Set the bubble chart data, renderer, and axis into plot
    plot.setDataset(0, getBubbleChartData(features, xField, yField, sizeField));

    xPlotAxis.setAutoRangeIncludesZero(false);
    xPlotAxis.setAutoRange(false);
    double differUpper = minMaxVisitor.getMaxX() - minMaxVisitor.getAverageX();
    double differLower = minMaxVisitor.getAverageX() - minMaxVisitor.getMinX();
    double gap = Math.abs(differUpper - differLower);
    if (differUpper > differLower) {
        xPlotAxis.setRange(minMaxVisitor.getMinX() - gap, minMaxVisitor.getMaxX());
    } else {
        xPlotAxis.setRange(minMaxVisitor.getMinX(), minMaxVisitor.getMaxX() + gap);
    }

    yPlotAxis.setAutoRangeIncludesZero(false);
    yPlotAxis.setAutoRange(false);
    differUpper = minMaxVisitor.getMaxY() - minMaxVisitor.getAverageY();
    differLower = minMaxVisitor.getAverageY() - minMaxVisitor.getMinY();
    gap = Math.abs(differUpper - differLower);
    if (differUpper > differLower) {
        yPlotAxis.setRange(minMaxVisitor.getMinY() - gap, minMaxVisitor.getMaxY());
    } else {
        yPlotAxis.setRange(minMaxVisitor.getMinY(), minMaxVisitor.getMaxY() + gap);
    }

    plot.setRenderer(0, plotRenderer);
    plot.setDomainAxis(0, xPlotAxis);
    plot.setRangeAxis(0, yPlotAxis);

    // Map the scatter to the first Domain and first Range
    plot.mapDatasetToDomainAxis(0, 0);
    plot.mapDatasetToRangeAxis(0, 0);

    // 3. Setup line
    // Create the line data, renderer, and axis
    XYItemRenderer lineRenderer = new XYLineAndShapeRenderer(true, false); // Lines only
    lineRenderer.setSeriesPaint(0, java.awt.Color.GRAY);
    lineRenderer.setSeriesPaint(1, java.awt.Color.GRAY);
    lineRenderer.setSeriesPaint(2, java.awt.Color.GRAY);

    // Set the line data, renderer, and axis into plot
    NumberAxis xLineAxis = new NumberAxis(EMPTY);
    xLineAxis.setTickMarksVisible(false);
    xLineAxis.setTickLabelsVisible(false);

    NumberAxis yLineAxis = new NumberAxis(EMPTY);
    yLineAxis.setTickMarksVisible(false);
    yLineAxis.setTickLabelsVisible(false);

    XYSeriesCollection lineDataset = new XYSeriesCollection();

    // AverageY
    XYSeries horizontal = new XYSeries("AverageY"); //$NON-NLS-1$
    horizontal.add(xPlotAxis.getRange().getLowerBound(), minMaxVisitor.getAverageY());
    horizontal.add(xPlotAxis.getRange().getUpperBound(), minMaxVisitor.getAverageY());
    lineDataset.addSeries(horizontal);

    // AverageX
    XYSeries vertical = new XYSeries("AverageX"); //$NON-NLS-1$
    vertical.add(minMaxVisitor.getAverageX(), yPlotAxis.getRange().getLowerBound());
    vertical.add(minMaxVisitor.getAverageX(), yPlotAxis.getRange().getUpperBound());
    lineDataset.addSeries(vertical);

    plot.setDataset(1, lineDataset);
    plot.setRenderer(1, lineRenderer);
    plot.setDomainAxis(1, xLineAxis);
    plot.setRangeAxis(1, yLineAxis);

    // Map the line to the second Domain and second Range
    plot.mapDatasetToDomainAxis(1, 0);
    plot.mapDatasetToRangeAxis(1, 0);

    // 4. Setup Selection
    NumberAxis xSelectionAxis = new NumberAxis(EMPTY);
    xSelectionAxis.setTickMarksVisible(false);
    xSelectionAxis.setTickLabelsVisible(false);

    NumberAxis ySelectionAxis = new NumberAxis(EMPTY);
    ySelectionAxis.setTickMarksVisible(false);
    ySelectionAxis.setTickLabelsVisible(false);

    XYItemRenderer selectionRenderer = new XYBubbleRenderer(XYBubbleRenderer.SCALE_ON_RANGE_AXIS);
    selectionRenderer.setSeriesPaint(0, java.awt.Color.RED); // dot
    selectionRenderer.setSeriesOutlinePaint(0, java.awt.Color.RED);

    plot.setDataset(2, new DefaultXYZDataset2());
    plot.setRenderer(2, selectionRenderer);
    plot.setDomainAxis(2, xSelectionAxis);
    plot.setRangeAxis(2, ySelectionAxis);

    // Map the scatter to the second Domain and second Range
    plot.mapDatasetToDomainAxis(2, 0);
    plot.mapDatasetToRangeAxis(2, 0);

    // 5. Finally, Create the chart with the plot and a legend
    java.awt.Font titleFont = new Font(fontData.getName(), fontStyle, 20);
    JFreeChart chart = new JFreeChart(EMPTY, titleFont, plot, false);
    chart.setBackgroundPaint(java.awt.Color.WHITE);
    chart.setBorderVisible(false);

    chartComposite.setChart(chart);
    chartComposite.forceRedraw();
}

From source file:org.locationtech.udig.processingtoolbox.tools.HistogramDialog.java

private void updateChart(SimpleFeatureCollection features, String field) {
    int bin = spinner.getSelection();

    double[] values = getValues(features, field);
    HistogramDataset dataset = new HistogramDataset();
    dataset.addSeries(field, values, bin, minMaxVisitor.getMinX(), minMaxVisitor.getMaxX());
    dataset.setType(histogramType);// w w w . j a  va2  s  . c om

    JFreeChart chart = ChartFactory.createHistogram(EMPTY, null, null, dataset, PlotOrientation.VERTICAL, false,
            false, false);

    // 1. Create a single plot containing both the scatter and line
    chart.setBackgroundPaint(java.awt.Color.WHITE);
    chart.setBorderVisible(false);

    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setForegroundAlpha(0.85F);
    plot.setBackgroundPaint(java.awt.Color.WHITE);
    plot.setOrientation(PlotOrientation.VERTICAL);

    plot.setDomainGridlinePaint(java.awt.Color.LIGHT_GRAY);
    plot.setRangeGridlinePaint(java.awt.Color.LIGHT_GRAY);

    int fontStyle = java.awt.Font.BOLD;
    FontData fontData = getShell().getDisplay().getSystemFont().getFontData()[0];

    NumberAxis valueAxis = new NumberAxis(cboField.getText());
    valueAxis.setLabelFont(new Font(fontData.getName(), fontStyle, 12));
    valueAxis.setTickLabelFont(new Font(fontData.getName(), fontStyle, 10));

    valueAxis.setAutoRange(false);
    valueAxis.setRange(minMaxVisitor.getMinX(), minMaxVisitor.getMaxX());

    String rangeAxisLabel = histogramType == HistogramType.FREQUENCY ? "Frequency" : "Ratio"; //$NON-NLS-1$ //$NON-NLS-2$
    NumberAxis rangeAxis = new NumberAxis(rangeAxisLabel);
    rangeAxis.setLabelFont(new Font(fontData.getName(), fontStyle, 12));
    rangeAxis.setTickLabelFont(new Font(fontData.getName(), fontStyle, 10));
    if (histogramType == HistogramType.FREQUENCY) {
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    }

    XYBarRenderer renderer = (XYBarRenderer) plot.getRenderer();
    renderer.setShadowVisible(false);
    CustomXYBarPainter.selectedColumn = -1; // init
    renderer.setBarPainter(new CustomXYBarPainter());
    renderer.setAutoPopulateSeriesFillPaint(true);
    renderer.setAutoPopulateSeriesPaint(true);
    renderer.setShadowXOffset(3);
    renderer.setMargin(0.01);
    renderer.setBaseItemLabelsVisible(true);

    ItemLabelPosition pos = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.TOP_CENTER);
    renderer.setBasePositiveItemLabelPosition(pos);

    XYToolTipGenerator plotToolTip = new StandardXYToolTipGenerator();
    renderer.setBaseToolTipGenerator(plotToolTip);

    // color
    GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, java.awt.Color.GRAY, 0.0f, 0.0f,
            java.awt.Color.LIGHT_GRAY);
    renderer.setSeriesPaint(0, gp0);

    plot.setDomainAxis(0, valueAxis);
    plot.setRangeAxis(0, rangeAxis);

    // 3. Setup line
    // Create the line data, renderer, and axis
    XYItemRenderer lineRenderer = new XYLineAndShapeRenderer(true, false); // Lines only
    lineRenderer.setSeriesPaint(0, java.awt.Color.RED);
    lineRenderer.setSeriesStroke(0, new BasicStroke(2f));

    // Set the line data, renderer, and axis into plot
    NumberAxis xLineAxis = new NumberAxis(EMPTY);
    xLineAxis.setTickMarksVisible(false);
    xLineAxis.setTickLabelsVisible(false);
    xLineAxis.setAutoRange(false);

    NumberAxis yLineAxis = new NumberAxis(EMPTY);
    yLineAxis.setTickMarksVisible(false);
    yLineAxis.setTickLabelsVisible(false);
    yLineAxis.setAutoRange(false);

    double maxYValue = Double.MIN_VALUE;
    for (int i = 0; i < dataset.getItemCount(0); i++) {
        maxYValue = Math.max(maxYValue, dataset.getYValue(0, i));
    }

    XYSeriesCollection lineDatset = new XYSeriesCollection();

    // Vertical Average
    XYSeries vertical = new XYSeries("Average"); //$NON-NLS-1$
    vertical.add(minMaxVisitor.getAverageX(), 0);
    vertical.add(minMaxVisitor.getAverageX(), maxYValue);
    lineDatset.addSeries(vertical);

    plot.setDataset(1, lineDatset);
    plot.setRenderer(1, lineRenderer);
    plot.setDomainAxis(1, xLineAxis);
    plot.setRangeAxis(1, yLineAxis);

    // Map the line to the second Domain and second Range
    plot.mapDatasetToDomainAxis(1, 0);
    plot.mapDatasetToRangeAxis(1, 0);

    chartComposite.setChart(chart);
    chartComposite.forceRedraw();
}

From source file:org.talend.dataprofiler.chart.ChartDecorator.java

/**
 * create bar chart with customized bar render class which can be adapted in JFreeChart class.
 * // ww w. j a  v  a 2s . c  o m
 * @param chart
 * @param barRenderer
 */
public static void decorateBarChart(JFreeChart chart, BarRenderer barRenderer) {
    CategoryPlot plot = chart.getCategoryPlot();
    plot.getRangeAxis().setUpperMargin(0.08);
    plot.setRangeGridlinesVisible(true);

    barRenderer.setBaseItemLabelsVisible(true);
    barRenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    barRenderer.setBasePositiveItemLabelPosition(
            new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
    barRenderer.setBaseNegativeItemLabelPosition(
            new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
    // MOD klliu 2010-09-25 bug15514: The chart of summary statistic indicators not beautiful
    barRenderer.setMaximumBarWidth(0.1);
    // renderer.setItemMargin(0.000000005);
    // renderer.setBase(0.04);
    // ADD yyi 2009-09-24 9243
    barRenderer.setBaseToolTipGenerator(
            new StandardCategoryToolTipGenerator(NEW_TOOL_TIP_FORMAT_STRING, NumberFormat.getInstance()));

    // ADD TDQ-5251 msjian 2012-7-31: do not display the shadow
    barRenderer.setShadowVisible(false);
    // TDQ-5251~

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

    plot.setRenderer(barRenderer);
}

From source file:KIDLYAbstractRenderer.java

/**
 * Default constructor.//  w  w w  .  ja v a2s  .com
 */
public KIDLYAbstractRenderer() {

    this.seriesVisible = null;
    this.seriesVisibleList = new BooleanList();
    this.baseSeriesVisible = true;

    this.seriesVisibleInLegend = null;
    this.seriesVisibleInLegendList = new BooleanList();
    this.baseSeriesVisibleInLegend = true;

    this.paint = null;
    this.paintList = new PaintList();
    this.basePaint = DEFAULT_PAINT;
    this.autoPopulateSeriesPaint = true;

    this.fillPaint = null;
    this.fillPaintList = new PaintList();
    this.baseFillPaint = Color.white;
    this.autoPopulateSeriesFillPaint = false;

    this.outlinePaint = null;
    this.outlinePaintList = new PaintList();
    this.baseOutlinePaint = DEFAULT_OUTLINE_PAINT;
    this.autoPopulateSeriesOutlinePaint = false;

    this.stroke = null;
    this.strokeList = new StrokeList();
    this.baseStroke = DEFAULT_STROKE;
    this.autoPopulateSeriesStroke = true;

    this.outlineStroke = null;
    this.outlineStrokeList = new StrokeList();
    this.baseOutlineStroke = DEFAULT_OUTLINE_STROKE;
    this.autoPopulateSeriesOutlineStroke = false;

    this.shape = null;
    this.shapeList = new ShapeList();
    this.baseShape = DEFAULT_SHAPE;
    this.autoPopulateSeriesShape = true;

    this.itemLabelsVisible = null;
    this.itemLabelsVisibleList = new BooleanList();
    this.baseItemLabelsVisible = Boolean.FALSE;

    this.itemLabelFont = null;
    this.itemLabelFontList = new ObjectList();
    this.baseItemLabelFont = new Font("SansSerif", Font.PLAIN, 10);

    this.itemLabelPaint = null;
    this.itemLabelPaintList = new PaintList();
    this.baseItemLabelPaint = Color.black;

    this.positiveItemLabelPosition = null;
    this.positiveItemLabelPositionList = new ObjectList();
    this.basePositiveItemLabelPosition = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,
            TextAnchor.BOTTOM_CENTER);

    this.negativeItemLabelPosition = null;
    this.negativeItemLabelPositionList = new ObjectList();
    this.baseNegativeItemLabelPosition = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE6, TextAnchor.TOP_CENTER);

    this.createEntities = null;
    this.createEntitiesList = new BooleanList();
    this.baseCreateEntities = true;

    this.defaultEntityRadius = 3;

    this.legendShapeList = new ShapeList();
    this.baseLegendShape = null;

    this.treatLegendShapeAsLine = false;

    this.legendTextFont = new ObjectList();
    this.baseLegendTextFont = null;

    this.legendTextPaint = new PaintList();
    this.baseLegendTextPaint = null;

    this.listenerList = new EventListenerList();

}

From source file:org.talend.dataprofiler.chart.ChartDecorator.java

/**
 * Decorate the benford law chart. in this method the line chart will be overlay on top of bar chart.
 * //from ww w. j a  v a  2  s .c  o  m
 * @param dataset
 * @param barChart
 * @param title
 * @param categoryAxisLabel
 * @param dotChartLabels
 * @param formalValues
 * @return JFreeChart
 */
@SuppressWarnings("deprecation")
public static JFreeChart decorateBenfordLawChartByKCD(CategoryDataset dataset, Object customerDataset,
        JFreeChart barChart, String title, String categoryAxisLabel, List<String> dotChartLabels,
        double[] formalValues) {
    CategoryPlot barplot = barChart.getCategoryPlot();
    decorateBarChart(barChart, new BenfordLawLineAndShapeRenderer());
    // display percentage on top of the bar
    DecimalFormat df = new DecimalFormat(PERCENT_FORMAT);
    barplot.getRenderer().setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", df)); //$NON-NLS-1$
    barplot.getRenderer().setBasePositiveItemLabelPosition(
            new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_CENTER));
    // set the display of Y axis
    NumberAxis numAxis = (NumberAxis) barplot.getRangeAxis();
    numAxis.setNumberFormatOverride(df);

    CategoryDataset lineDataset = getLineDataset(dotChartLabels, formalValues);
    JFreeChart lineChart = ChartFactory.createLineChart(null, title, categoryAxisLabel, lineDataset,
            PlotOrientation.VERTICAL, false, false, false);
    CategoryPlot plot = lineChart.getCategoryPlot();
    if (customerDataset != null) {
        barplot.setDataset(2, new EncapsulationCumstomerDataset(dataset, customerDataset));
    }
    // show the value on the right axis of the chart(keep the comment)
    // NumberAxis numberaxis = new NumberAxis(DefaultMessagesImpl.getString("TopChartFactory.Value"));
    // plot.setRangeAxis(10, numberaxis);

    NumberAxis vn = (NumberAxis) plot.getRangeAxis();
    vn.setNumberFormatOverride(df);
    // set points format
    LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
    renderer.setPaint(COLOR_LIST.get(1));
    renderer.setSeriesShape(1, new Rectangle2D.Double(-1.5, -1.5, 3, 3));
    renderer.setShapesVisible(true); // show the point shape
    renderer.setBaseLinesVisible(false);// do not show the line

    // add the bar chart into the line chart
    CategoryItemRenderer barChartRender = barplot.getRenderer();
    barplot.setDataset(0, lineDataset);
    barplot.setRenderer(0, plot.getRenderer());
    barplot.setDataset(1, dataset);
    barplot.setRenderer(1, barChartRender);
    return barChart;
}

From source file:org.toobsframework.pres.chart.ChartUtil.java

public static void configureDomainItemLabels(IRequest componentRequest, BasePlot plot,
        AbstractRenderer renderer, Map params, boolean is3D) {
    if (plot.getShowDomainItemLabels()) {
        String orientation = ParameterUtil.resolveParam(componentRequest, plot.getOrientation(), params,
                "horizontal")[0];
        if (orientation.equals("horizontal")) {
            ItemLabelPosition position1;
            if (is3D) {
                position1 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE2, TextAnchor.CENTER_LEFT);
                renderer.setItemLabelAnchorOffset(15.0d);
            } else {
                position1 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE3, TextAnchor.CENTER_LEFT);
            }//from ww  w . j ava  2 s .  c o  m
            renderer.setPositiveItemLabelPosition(position1);

            ItemLabelPosition position2 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE9,
                    TextAnchor.CENTER_RIGHT);
            renderer.setNegativeItemLabelPosition(position2);
        } else if (orientation.equals("vertical")) {
            ItemLabelPosition position1;
            if (is3D) {
                position1 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE1, TextAnchor.BOTTOM_CENTER);
                renderer.setItemLabelAnchorOffset(10.0d);
            } else {
                position1 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BOTTOM_CENTER);
            }
            renderer.setPositiveItemLabelPosition(position1);

            ItemLabelPosition position2 = new ItemLabelPosition(ItemLabelAnchor.OUTSIDE6,
                    TextAnchor.TOP_CENTER);
            renderer.setNegativeItemLabelPosition(position2);
        }
        renderer.setBaseItemLabelsVisible(true);
        ((CategoryItemRenderer) renderer).setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    }
}