Example usage for org.jfree.chart.plot CategoryMarker CategoryMarker

List of usage examples for org.jfree.chart.plot CategoryMarker CategoryMarker

Introduction

In this page you can find the example usage for org.jfree.chart.plot CategoryMarker CategoryMarker.

Prototype

public CategoryMarker(Comparable key) 

Source Link

Document

Creates a new category marker for the specified category.

Usage

From source file:net.sf.jasperreports.customizers.marker.CategoryMarkerCustomizer.java

protected CategoryMarker createMarker(JRChart jrc) {
    Comparable<?> value = getProperty(PROPERTY_CATEGORY);

    if (value == null) {
        return null;
    }/*from  ww  w  .j av  a2  s .  c  o  m*/

    CategoryMarker marker = new CategoryMarker(value);

    configureMarker(marker);

    configureStroke(marker);

    Boolean drawAsLine = getBooleanProperty(PROPERTY_DRAW_AS_LINE);
    if (drawAsLine != null) {
        marker.setDrawAsLine(drawAsLine);
    }

    //Setup the font
    Font font = marker.getLabelFont();

    String fontName = getProperty(PROPERTY_FONT_NAME);
    if (fontName == null) {
        fontName = font.getName();
    }

    Float fontSize = getFloatProperty(PROPERTY_FONT_SIZE);
    if (fontSize == null) {
        fontSize = Float.valueOf(font.getSize());
    }

    int fontStyle = Font.PLAIN;
    Boolean isBold = getBooleanProperty(PROPERTY_FONT_BOLD);
    if (isBold != null) {
        fontStyle = fontStyle | Font.BOLD;
    }
    Boolean isItalic = getBooleanProperty(PROPERTY_FONT_ITALIC);
    if (isItalic != null) {
        fontStyle = fontStyle | Font.ITALIC;
    }

    marker.setLabelFont(FontUtil.getInstance(filler.getJasperReportsContext()).getAwtFontFromBundles(fontName,
            fontStyle, fontSize, filler.getFillContext().getMasterLocale(), true));

    return marker;
}

From source file:spec.reporter.Utils.java

public static void createBmResultGraph(BenchmarkRecord record) {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    String iterName = "";
    double max = 0;
    double min = Long.MAX_VALUE;
    for (int i = 0; i < record.iterRecords.size(); i++) {
        BenchmarkRecord.IterationRecord iterRecord = (BenchmarkRecord.IterationRecord) record.iterRecords
                .get(i);//w ww . j  ava  2  s .  c  o  m
        String shortName = iterRecord.iterName.replaceFirst("ation", "");
        if (iterRecord.score > max) {
            max = iterRecord.score;
            iterName = shortName;
        }

        if (iterRecord.score < min) {
            min = iterRecord.score;
        }

        dataset.addValue(iterRecord.score, " ", shortName);
    }

    JFreeChart chart = ChartFactory.createLineChart("  ", "iterations", Constants.WORKLOAD_METRIC, dataset,
            PlotOrientation.VERTICAL, false, true, false);
    CategoryPlot plot = chart.getCategoryPlot();
    plot.setBackgroundPaint(new Color(201, 222, 254));
    plot.setRangeGridlinePaint(Color.WHITE);
    if (record.isValidRun() && min != Long.MAX_VALUE) {
        plot.getRangeAxis().setRange(min - 10, max + 10);
    } else {
        plot.getRangeAxis().setRange(0, max + 10);
    }
    ValueMarker vm = new ValueMarker(record.maxScore);
    vm.setLabel(Utils.df.format(record.maxScore));
    vm.setLabelAnchor(RectangleAnchor.TOP_LEFT);
    vm.setLabelTextAnchor(TextAnchor.HALF_ASCENT_LEFT);

    plot.addRangeMarker(vm);
    CategoryMarker marker = new CategoryMarker(iterName);
    marker.setDrawAsLine(true);
    marker.setPaint(vm.getPaint());
    plot.addDomainMarker(marker);
    LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
    renderer.setShapesVisible(true);
    renderer.setDrawOutlines(true);
    renderer.setUseFillPaint(true);
    renderer.setFillPaint(Color.WHITE);
    renderer.setSeriesPaint(0, Color.BLUE.darker());

    try {
        ChartUtilities.saveChartAsJPEG(new File(Utils.getFullImageName(record.name + "_results")), chart, 300,
                200);
    } catch (Exception e) {
        System.out.println("Problems...");
    }
}

