Example usage for org.jfree.chart.axis CategoryAxis setTickLabelFont

List of usage examples for org.jfree.chart.axis CategoryAxis setTickLabelFont

Introduction

In this page you can find the example usage for org.jfree.chart.axis CategoryAxis setTickLabelFont.

Prototype

public void setTickLabelFont(Font font) 

Source Link

Document

Sets the font for the tick labels and sends an AxisChangeEvent to all registered listeners.

Usage

From source file:skoa.helpers.Graficos.java

/*********************************************************************************************************
 * FUNCIONES PARA CREAR LOS GRFICOS DE LA CONSULTA C! MANIPULANDO LOS DATOS OBTENIDOS DE LAS CONSULTAS.*
 *********************************************************************************************************/
private void maxMinMed() {
    //En este tipo de consultas, sacamos la DG del fichero original de datos, para ponerla en la graf.
    String dg = nombresFicheros.get(0);
    //dg=dg.substring(dg.indexOf("-")+7,dg.indexOf(".txt")); //Saca la DG del nombre del fich.
    if (dg.indexOf("D") > 0 && dg.indexOf(" ") < 0) { //Si es el resultado final de una consulta D.
        dg = dg.substring(dg.indexOf(".txt") - 13, dg.indexOf(".txt")); //Saca la DG del nombre del fich.
    } else { //Si son resultados de una consulta D.
        //As, buscando a partir de .txt da igual el tipo de consulta que sea, que se saca igual.
        dg = dg.substring(dg.indexOf(" ") - 6, dg.indexOf(".txt")); //Saca la DG del nombre del fich.
    }//w w w  . ja v  a  2  s  .c om
    //---------------------------------------------
    crearEstadisticas(); //Crea el fichero estadisticas.txt donde se encuentra el FECHA MAX MIN y MED en este orden
    Vector<String> vectorOrdenUnidades = new Vector<String>();
    vectorOrdenUnidades.add(unidad);
    nombresDGs.add("Max"); //Reusamos esta variable. Nos referimos al nombre de cada una de las barras que se ven.
    nombresDGs.add("Min");
    nombresDGs.add("Med");
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset = obtenerSerieBarras2(vectorOrdenUnidades);
    String unidad = "";
    for (int i = 0; i < vectorOrdenUnidades.size(); i++)
        unidad = unidad + vectorOrdenUnidades.elementAt(i) + ", ";
    unidad = unidad.substring(0, unidad.length() - 2); //Quita el ultimo espacio y la ultima coma.
    if (unidad.indexOf("C") >= 0)
        unidad = "C";
    dg = dg.replaceAll("-", "/");
    JFreeChart grafica = ChartFactory.createBarChart("Valores medidos de las direcciones de grupo", "Fechas", //titulo eje x
            "Mediciones (" + unidad + ") de " + dg, dataset, PlotOrientation.VERTICAL, true, //leyenda
            true, false);
    if (fechaInicial.equals("") & fechaFinal.equals("")) { //Si estn vacas es porque no hay resultados para ese intervalo.
        fechaInicial = " ? ";
        fechaFinal = " ? ";
    }
    TextTitle t = new TextTitle("desde " + fechaInicial + " hasta " + fechaFinal,
            new Font("SanSerif", Font.ITALIC, 12));
    grafica.addSubtitle(t);
    CategoryPlot plot = grafica.getCategoryPlot();
    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
    domainAxis.setTickLabelFont(new Font("Dialog", Font.PLAIN, 9)); //Letra de las fechas ms pequea
    //Esconder las sombras de las barras del barchart.
    CategoryPlot categoryPlot = (CategoryPlot) grafica.getPlot();
    BarRenderer renderer = new BarRenderer();
    renderer.setShadowVisible(false);
    categoryPlot.setRenderer(renderer);
    //-------------------------------------------------
    try {
        ChartUtilities.saveChartAsJPEG(new File(ruta + "MaxMinMedSmall.jpg"), grafica, 400, 300);
        ChartUtilities.saveChartAsJPEG(new File(ruta + "MaxMinMedBig.jpg"), grafica, 900, 600);
    } catch (IOException e) {
        System.err.println("Problem occurred creating chart." + e);
    }
}

From source file:ro.nextreports.engine.chart.JFreeChartExporter.java