From source file:org.openfaces.component.chart.impl.configuration.charts.GridChartConfigurator.java

private org.jfree.chart.plot.Marker initCategoryMarker(Marker marker) {
    if (marker.getValue() != null) {
        org.jfree.chart.plot.Marker domainMarker = new CategoryMarker(marker.getValue());
        initializeChartMarker(marker, domainMarker);

        ((CategoryMarker) domainMarker).setDrawAsLine(marker.getDrawAsLine());

        return domainMarker;
    }/*  w  w  w  .j  a v a  2  s.  com*/

    return null;
}

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

/**
 * Creates a sample chart./* ww  w  . j  a  v a 2 s .  c  o m*/
 * 
 * @param dataset  the dataset.
 * 
 * @return a sample chart.
 */
protected JFreeChart createChart(CategoryDataset dataset) {

    JFreeChart chart = ChartFactory.createBarChart(chartTitle, // chart title
            domainLabel, // domain axis label
            rangeLabel, // range axis label
            dataset, // data
            PlotOrientation.VERTICAL, // the plot orientation
            !legendPanelOn, // include legend
            true, false);

    chart.setBackgroundPaint(Color.lightGray);

    // get a reference to the plot for further customisation...
    CategoryPlot plot = (CategoryPlot) chart.getPlot();
    plot.setNoDataMessage("NO DATA!");

    CategoryItemRenderer renderer = new CustomBarRenderer(new Paint[] { Color.red, Color.blue, Color.green,
            Color.yellow, Color.orange, Color.cyan, Color.magenta, Color.blue });
    renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    renderer.setBaseItemLabelsVisible(true);
    ItemLabelPosition p = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER,
            45.0);
    renderer.setBasePositiveItemLabelPosition(p);
    plot.setRenderer(renderer);

    CategoryMarker marker = new CategoryMarker("Category 3");
    marker.setLabel("Special");
    marker.setPaint(new Color(0xDD, 0xFF, 0xDD, 0x80));
    marker.setAlpha(0.5f);
    marker.setLabelAnchor(RectangleAnchor.TOP_LEFT);
    marker.setLabelTextAnchor(TextAnchor.TOP_LEFT);
    marker.setLabelOffsetType(LengthAdjustmentType.CONTRACT);
    plot.addDomainMarker(marker, Layer.BACKGROUND);

    // change the margin at the top of the range axis...
    NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    rangeAxis.setLowerMargin(0.15);
    rangeAxis.setUpperMargin(0.15);

    BarRenderer seriesRenderer = (BarRenderer) plot.getRenderer();
    seriesRenderer.setLegendItemLabelGenerator(new SOCRCategorySeriesLabelGenerator());

    setCategorySummary(dataset);
    return chart;

}

From source file:org.pau.assetmanager.viewmodel.chart.PrepareChart.java