private JFreeChart createBarChart(boolean horizontal, boolean stacked, boolean isCombo) throws QueryException {
    barDataset = new DefaultCategoryDataset();
    String chartTitle = replaceParameters(chart.getTitle().getTitle());
    chartTitle = StringUtil.getI18nString(chartTitle, I18nUtil.getLanguageByName(chart, language));
    Object[] charts;//from  w  w  w . j a  v  a 2s .  c  o  m
    List<String> legends;
    Object[] lineCharts = null;
    String lineLegend = null;
    if (isCombo) {
        lineCharts = new Object[1];
        if (chart.getYColumnsLegends().size() < chart.getYColumns().size()) {
            lineLegend = "";
        } else {
            lineLegend = chart.getYColumnsLegends().get(chart.getYColumns().size() - 1);
        }
        charts = new Object[chart.getYColumns().size() - 1];
        legends = chart.getYColumnsLegends().subList(0, chart.getYColumns().size() - 1);
    } else {
        charts = new Object[chart.getYColumns().size()];
        legends = chart.getYColumnsLegends();
    }
    boolean hasLegend = false;
    for (int i = 0; i < charts.length; i++) {
        String legend = "";
        try {
            legend = replaceParameters(legends.get(i));
            legend = StringUtil.getI18nString(legend, I18nUtil.getLanguageByName(chart, language));
        } catch (IndexOutOfBoundsException ex) {
            // no legend set
        }
        // Important : must have default different legends used in barDataset.addValue
        if ((legend == null) || "".equals(legend.trim())) {
            legend = DEFAULT_LEGEND_PREFIX + String.valueOf(i + 1);
        } else {
            hasLegend = true;
        }
        charts[i] = legend;
    }
    if (isCombo) {
        String leg = "";
        if (lineLegend != null) {
            leg = replaceParameters(lineLegend);
        }
        lineCharts[0] = leg;
    }

    byte style = chart.getType().getStyle();
    JFreeChart jfreechart;

    String xLegend = StringUtil.getI18nString(replaceParameters(chart.getXLegend().getTitle()),
            I18nUtil.getLanguageByName(chart, language));
    String yLegend = StringUtil.getI18nString(replaceParameters(chart.getYLegend().getTitle()),
            I18nUtil.getLanguageByName(chart, language));
    PlotOrientation plotOrientation = horizontal ? PlotOrientation.HORIZONTAL : PlotOrientation.VERTICAL;
    if (stacked) {
        jfreechart = ChartFactory.createStackedBarChart(chartTitle, // chart title
                xLegend, // x-axis Label
                yLegend, // y-axis Label
                barDataset, // data
                plotOrientation, // orientation
                true, // include legend
                true, // tooltips
                false // URLs
        );
    } else {
        switch (style) {
        case ChartType.STYLE_BAR_PARALLELIPIPED:
        case ChartType.STYLE_BAR_CYLINDER:
            jfreechart = ChartFactory.createBarChart3D(chartTitle, // chart title
                    xLegend, // x-axis Label
                    yLegend, // y-axis Label
                    barDataset, // data
                    plotOrientation, // orientation
                    true, // include legend
                    true, // tooltips
                    false // URLs
            );
            break;
        default:
            jfreechart = ChartFactory.createBarChart(chartTitle, // chart title
                    xLegend, // x-axis Label
                    yLegend, // y-axis Label
                    barDataset, // data
                    plotOrientation, // orientation
                    true, // include legend
                    true, // tooltips
                    false // URLs
            );
            break;
        }
    }

    if (style == ChartType.STYLE_BAR_CYLINDER) {
        ((CategoryPlot) jfreechart.getPlot()).setRenderer(new CylinderRenderer());
    }

    // hide legend if necessary
    if (!hasLegend) {
        jfreechart.removeLegend();
    }

    // hide border
    jfreechart.setBorderVisible(false);

    // title
    setTitle(jfreechart);

    // chart colors & values shown on bars
    boolean showValues = (chart.getShowYValuesOnChart() == null) ? false : chart.getShowYValuesOnChart();
    CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();
    plot.setForegroundAlpha(transparency);
    BarRenderer renderer = (BarRenderer) plot.getRenderer();
    renderer.setDrawBarOutline(false);
    DecimalFormat decimalformat;
    DecimalFormat percentageFormat;
    if (chart.getYTooltipPattern() == null) {
        decimalformat = new DecimalFormat("#");
        percentageFormat = new DecimalFormat("0.00%");
    } else {
        decimalformat = new DecimalFormat(chart.getYTooltipPattern());
        percentageFormat = decimalformat;
    }
    for (int i = 0; i < charts.length; i++) {
        renderer.setSeriesPaint(i, chart.getForegrounds().get(i));
        if (showValues) {
            renderer.setSeriesItemLabelsVisible(i, true);
            renderer.setSeriesItemLabelGenerator(i,
                    new StandardCategoryItemLabelGenerator("{2}", decimalformat, percentageFormat));
        }
    }

    if (showValues) {
        // increase a little bit the range axis to view all item label values over bars
        plot.getRangeAxis().setUpperMargin(0.2);
    }

    // grid axis visibility & colors 
    if ((chart.getXShowGrid() != null) && !chart.getXShowGrid()) {
        plot.setDomainGridlinesVisible(false);
    } else {
        if (chart.getXGridColor() != null) {
            plot.setDomainGridlinePaint(chart.getXGridColor());
        } else {
            plot.setDomainGridlinePaint(Color.BLACK);
        }
    }
    if ((chart.getYShowGrid() != null) && !chart.getYShowGrid()) {
        plot.setRangeGridlinesVisible(false);
    } else {
        if (chart.getYGridColor() != null) {
            plot.setRangeGridlinePaint(chart.getYGridColor());
        } else {
            plot.setRangeGridlinePaint(Color.BLACK);
        }
    }

    // chart background
    plot.setBackgroundPaint(chart.getBackground());

    // labels color
    plot.getDomainAxis().setTickLabelPaint(chart.getXColor());
    plot.getRangeAxis().setTickLabelPaint(chart.getYColor());

    // legend color
    plot.getDomainAxis().setLabelPaint(chart.getXLegend().getColor());
    plot.getRangeAxis().setLabelPaint(chart.getYLegend().getColor());

    // legend font
    plot.getDomainAxis().setLabelFont(chart.getXLegend().getFont());
    plot.getRangeAxis().setLabelFont(chart.getYLegend().getFont());

    // axis color
    plot.getDomainAxis().setAxisLinePaint(chart.getxAxisColor());
    plot.getRangeAxis().setAxisLinePaint(chart.getyAxisColor());

    // hide labels
    if ((chart.getXShowLabel() != null) && !chart.getXShowLabel()) {
        plot.getDomainAxis().setTickLabelsVisible(false);
        plot.getDomainAxis().setTickMarksVisible(false);
    }
    if ((chart.getYShowLabel() != null) && !chart.getYShowLabel()) {
        plot.getRangeAxis().setTickLabelsVisible(false);
        plot.getRangeAxis().setTickMarksVisible(false);
    }

    if (chart.getType().getStyle() == ChartType.STYLE_NORMAL) {
        // no shadow
        renderer.setShadowVisible(false);
        // no gradient
        renderer.setBarPainter(new StandardBarPainter());
    }

    // label orientation
    CategoryAxis domainAxis = plot.getDomainAxis();
    if (chart.getXorientation() == Chart.VERTICAL) {
        domainAxis
                .setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 2));
    } else if (chart.getXorientation() == Chart.DIAGONAL) {
        domainAxis
                .setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 4));
    } else if (chart.getXorientation() == Chart.HALF_DIAGONAL) {
        domainAxis
                .setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 8));
    }

    // labels fonts
    domainAxis.setTickLabelFont(chart.getXLabelFont());
    plot.getRangeAxis().setTickLabelFont(chart.getYLabelFont());

    createChart(plot.getRangeAxis(), charts);

    if (isCombo) {
        addLineChartOverBar(jfreechart, lineCharts, lineLegend);
    }

    return jfreechart;
}

From source file:jhplot.HChart.java

/**
 * Update the chart/*from  w  ww  . j a v  a  2  s  .c  o  m*/
 * 
 * @param N1
 *            location in X
 * @param N2
 *            location in Y
 */
public void update(int N1, int N2) {

    if (cdatPie[N1][N2] != null || cdatPie3D[N1][N2] != null || cdatBar[N1][N2] != null
            || cdatBar3D[N1][N2] != null || cdatLine[N1][N2] != null || cdatArea[N1][N2] != null
            || cdatPolar[N1][N2] != null) {

        if (cdatPie[N1][N2] != null) {
            chart[N1][N2] = ChartFactory.createPieChart(title[N1][N2], (PieDataset) cdatPie[N1][N2], true, true,
                    true);

        } else if (cdatPie3D[N1][N2] != null) {
            chart[N1][N2] = ChartFactory.createPieChart3D(title[N1][N2], (PieDataset) cdatPie3D[N1][N2], true,
                    true, true);
            PiePlot3D pieplot3d = (PiePlot3D) chart[N1][N2].getPlot();
            // pieplot3d.setStartAngle(290D);
            // pieplot3d.setDirection(Rotation.CLOCKWISE);
            // pieplot3d.setForegroundAlpha(0.5F);
            pieplot3d.setBackgroundPaint(DEFAULT_BG_COLOR);

        } else if (cdatBar[N1][N2] != null) {
            chart[N1][N2] = ChartFactory.createBarChart(title[N1][N2], titleX[N1][N2], titleY[N1][N2],
                    (CategoryDataset) cdatBar[N1][N2], PlotOrientation.VERTICAL, true, true, true);
            CategoryPlot lineplot = (CategoryPlot) chart[N1][N2].getPlot();

            CategoryAxis yy = lineplot.getDomainAxis();
            yy.setTickLabelPaint(tickColor);
            yy.setTickLabelFont(tickFont);
            yy.setLabelPaint(labelColor);
            yy.setLabelFont(labelFont);
            yy.setAxisLineStroke(new BasicStroke(axisPenwidth));
            yy.setAxisLinePaint(Color.black);
            ValueAxis xx = lineplot.getRangeAxis();
            xx.setTickLabelPaint(tickColor);
            xx.setTickLabelFont(tickFont);
            xx.setLabelPaint(labelColor);
            xx.setLabelFont(labelFont);
            xx.setAxisLineStroke(new BasicStroke(axisPenwidth));
            xx.setAxisLinePaint(Color.black);

        } else if (cdatBar3D[N1][N2] != null) {
            chart[N1][N2] = ChartFactory.createBarChart3D(title[N1][N2], titleX[N1][N2], titleY[N1][N2],
                    (CategoryDataset) cdatBar3D[N1][N2], PlotOrientation.VERTICAL, true, true, true);
        } else if (cdatLine[N1][N2] != null) {
            chart[N1][N2] = ChartFactory.createLineChart(title[N1][N2], titleX[N1][N2], titleY[N1][N2],
                    (CategoryDataset) cdatLine[N1][N2], PlotOrientation.VERTICAL, true, true, true);
            CategoryPlot lineplot = (CategoryPlot) chart[N1][N2].getPlot();
            lineplot.setOutlineStroke(new BasicStroke(axisPenwidth));
            CategoryAxis yy = lineplot.getDomainAxis();
            yy.setTickLabelPaint(tickColor);
            yy.setTickLabelFont(tickFont);
            yy.setLabelPaint(labelColor);
            yy.setLabelFont(labelFont);
            yy.setAxisLineStroke(new BasicStroke(axisPenwidth));
            yy.setAxisLinePaint(Color.black);
            ValueAxis xx = lineplot.getRangeAxis();
            xx.setTickLabelPaint(tickColor);
            xx.setTickLabelFont(tickFont);
            xx.setLabelPaint(labelColor);
            xx.setLabelFont(labelFont);
            xx.setAxisLineStroke(new BasicStroke(axisPenwidth));
            xx.setAxisLinePaint(Color.black);

            LineAndShapeRenderer renderer = (LineAndShapeRenderer) lineplot.getRenderer();
            renderer.setBaseStroke(new BasicStroke(linestroke));
            for (int m = 0; m < cdatLine[N1][N2].getColumnCount() + 1; m++)
                renderer.setSeriesStroke(m, new BasicStroke(linestroke));

        } else if (cdatPolar[N1][N2] != null) {
            chart[N1][N2] = ChartFactory.createPolarChart(title[N1][N2], (XYSeriesCollection) cdatPolar[N1][N2],
                    true, true, true);
            PolarPlot lineplot = (PolarPlot) chart[N1][N2].getPlot();
            ValueAxis yy = lineplot.getAxis();
            yy.setTickLabelPaint(tickColor);
            yy.setTickLabelFont(tickFont);
            yy.setLabelPaint(labelColor);
            yy.setLabelFont(labelFont);
            yy.setAxisLineStroke(new BasicStroke(axisPenwidth));
            yy.setAxisLinePaint(Color.black);

        } else if (cdatArea[N1][N2] != null) {

            chart[N1][N2] = ChartFactory.createAreaChart(title[N1][N2], titleX[N1][N2], titleY[N1][N2],
                    (CategoryDataset) cdatArea[N1][N2], PlotOrientation.VERTICAL, true, true, true);
            CategoryPlot lineplot = (CategoryPlot) chart[N1][N2].getPlot();

            CategoryAxis yy = lineplot.getDomainAxis();
            yy.setTickLabelPaint(tickColor);
            yy.setTickLabelFont(tickFont);
            yy.setLabelPaint(labelColor);
            yy.setLabelFont(labelFont);
            yy.setAxisLineStroke(new BasicStroke(axisPenwidth));
            yy.setAxisLinePaint(Color.black);
            ValueAxis xx = lineplot.getRangeAxis();
            xx.setTickLabelPaint(tickColor);
            xx.setTickLabelFont(tickFont);
            xx.setLabelPaint(labelColor);
            xx.setLabelFont(labelFont);
            xx.setAxisLineStroke(new BasicStroke(axisPenwidth));
            xx.setAxisLinePaint(Color.black);

        }

        chart[N1][N2].setAntiAlias(antiAlias);
        chart[N1][N2].setBorderPaint(DEFAULT_BG_COLOR);
        chart[N1][N2].setBackgroundPaint(DEFAULT_BG_COLOR);
        chart[N1][N2].setBorderVisible(false);
        cp[N1][N2].setChart(chart[N1][N2]);
        return;
    }

    for (int i = 0; i < indexdat[N1][N2]; i++) {

        if (type[N1][N2].get(i) == "array")
            xyplot[N1][N2].setRenderer(i, (StandardXYItemRenderer) (rdat[N1][N2].get(i)));
        else if (type[N1][N2].get(i) == "f")
            xyplot[N1][N2].setRenderer(i, (XYLineAndShapeRenderer) (rdat[N1][N2].get(i)));
        else if (type[N1][N2].get(i) == "h")
            xyplot[N1][N2].setRenderer(i, (XYBarRenderer) (rdat[N1][N2].get(i)));
        else if (type[N1][N2].get(i) == "p")
            xyplot[N1][N2].setRenderer(i, (XYLineAndShapeRenderer) (rdat[N1][N2].get(i)));
        else if (type[N1][N2].get(i) == "pe")
            xyplot[N1][N2].setRenderer(i, (XYErrorRenderer) (rdat[N1][N2].get(i)));

        // System.out.println(i);

    }

    chart[N1][N2] = new JFreeChart(title[N1][N2], JFreeChart.DEFAULT_TITLE_FONT, xyplot[N1][N2], true);
    chart[N1][N2].setAntiAlias(antiAlias);
    chart[N1][N2].setBorderPaint(DEFAULT_BG_COLOR);
    chart[N1][N2].setBackgroundPaint(DEFAULT_BG_COLOR);
    chart[N1][N2].setBorderVisible(false);

    cp[N1][N2].setChart(chart[N1][N2]);

}