public static void preparePropertiesVsOwnAllPropertiesJFreeChart(JFreeChart jfchart,
        CategoryDataset categoryModel) {

    CategoryPlot categoryPlot = ((CategoryPlot) jfchart.getPlot());
    categoryPlot.getRangeAxis().resizeRange(1.2);
    categoryPlot.setBackgroundPaint(Color.WHITE);
    categoryPlot.setDomainGridlinePaint(Color.WHITE);
    categoryPlot.setRangeMinorGridlinePaint(Color.WHITE);
    categoryPlot.setRangeGridlinePaint(Color.BLACK);
    BarRenderer renderer = (BarRenderer) categoryPlot.getRenderer();

    renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    renderer.setBaseItemLabelsVisible(true);

    renderer.setBaseItemLabelFont(new Font("Serif", Font.PLAIN, 10));
    renderer.setItemLabelAnchorOffset(15);

    renderer.setSeriesStroke(0, new BasicStroke(1));
    renderer.setSeriesStroke(1, new BasicStroke(1));
    renderer.setSeriesStroke(2, new BasicStroke(1));
    renderer.setSeriesStroke(3, new BasicStroke(1));
    renderer.setSeriesStroke(4, new BasicStroke(1));
    renderer.setSeriesStroke(5, new BasicStroke(1));
    renderer.setSeriesPaint(0, new Color(0x77, 0x77, 0xFF));
    renderer.setSeriesPaint(1, new Color(0xCC, 0xCC, 0xFF));
    renderer.setSeriesPaint(2, new Color(0x00, 0x00, 0xFF));
    renderer.setSeriesPaint(3, new Color(0xFF, 0x77, 0x77));
    renderer.setSeriesPaint(4, new Color(0xFF, 0xCC, 0xCC));
    renderer.setSeriesPaint(5, new Color(0xFF, 0x00, 0x00));
    for (int i = 0; i < categoryModel.getColumnKeys().size(); i++) {
        String label = (String) categoryModel.getColumnKey(i);
        CategoryMarker marker = new CategoryMarker(label);
        marker.setLabel("");
        marker.setPaint(Color.cyan);
        marker.setOutlinePaint(Color.cyan);
        marker.setAlpha(0.1f);//  ww  w . j  a  v a2  s.co m
        marker.setLabelAnchor(RectangleAnchor.TOP);
        marker.setLabelTextAnchor(TextAnchor.TOP_CENTER);
        marker.setLabelOffsetType(LengthAdjustmentType.CONTRACT);
        categoryPlot.addDomainMarker(marker, Layer.BACKGROUND);
    }
    renderer.setDrawBarOutline(false);
    renderer.setShadowVisible(false);
    renderer.setItemMargin(.1);
    renderer.setBarPainter(new StandardBarPainter());
    renderer.setBasePositiveItemLabelPosition(
            new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.TOP_RIGHT));
    renderer.setBaseNegativeItemLabelPosition(
            new ItemLabelPosition(ItemLabelAnchor.OUTSIDE6, TextAnchor.BOTTOM_RIGHT));
}

From source file:org.pau.assetmanager.viewmodel.chart.PrepareChart.java

public static void prepareJFreeBarChart(JFreeChart jfchart, List<PropertyBook> listOfPropertties,
        CategoryDataset categoryModel) {

    CategoryPlot categoryPlot = ((CategoryPlot) jfchart.getPlot());
    categoryPlot.getRangeAxis().resizeRange(1.2);
    categoryPlot.setBackgroundPaint(Color.WHITE);
    categoryPlot.setDomainGridlinePaint(Color.WHITE);
    categoryPlot.setRangeMinorGridlinePaint(Color.WHITE);
    categoryPlot.setRangeGridlinePaint(Color.BLACK);
    BarRenderer renderer = (BarRenderer) categoryPlot.getRenderer();

    renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    renderer.setBaseItemLabelsVisible(false);
    for (int i = 0; i < listOfPropertties.size(); i++) {
        renderer.setSeriesStroke(i, new BasicStroke(1));
    }//from   w  w  w .  j  a v  a 2s  .c om
    for (int i = 0; i < categoryModel.getColumnKeys().size(); i++) {
        String label = (String) categoryModel.getColumnKey(i);
        CategoryMarker marker = new CategoryMarker(label);
        marker.setLabel("");
        marker.setPaint(Color.cyan);
        marker.setOutlinePaint(Color.cyan);
        marker.setAlpha(0.1f);
        marker.setLabelAnchor(RectangleAnchor.TOP);
        marker.setLabelTextAnchor(TextAnchor.TOP_CENTER);
        marker.setLabelOffsetType(LengthAdjustmentType.CONTRACT);
        categoryPlot.addDomainMarker(marker, Layer.BACKGROUND);
    }
    renderer.setDrawBarOutline(false);
    renderer.setShadowVisible(false);
    renderer.setItemMargin(.1);
    renderer.setBarPainter(new StandardBarPainter());

}

From source file:nl.strohalm.cyclos.services.transactions.PaymentServiceImpl.java