From source file:org.pentaho.chart.plugin.jfreechart.JFreeChartFactoryEngine.java

private void initCategoryPlot(JFreeChart chart, ChartModel chartModel,
        final IChartLinkGenerator linkGenerator) {
    initPlot(chart, chartModel);//from   w w w .  j  a va 2  s.  com

    org.pentaho.chart.model.TwoAxisPlot twoAxisPlot = (org.pentaho.chart.model.TwoAxisPlot) chartModel
            .getPlot();
    CategoryPlot categoryPlot = chart.getCategoryPlot();

    Grid grid = twoAxisPlot.getGrid();
    if (twoAxisPlot.getOrientation() != Orientation.HORIZONTAL) {
        Color color = (grid.getVerticalLineColor() != null ? new Color(0x00FFFFFF & grid.getVerticalLineColor())
                : new Color(0x00FFFFFF & Grid.DEFAULT_GRID_COLOR));
        categoryPlot.setDomainGridlinesVisible(grid.getVerticalLinesVisible());
        categoryPlot.setDomainGridlinePaint(color);

        color = (grid.getHorizontalLineColor() != null ? new Color(0x00FFFFFF & grid.getHorizontalLineColor())
                : new Color(0x00FFFFFF & Grid.DEFAULT_GRID_COLOR));
        categoryPlot.setRangeGridlinesVisible(grid.getHorizontalLinesVisible());
        categoryPlot.setRangeGridlinePaint(color);
    } else {
        Color color = (grid.getHorizontalLineColor() != null
                ? new Color(0x00FFFFFF & grid.getHorizontalLineColor())
                : new Color(0x00FFFFFF & Grid.DEFAULT_GRID_COLOR));
        categoryPlot.setDomainGridlinesVisible(grid.getHorizontalLinesVisible());
        categoryPlot.setDomainGridlinePaint(color);

        color = (grid.getVerticalLineColor() != null ? new Color(0x00FFFFFF & grid.getVerticalLineColor())
                : new Color(0x00FFFFFF & Grid.DEFAULT_GRID_COLOR));
        categoryPlot.setRangeGridlinesVisible(grid.getVerticalLinesVisible());
        categoryPlot.setRangeGridlinePaint(color);
    }

    categoryPlot.setDomainGridlineStroke(new BasicStroke(1));
    categoryPlot.setRangeGridlineStroke(new BasicStroke(1));

    List<Integer> colors = getPlotColors(twoAxisPlot);

    for (int j = 0; j < categoryPlot.getDatasetCount(); j++) {
        if (linkGenerator != null) {
            categoryPlot.getRenderer(j).setBaseItemURLGenerator(new CategoryURLGenerator() {
                public String generateURL(CategoryDataset dataset, int series, int category) {
                    return linkGenerator.generateLink(dataset.getRowKey(series).toString(),
                            dataset.getColumnKey(category).toString(), dataset.getValue(series, category));
                }
            });
        }
        for (int i = 0; i < colors.size(); i++) {
            categoryPlot.getRenderer(j).setSeriesPaint(i, new Color(0x00FFFFFF & colors.get(i)));
        }
    }

    Font domainAxisFont = ChartUtils.getFont(twoAxisPlot.getDomainAxis().getFontFamily(),
            twoAxisPlot.getDomainAxis().getFontStyle(), twoAxisPlot.getDomainAxis().getFontWeight(),
            twoAxisPlot.getDomainAxis().getFontSize());
    Font rangeAxisFont = ChartUtils.getFont(twoAxisPlot.getRangeAxis().getFontFamily(),
            twoAxisPlot.getRangeAxis().getFontStyle(), twoAxisPlot.getRangeAxis().getFontWeight(),
            twoAxisPlot.getRangeAxis().getFontSize());
    Font rangeTitleFont = ChartUtils.getFont(twoAxisPlot.getRangeAxis().getLegend().getFontFamily(),
            twoAxisPlot.getRangeAxis().getLegend().getFontStyle(),
            twoAxisPlot.getRangeAxis().getLegend().getFontWeight(),
            twoAxisPlot.getRangeAxis().getLegend().getFontSize());
    Font domainTitleFont = ChartUtils.getFont(twoAxisPlot.getDomainAxis().getLegend().getFontFamily(),
            twoAxisPlot.getDomainAxis().getLegend().getFontStyle(),
            twoAxisPlot.getDomainAxis().getLegend().getFontWeight(),
            twoAxisPlot.getDomainAxis().getLegend().getFontSize());

    CategoryAxis domainAxis = categoryPlot.getDomainAxis();
    ValueAxis rangeAxis = categoryPlot.getRangeAxis();

    AxesLabels axesLabels = getAxesLabels(chartModel);
    if ((axesLabels.rangeAxisLabel.length() > 0) && (rangeTitleFont != null)) {
        rangeAxis.setLabelFont(rangeTitleFont);
    }

    if ((axesLabels.domainAxisLabel.length() > 0) && (domainTitleFont != null)) {
        domainAxis.setLabelFont(domainTitleFont);
    }

    LabelOrientation labelOrientation = twoAxisPlot.getHorizontalAxis().getLabelOrientation();
    if ((labelOrientation != null) && (labelOrientation != LabelOrientation.HORIZONTAL)) {
        if (twoAxisPlot.getOrientation() == Orientation.HORIZONTAL) {
            if (labelOrientation == LabelOrientation.VERTICAL) {
                rangeAxis.setVerticalTickLabels(true);
            }
        } else {
            switch (labelOrientation) {
            case VERTICAL:
                domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90);
                break;
            case DIAGONAL:
                domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
                break;
            }
        }
    }

    if (domainAxisFont != null) {
        domainAxis.setTickLabelFont(domainAxisFont);
    }
    if (rangeAxisFont != null) {
        rangeAxis.setTickLabelFont(rangeAxisFont);
    }

    Number rangeMin = twoAxisPlot.getRangeAxis().getMinValue();
    if (rangeMin != null) {
        rangeAxis.setLowerBound(rangeMin.doubleValue());
    }
    Number rangeMax = twoAxisPlot.getRangeAxis().getMaxValue();
    if (rangeMax != null) {
        rangeAxis.setUpperBound(rangeMax.doubleValue());
    }
}