@Override
public StatisticalResultDTO getSimulateConversionGraph(final ConversionSimulationDTO input) {
    final LocalSettings localSettings = settingsService.getLocalSettings();
    final byte precision = (byte) localSettings.getPrecision().getValue();

    // get series
    final TransactionFeePreviewForRatesDTO temp = simulateConversion(input);
    final int series = temp.getFees().size();
    // get range of points, but without values for A < 0
    BigDecimal initialARate = null;
    RatesResultDTO rates = new RatesResultDTO();
    if (input.isUseActualRates()) {
        rates = rateService.getRatesForTransferFrom(input.getAccount(), input.getAmount(), null);
        rates.setDate(input.getDate());//from  w ww  .jav a  2 s.c  o m
        initialARate = rates.getaRate();
    } else {
        initialARate = input.getArate();
    }

    // lowerlimit takes care that values for A < 0 are left out of the graph
    final Double lowerLimit = (initialARate == null) ? null : initialARate.negate().doubleValue();
    final Number[] xRange = GraphHelper.getOptimalRangeAround(0, 33, 0, 0.8, lowerLimit);

    // Data structure to build the table
    final Number[][] tableCells = new Number[xRange.length][series];
    // initialize series names and x labels
    final String[] seriesNames = new String[series];
    final byte[] seriesOrder = new byte[series];
    final Calendar[] xPointDates = new Calendar[xRange.length];
    final Calendar now = Calendar.getInstance();
    BigDecimal inputARate = temp.getARate();
    BigDecimal inputDRate = temp.getDRate();
    // assign data
    for (int i = 0; i < xRange.length; i++) {
        final ConversionSimulationDTO inputPointX = (ConversionSimulationDTO) input.clone();
        final Calendar date = (Calendar) ((input.isUseActualRates()) ? input.getDate().clone() : now.clone());
        date.add(Calendar.DAY_OF_YEAR, xRange[i].intValue());
        xPointDates[i] = date;
        // Set useActualRates for this input to false, otherwise simulateConversion will use the account's the balance and rates of that date, and
        // we don't want that.
        inputPointX.setUseActualRates(false);
        if (inputARate != null) {
            final BigDecimal aRate = inputARate.add(new BigDecimal(xRange[i].doubleValue()));
            inputPointX.setArate(aRate);
        }
        if (inputDRate != null) {
            final BigDecimal dRate = inputDRate.subtract(new BigDecimal(xRange[i].doubleValue()));
            inputPointX.setDrate(dRate);
        }

        final TransactionFeePreviewDTO tempResult = simulateConversion(inputPointX);
        int j = 0;
        for (final TransactionFee fee : tempResult.getFees().keySet()) {
            tableCells[i][j] = new StatisticalNumber(tempResult.getFees().get(fee).doubleValue(), precision);
            byte index;
            switch (fee.getChargeType()) {
            case D_RATE:
                index = 2;
                break;
            case A_RATE:
            case MIXED_A_D_RATES:
                index = 3;
                break;
            default:
                index = 1;
                break;
            }
            seriesOrder[j] = index;
            seriesNames[j++] = fee.getName();
        }
    }

    // create the graph object
    final StatisticalResultDTO result = new StatisticalResultDTO(tableCells);
    result.setBaseKey("conversionSimulation.result.graph");
    result.setHelpFile("account_management");
    // date labels along x-axis
    final String[] rowKeys = new String[xRange.length];
    Arrays.fill(rowKeys, "");
    result.setRowKeys(rowKeys);
    for (int i = 0; i < rowKeys.length; i++) {
        final String rowHeader = localSettings.getDateConverterForGraphs().toString(xPointDates[i]);
        result.setRowHeader(rowHeader, i);
    }
    // mark the actual date upon which the x-axis is based as a vertical line
    final Calendar baseDate = (input.isUseActualRates()) ? (Calendar) input.getDate().clone() : now;
    final String baseDateString = localSettings.getDateConverterForGraphs().toString(baseDate);
    final Marker[] markers = new Marker[1];
    markers[0] = new CategoryMarker(baseDateString);
    markers[0].setPaint(Color.ORANGE);
    final String todayString = localSettings.getDateConverterForGraphs().toString(now);
    if (todayString.equals(baseDateString)) {
        markers[0].setLabel("global.today");
    }
    result.setDomainMarkers(markers);

    // Series labels indicate fee names
    final String[] columnKeys = new String[series];
    Arrays.fill(columnKeys, "");
    result.setColumnKeys(columnKeys);
    for (int j = 0; j < columnKeys.length; j++) {
        result.setColumnHeader(seriesNames[j], j);
    }

    // order the series
    result.orderSeries(seriesOrder);

    final TransferType tt = fetchService.fetch(input.getTransferType(),
            RelationshipHelper.nested(TransferType.Relationships.FROM, AccountType.Relationships.CURRENCY));
    result.setYAxisUnits(tt.getCurrency().getSymbol());
    result.setShowTable(false);
    result.setGraphType(StatisticalResultDTO.GraphType.STACKED_AREA);
    return result;
}