From source file:org.forester.archaeopteryx.TreePanel.java

private static JFreeChart createChart(CategoryDataset dataset, String branch_name) {
    // create the chart
    JFreeChart chart = ChartFactory.createBarChart("RAxML Weights Histogram " + branch_name, // chart title
            "RAxML Weights", // domain axis label
            "Placements", // range axis label
            dataset, // data
            PlotOrientation.VERTICAL, // orientation
            false, // include legend
            true, // tooltips?
            false // URLs?
    );/*  w  w  w  .j av  a  2 s  .c om*/

    // set the background color for the chart and title colors & font
    chart.setBackgroundPaint(Color.black);
    chart.setTextAntiAlias(true);
    chart.setBorderPaint(Color.green);
    chart.getTitle().setPaint(Color.white);
    chart.getTitle().setFont(chart.getTitle().getFont().deriveFont(12.0f));

    // get a reference to the plot for further customisation
    CategoryPlot plot = chart.getCategoryPlot();
    plot.setForegroundAlpha(0.7f);
    plot.setBackgroundPaint(Color.black);
    plot.setDomainGridlinePaint(Color.white);
    plot.setDomainGridlinesVisible(true);
    plot.setRangeGridlinePaint(Color.white);

    // set the range axis to display integers only, set colors & font
    final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    rangeAxis.setLabelPaint(Color.white);
    rangeAxis.setLabelFont(rangeAxis.getLabelFont().deriveFont(10.0f));
    rangeAxis.setAxisLinePaint(new Color(226, 236, 243));
    rangeAxis.setTickLabelFont(rangeAxis.getTickLabelFont().deriveFont(8.0f));
    rangeAxis.setTickLabelPaint(Color.white);

    // Custom renderer to display each bar in another color
    final BarRenderer renderer = new CustomRenderer(new Paint[] { new Color(255, 0, 0), new Color(227, 28, 0),
            new Color(199, 56, 0), new Color(171, 84, 0), new Color(143, 112, 0), new Color(115, 140, 0),
            new Color(87, 168, 0), new Color(59, 196, 0), new Color(31, 224, 0), new Color(0, 255, 0) });

    // shadow effect off
    renderer.setShadowVisible(false);

    //make custom renderer the new renderer for the barchart
    plot.setRenderer(renderer);

    // set x axis label rotation, font and color
    CategoryAxis domainAxis = plot.getDomainAxis();
    domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 4));
    domainAxis.setLabelPaint(Color.white);
    domainAxis.setLabelFont(domainAxis.getLabelFont().deriveFont(10.0f));
    domainAxis.setTickLabelPaint(Color.white);
    domainAxis.setTickLabelFont(domainAxis.getTickLabelFont().deriveFont(8.0f));
    domainAxis.setAxisLinePaint(new Color(226, 236, 243));
    // OPTIONAL CUSTOMISATION COMPLETED.

    return chart;

}