From source file:com.naryx.tagfusion.cfm.tag.awt.cfCHART.java

public void addDomainMarker(CategoryPlot plot, cfCHARTDOMAINMARKERData dmData) throws cfmRunTimeException {
    CategoryMarker domainMarker = new CategoryMarker(dmData.getValue());
    boolean drawAsLine = false;
    if (dmData.getShape().equals("line"))
        drawAsLine = true;//from   w w w  .  ja  v a2 s. c  o m
    domainMarker.setDrawAsLine(drawAsLine);
    domainMarker.setPaint(convertStringToColor(dmData.getColor()));
    if (dmData.getLabel() != null) {
        domainMarker.setLabel(dmData.getLabel());
        domainMarker.setLabelPaint(convertStringToColor(dmData.getLabelColor()));
        String labelPos = dmData.getLabelPosition();
        if (labelPos.equals("top_left")) {
            domainMarker.setLabelAnchor(RectangleAnchor.TOP_LEFT);
            if (drawAsLine)
                domainMarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
            else
                domainMarker.setLabelTextAnchor(TextAnchor.TOP_LEFT);
        } else if (labelPos.equals("top")) {
            domainMarker.setLabelAnchor(RectangleAnchor.TOP);
            domainMarker.setLabelTextAnchor(TextAnchor.TOP_CENTER);
        } else if (labelPos.equals("top_right")) {
            domainMarker.setLabelAnchor(RectangleAnchor.TOP_RIGHT);
            if (drawAsLine)
                domainMarker.setLabelTextAnchor(TextAnchor.TOP_LEFT);
            else
                domainMarker.setLabelTextAnchor(TextAnchor.TOP_RIGHT);
        } else if (labelPos.equals("left")) {
            domainMarker.setLabelAnchor(RectangleAnchor.LEFT);
            if (drawAsLine)
                domainMarker.setLabelTextAnchor(TextAnchor.CENTER_RIGHT);
            else
                domainMarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
        } else if (labelPos.equals("center")) {
            domainMarker.setLabelAnchor(RectangleAnchor.CENTER);
            domainMarker.setLabelTextAnchor(TextAnchor.CENTER);
        } else if (labelPos.equals("right")) {
            domainMarker.setLabelAnchor(RectangleAnchor.RIGHT);
            if (drawAsLine)
                domainMarker.setLabelTextAnchor(TextAnchor.CENTER_LEFT);
            else
                domainMarker.setLabelTextAnchor(TextAnchor.CENTER_RIGHT);
        } else if (labelPos.equals("bottom_left")) {
            domainMarker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT);
            if (drawAsLine)
                domainMarker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);
            else
                domainMarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT);
        } else if (labelPos.equals("bottom")) {
            domainMarker.setLabelAnchor(RectangleAnchor.BOTTOM);
            domainMarker.setLabelTextAnchor(TextAnchor.BOTTOM_CENTER);
        } else if (labelPos.equals("bottom_right")) {
            domainMarker.setLabelAnchor(RectangleAnchor.BOTTOM_RIGHT);
            if (drawAsLine)
                domainMarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT);
            else
                domainMarker.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);
        }
        domainMarker.setLabelOffsetType(LengthAdjustmentType.NO_CHANGE);
        domainMarker.setLabelFont(
                getFont(dmData.getFont(), dmData.getFontBold(), dmData.getFontItalic(), dmData.getFontSize()));
    }
    plot.addDomainMarker(domainMarker, Layer.BACKGROUND);
}