From source file:skoa.helpers.Graficos.java

private void barrasDual2() {
    unificarDatosFicheros();//from w w w . j av a2  s  .c om
    Vector<String> vectorOrdenUnidades = new Vector<String>();
    vectorOrdenUnidades = ordenDeUnidades();
    aplicarDiferencia(vectorOrdenUnidades);
    //En este caso, que queremos 2 ejes, MARCAMOS LA DIFERENCIA AL RECOGER EL 2 DATASET.
    CategoryDataset dataset = obtenerSerieBarrasDual(1);
    //String unidad=vectorOrdenUnidades.elementAt(0);
    String unidad;
    if (vectorOrdenUnidades.elementAt(0).indexOf("W") >= 0 || vectorOrdenUnidades.elementAt(0).indexOf("L") >= 0
            || vectorOrdenUnidades.elementAt(0).indexOf("m") >= 0
            || vectorOrdenUnidades.elementAt(0).indexOf("B") >= 0)
        unidad = vectorOrdenUnidades.elementAt(0);
    else if (vectorOrdenUnidades.elementAt(0).indexOf("C") >= 0)
        unidad = "C";
    else
        unidad = "";
    final CategoryAxis domainAxis = new CategoryAxis("Fechas");
    final NumberAxis rangeAxis = new NumberAxis("Mediciones (" + unidad + ")");
    final BarRenderer renderer1 = new BarRenderer();
    final CategoryPlot plot = new CategoryPlot(dataset, domainAxis, rangeAxis, renderer1) {
        private static final long serialVersionUID = 1L;

        //ESPECIAL. Modificamos la leyenda, para que se vea correcta, cogiendo los 2 items deseados.
        public LegendItemCollection getLegendItems() {
            final LegendItemCollection result = new LegendItemCollection();
            final CategoryDataset data = getDataset();
            if (data != null) {
                final CategoryItemRenderer r = getRenderer();
                if (r != null) {
                    final LegendItem item;
                    try { //Se recoge la excepcion en caso de haber solo
                        item = r.getLegendItem(0, 0); //una lnea en el fichero unificado, porque
                    } catch (Exception e) { //no habria nada en diferenciaAplicada.
                        System.out.println("MAL " + e);
                        return null;
                    }
                    result.add(item);
                }
            }
            final CategoryDataset dset2 = getDataset(1);
            if (dset2 != null) {
                final CategoryItemRenderer renderer2 = getRenderer(1);
                if (renderer2 != null) {
                    final LegendItem item = renderer2.getLegendItem(1, 1);
                    result.add(item);
                }
            }
            return result;
        }
    };
    final JFreeChart grafica = new JFreeChart("Valores medidos de las direcciones de grupo", plot);
    plot.setBackgroundPaint(new Color(0xEE, 0xEE, 0xFF));
    plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
    CategoryDataset dataset2 = obtenerSerieBarrasDual(2);
    //unidad=vectorOrdenUnidades.elementAt(1);
    if (vectorOrdenUnidades.elementAt(1).indexOf("W") >= 0 || vectorOrdenUnidades.elementAt(1).indexOf("L") >= 0
            || vectorOrdenUnidades.elementAt(1).indexOf("m") >= 0
            || vectorOrdenUnidades.elementAt(1).indexOf("B") >= 0)
        unidad = vectorOrdenUnidades.elementAt(1);
    else if (vectorOrdenUnidades.elementAt(1).indexOf("C") >= 0)
        unidad = "C";
    else
        unidad = "";
    plot.setDataset(1, dataset2);
    plot.mapDatasetToRangeAxis(1, 1);
    final ValueAxis axis2 = new NumberAxis("Mediciones (" + unidad + ")");
    plot.setRangeAxis(1, axis2);
    plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
    final BarRenderer renderer2 = new BarRenderer();
    renderer2.setShadowVisible(false); //Esconder las sombras de la barra 1.
    plot.setRenderer(1, renderer2);
    BarRenderer renderer = new BarRenderer();
    renderer.setShadowVisible(false); //Esconder las sombras de la barra 2.
    plot.setRenderer(0, renderer);
    plot.setRangeGridlinePaint(Color.BLACK); //Color de las lineas divisorias.
    //Subttulos
    if (fechaInicial.isEmpty()) {
        fechaInicial = fechaFinal = "?";
    }
    TextTitle t = new TextTitle("desde " + fechaInicial + " hasta " + fechaFinal,
            new Font("SanSerif", Font.ITALIC, 12));
    grafica.addSubtitle(t);
    domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.PI / 6.0));
    domainAxis.setTickLabelFont(new Font("Dialog", Font.PLAIN, 8)); //Letra de las fechas ms pequea
    grafica.setBackgroundPaint(Color.white);
    //-------------------------------------------------
    //Guarda la imagen:
    BufferedImage i1 = grafica.createBufferedImage(400, 300);
    BufferedImage i2 = grafica.createBufferedImage(900, 600);
    BufferedImage imag1 = convertirTipo(i1, BufferedImage.TYPE_INT_RGB);//!OBLIGATORIO!Para que al guardar la imagen,
    BufferedImage imag2 = convertirTipo(i2, BufferedImage.TYPE_INT_RGB);//no se vea transparente naranja.
    try {
        ImageIO.write(imag1, "jpg", new File(ruta + "BarrasSmall.jpg"));
        ImageIO.write(imag2, "jpg", new File(ruta + "BarrasBig.jpg"));
    } catch (IOException e) {
        System.out.println("Error de escritura");
    }
}