Example usage for org.jfree.data Range getUpperBound

List of usage examples for org.jfree.data Range getUpperBound

Introduction

In this page you can find the example usage for org.jfree.data Range getUpperBound.

Prototype

public double getUpperBound() 

Source Link

Document

Returns the upper bound for the range.

Usage

From source file:fr.amap.lidar.amapvox.chart.VoxelsToChart.java

public JFreeChart[] getVegetationProfileCharts(LayerReference reference, float maxPAD) {

    boolean inverseRangeAxis;

    inverseRangeAxis = !(reference == LayerReference.FROM_ABOVE_GROUND);

    int quadratNumber = getQuadratNumber(split, length);

    JFreeChart[] charts = new JFreeChart[quadratNumber];

    for (int i = 0; i < quadratNumber; i++) {

        XYSeriesCollection dataset = new XYSeriesCollection();

        for (VoxelFileChart voxelFile : voxelFiles) {

            int[] indices = getIndiceRange(voxelFile, i);

            XYSeries serie = createVegetationProfileSerie(voxelFile.reader, voxelFile.label, indices[0],
                    indices[1], reference, maxPAD);
            dataset.addSeries(serie);//from  w w w  .  j a  v a 2s.c om
        }

        List<XYSeries> series = dataset.getSeries();

        double correlationValue = Double.NaN;

        if (series.size() == 2) {

            XYSeries firstSerie = series.get(0);
            XYSeries secondSerie = series.get(1);

            Map<Double, Double[]> valuesMap = new HashMap<>();

            for (int j = 0; j < firstSerie.getItemCount(); j++) {

                Double[] value = new Double[] { firstSerie.getDataItem(j).getXValue(), Double.NaN };
                valuesMap.put(firstSerie.getDataItem(j).getYValue(), value);
            }

            for (int j = 0; j < secondSerie.getItemCount(); j++) {

                Double[] value = valuesMap.get(Double.valueOf(secondSerie.getDataItem(j).getYValue()));
                if (value == null) {
                    valuesMap.put(secondSerie.getDataItem(j).getYValue(),
                            new Double[] { Double.NaN, secondSerie.getDataItem(j).getXValue() });
                } else if (Double.isNaN(value[1])) {
                    value[1] = secondSerie.getDataItem(j).getXValue();
                    valuesMap.put(secondSerie.getDataItem(j).getYValue(), value);
                }
            }

            List<Double> firstList = new ArrayList<>();
            List<Double> secondList = new ArrayList<>();

            Iterator<Map.Entry<Double, Double[]>> iterator = valuesMap.entrySet().iterator();
            while (iterator.hasNext()) {
                Map.Entry<Double, Double[]> next = iterator.next();
                Double[] value = next.getValue();

                if (!Double.isNaN(value[0]) && !Double.isNaN(value[1])) {
                    firstList.add(value[0]);
                    secondList.add(value[1]);
                }
            }

            double[] firstArray = new double[firstList.size()];
            double[] secondArray = new double[secondList.size()];

            for (int j = 0; j < firstList.size(); j++) {
                firstArray[j] = firstList.get(j);
                secondArray[j] = secondList.get(j);
            }

            PearsonsCorrelation correlation = new PearsonsCorrelation();
            correlationValue = correlation.correlation(firstArray, secondArray);
        }

        charts[i] = createChart("Vegetation profile" + " - quadrat " + (i + 1), dataset, "PAD",
                reference.getLabel());
        if (!Double.isNaN(correlationValue)) {
            charts[i].addSubtitle(
                    new TextTitle("R2 = " + (Math.round(Math.pow(correlationValue, 2) * 100)) / 100.0));
        }

        ((XYPlot) charts[i].getPlot()).getRangeAxis().setInverted(inverseRangeAxis);
    }

    //set quadrats ranges

    double minX = 0;
    double maxX = 0;
    double minY = 0;
    double maxY = 0;

    int id = 0;
    for (JFreeChart chart : charts) {

        XYPlot plot = (XYPlot) chart.getPlot();
        Range rangeOfRangeAxis = plot.getDataRange(plot.getRangeAxis());
        Range rangeOfDomainAxis = plot.getDataRange(plot.getDomainAxis());

        double currentMinY = rangeOfRangeAxis.getLowerBound();
        double currentMaxY = rangeOfRangeAxis.getUpperBound();
        double currentMinX = rangeOfDomainAxis.getLowerBound();
        double currentMaxX = rangeOfDomainAxis.getUpperBound();

        if (id == 0) {
            minX = currentMinX;
            maxX = currentMaxX;
            minY = currentMinY;
            maxY = currentMaxY;
        } else {

            if (currentMinX < minX) {
                minX = currentMinX;
            }
            if (currentMaxX > maxX) {
                maxX = currentMaxX;
            }
            if (currentMinY < minY) {
                minY = currentMinY;
            }
            if (currentMaxY > maxY) {
                maxY = currentMaxY;
            }
        }

        id++;
    }

    for (JFreeChart chart : charts) {

        XYPlot plot = (XYPlot) chart.getPlot();

        plot.getDomainAxis().setRange(minX, maxX);
        plot.getRangeAxis().setRange(minY, maxY);
    }

    return charts;
}

From source file:de.unibayreuth.bayeos.goat.panels.timeseries.JPanelChart.java

public void chartChanged(ChartChangeEvent event) {
    try {//from  w ww.j a  v  a  2 s  . c om
        if (event.getChart() == null) {
            return;
        }

        BoundedRangeModel scrollBarModel = this.chartScrollBar.getModel();
        if (scrollBarModel == null) {
            return;
        }

        boolean chartIsZoomed = false;

        Plot plot = event.getChart().getPlot();
        if (plot instanceof XYPlot) {
            XYPlot hvp = (XYPlot) plot;
            ValueAxis xAxis = hvp.getDomainAxis();
            Range xAxisRange = xAxis.getRange();

            // avoid recursion
            scrollBarModel.removeChangeListener(this);

            int low = (int) (xAxisRange.getLowerBound() * scrollFactor);
            scrollBarModel.setValue(low);
            int ext = (int) (xAxisRange.getUpperBound() * scrollFactor - low);
            scrollBarModel.setExtent(ext);

            // restore
            scrollBarModel.addChangeListener(this);

            // check if zoomed horizontally
            //Range hdr = hvp.getHorizontalDataRange(xAxis);
            Range hdr = hvp.getDataRange(xAxis);

            double len = hdr == null ? 0 : hdr.getLength();
            chartIsZoomed |= xAxisRange.getLength() < len;
        }

        if (!chartIsZoomed && plot instanceof XYPlot) {
            // check if zoomed vertically
            XYPlot vvp = (XYPlot) plot;
            ValueAxis yAxis = vvp.getRangeAxis();
            if (yAxis != null) {
                chartIsZoomed = yAxis.getLowerBound() > yMin || yAxis.getUpperBound() < yMax;
            }
        }

        // enable "zoom-out-buttons" if chart is zoomed
        // otherwise disable them
        chartPanButton.setEnabled(chartIsZoomed);
        chartZoomOutButton.setEnabled(chartIsZoomed);
        chartFitButton.setEnabled(chartIsZoomed);
        chartScrollBar.setEnabled(chartIsZoomed);
        if (!chartIsZoomed) {
            setPanMode(false);
            chartZoomButton.setSelected(true);
        }
    } catch (Exception e) {
        MsgBox.error(e.getMessage());
    }
}

From source file:com.rapidminer.gui.plotter.charts.HistogramChart.java

private void setRange(ValueAxis axis) {
    Range range = null;
    for (int c = 0; c < this.dataTable.getNumberOfColumns(); c++) {
        if (this.columns[c]) {
            if (range == null) {
                range = getRangeForDimension(c);
            } else {
                Range newRange = getRangeForDimension(c);
                if (newRange != null) {
                    range = new Range(MathFunctions.robustMin(range.getLowerBound(), newRange.getLowerBound()),
                            MathFunctions.robustMax(range.getUpperBound(), newRange.getUpperBound()));
                }/*from  w  ww . ja  v  a  2s.  c  om*/
            }
        }
    }
    if (range != null) {
        axis.setRange(range);
    } else {
        axis.setAutoRange(true);
    }
}

From source file:org.tsho.dmc2.core.chart.LyapunovRenderer.java

public void initializeVsParameter(VariableDoubles parameters, VariableDoubles initialValues, String parLabel,
        Range parameterRange, int iterations) {

    this.parameters.putAll(parameters);
    this.initialPoint.putAll(initialValues);
    this.firstParLabel = parLabel;
    this.lower = parameterRange.getLowerBound();
    this.upper = parameterRange.getUpperBound();
    this.iterations = iterations;

    this.type = TYPE_VSPAR;
}

From source file:net.sf.fspdfs.chartthemes.spring.AegeanChartTheme.java

/**
 *
 *//*from   w  w w. ja  va 2  s .co  m*/
protected JFreeChart createThermometerChart() throws JRException {
    JRThermometerPlot jrPlot = (JRThermometerPlot) getPlot();

    // Create the plot that will hold the thermometer.
    ThermometerPlot chartPlot = new ThermometerPlot((ValueDataset) getDataset());
    // Build a chart around this plot
    JFreeChart jfreeChart = new JFreeChart(chartPlot);

    // Set the generic options
    configureChart(jfreeChart, getPlot());
    jfreeChart.setBackgroundPaint(ChartThemesConstants.TRANSPARENT_PAINT);
    jfreeChart.setBorderVisible(false);

    Range range = convertRange(jrPlot.getDataRange());

    if (range != null) {
        // Set the boundary of the thermomoter
        chartPlot.setLowerBound(range.getLowerBound());
        chartPlot.setUpperBound(range.getUpperBound());
    }
    chartPlot.setGap(0);

    // Units can only be Fahrenheit, Celsius or none, so turn off for now.
    chartPlot.setUnits(ThermometerPlot.UNITS_NONE);

    // Set the color of the mercury.  Only used when the value is outside of
    // any defined ranges.
    List seriesPaints = (List) getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.SERIES_COLORS);

    Paint paint = (jrPlot.getMercuryColor() != null ? (Paint) jrPlot.getMercuryColor()
            : (Paint) seriesPaints.get(0));
    chartPlot.setMercuryPaint(paint);

    chartPlot.setThermometerPaint(THERMOMETER_COLOR);
    chartPlot.setThermometerStroke(new BasicStroke(2f));
    chartPlot.setOutlineVisible(false);
    chartPlot.setValueFont(chartPlot.getValueFont().deriveFont(Font.BOLD));

    // Set the formatting of the value display
    JRValueDisplay display = jrPlot.getValueDisplay();
    if (display != null) {
        if (display.getColor() != null) {
            chartPlot.setValuePaint(display.getColor());
        }
        if (display.getMask() != null) {
            chartPlot.setValueFormat(new DecimalFormat(display.getMask()));
        }
        if (display.getFont() != null) {
            //            chartPlot.setValueFont(JRFontUtil.getAwtFont(display.getFont()).deriveFont(Font.BOLD));
        }
    }

    // Set the location of where the value is displayed
    // Set the location of where the value is displayed
    ValueLocationEnum valueLocation = jrPlot.getValueLocationValue();
    switch (valueLocation) {
    case NONE:
        chartPlot.setValueLocation(ThermometerPlot.NONE);
        break;
    case LEFT:
        chartPlot.setValueLocation(ThermometerPlot.LEFT);
        break;
    case RIGHT:
        chartPlot.setValueLocation(ThermometerPlot.RIGHT);
        break;
    case BULB:
    default:
        chartPlot.setValueLocation(ThermometerPlot.BULB);
        break;
    }

    // Define the three ranges
    range = convertRange(jrPlot.getLowRange());
    if (range != null) {
        chartPlot.setSubrangeInfo(2, range.getLowerBound(), range.getUpperBound());
    }

    range = convertRange(jrPlot.getMediumRange());
    if (range != null) {
        chartPlot.setSubrangeInfo(1, range.getLowerBound(), range.getUpperBound());
    }

    range = convertRange(jrPlot.getHighRange());
    if (range != null) {
        chartPlot.setSubrangeInfo(0, range.getLowerBound(), range.getUpperBound());
    }

    return jfreeChart;
}

From source file:org.tsho.dmc2.core.chart.LyapunovRenderer.java

public void initializeVsParameter(VariableDoubles parameters, VariableDoubles initialValues, String parLabel,
        Range parameterRange, double timePeriod, double stepSize) {

    this.parameters.putAll(parameters);
    this.initialPoint.putAll(initialValues);
    this.firstParLabel = parLabel;
    this.lower = parameterRange.getLowerBound();
    this.upper = parameterRange.getUpperBound();
    this.timePeriod = timePeriod;
    this.stepSize = stepSize;

    this.type = TYPE_VSPAR;
}

From source file:net.sf.jasperreports.chartthemes.spring.AegeanChartTheme.java

@Override
protected JFreeChart createDialChart() throws JRException {

    JRMeterPlot jrPlot = (JRMeterPlot) getPlot();

    // get data for diagrams
    DialPlot dialPlot = new DialPlot();
    if (getDataset() != null) {
        dialPlot.setDataset((ValueDataset) getDataset());
    }//  ww  w  .  j a  v  a  2s.co m
    StandardDialFrame dialFrame = new StandardDialFrame();
    dialFrame.setForegroundPaint(Color.BLACK);
    dialFrame.setBackgroundPaint(Color.BLACK);
    dialFrame.setStroke(new BasicStroke(1f));
    dialPlot.setDialFrame(dialFrame);

    DialBackground db = new DialBackground(ChartThemesConstants.TRANSPARENT_PAINT);
    dialPlot.setBackground(db);
    ScaledDialScale scale = null;
    int dialUnitScale = 1;
    Range range = convertRange(jrPlot.getDataRange());
    if (range != null) {
        double bound = Math.max(Math.abs(range.getUpperBound()), Math.abs(range.getLowerBound()));
        dialUnitScale = ChartThemesUtilities.getScale(bound);

        double lowerBound = ChartThemesUtilities.getTruncatedValue(range.getLowerBound(), dialUnitScale);
        double upperBound = ChartThemesUtilities.getTruncatedValue(range.getUpperBound(), dialUnitScale);
        int tickCount = jrPlot.getTickCount() != null && jrPlot.getTickCount() > 1 ? jrPlot.getTickCount() : 7;
        scale = new ScaledDialScale(lowerBound, upperBound, 210, -240,
                (upperBound - lowerBound) / (tickCount - 1), 1);
        if ((lowerBound == (int) lowerBound && upperBound == (int) upperBound
                && scale.getMajorTickIncrement() == (int) scale.getMajorTickIncrement()) || dialUnitScale > 1) {
            scale.setTickLabelFormatter(
                    new DecimalFormat("#,##0", DecimalFormatSymbols.getInstance(getLocale())));
        } else if (dialUnitScale == 1) {

            scale.setTickLabelFormatter(
                    new DecimalFormat("#,##0.0", DecimalFormatSymbols.getInstance(getLocale())));
        } else if (dialUnitScale <= 0) {
            scale.setTickLabelFormatter(
                    new DecimalFormat("#,##0.00", DecimalFormatSymbols.getInstance(getLocale())));
        } else {
            // localizing the default tick label formatter
            scale.setTickLabelFormatter(
                    new DecimalFormat("0.0", DecimalFormatSymbols.getInstance(getLocale())));
        }
    } else {
        scale = new ScaledDialScale();

        // localizing the default tick label formatter
        scale.setTickLabelFormatter(new DecimalFormat("0.0", DecimalFormatSymbols.getInstance(getLocale())));
    }
    scale.setTickRadius(0.9);
    scale.setTickLabelOffset(0.16);
    JRFont tickLabelFont = jrPlot.getTickLabelFont();
    Integer defaultBaseFontSize = (Integer) getDefaultValue(defaultChartPropertiesMap,
            ChartThemesConstants.BASEFONT_SIZE);
    Font themeTickLabelFont = getFont(
            (JRFont) getDefaultValue(defaultPlotPropertiesMap, ChartThemesConstants.PLOT_TICK_LABEL_FONT),
            tickLabelFont, defaultBaseFontSize);
    scale.setTickLabelFont(themeTickLabelFont);
    scale.setMajorTickStroke(new BasicStroke(1f));
    scale.setMinorTickStroke(new BasicStroke(0.7f));
    scale.setMajorTickPaint(Color.BLACK);
    scale.setMinorTickPaint(Color.BLACK);
    scale.setTickLabelsVisible(true);
    scale.setFirstTickLabelVisible(true);

    dialPlot.addScale(0, scale);

    List<JRMeterInterval> intervals = jrPlot.getIntervals();
    if (intervals != null && intervals.size() > 0) {
        int size = Math.min(3, intervals.size());

        int colorStep = 0;
        if (size > 3)
            colorStep = 255 / (size - 3);

        for (int i = 0; i < size; i++) {
            JRMeterInterval interval = intervals.get(i);
            Range intervalRange = convertRange(interval.getDataRange());
            double intervalLowerBound = ChartThemesUtilities.getTruncatedValue(intervalRange.getLowerBound(),
                    dialUnitScale);
            double intervalUpperBound = ChartThemesUtilities.getTruncatedValue(intervalRange.getUpperBound(),
                    dialUnitScale);

            Color color = i < 3 ? (Color) ChartThemesConstants.AEGEAN_INTERVAL_COLORS.get(i)
                    : new Color(255 - colorStep * (i - 3), 0 + colorStep * (i - 3), 0);
            ScaledDialRange dialRange = new ScaledDialRange(intervalLowerBound, intervalUpperBound,
                    interval.getBackgroundColor() == null ? color : interval.getBackgroundColor(), 15f);
            dialRange.setInnerRadius(0.5);
            dialRange.setOuterRadius(0.5);
            dialPlot.addLayer(dialRange);
        }

    }
    JRValueDisplay display = jrPlot.getValueDisplay();

    String displayVisibility = display != null && getChart().hasProperties()
            ? getChart().getPropertiesMap().getProperty(DefaultChartTheme.PROPERTY_DIAL_VALUE_DISPLAY_VISIBLE)
            : "false";

    if (Boolean.valueOf(displayVisibility)) {
        ScaledDialValueIndicator dvi = new ScaledDialValueIndicator(0, dialUnitScale);
        dvi.setBackgroundPaint(ChartThemesConstants.TRANSPARENT_PAINT);
        //         dvi.setFont(JRFontUtil.getAwtFont(jrFont).deriveFont(10f).deriveFont(Font.BOLD));
        dvi.setOutlinePaint(ChartThemesConstants.TRANSPARENT_PAINT);
        dvi.setPaint(Color.WHITE);

        String pattern = display.getMask() != null ? display.getMask() : "#,##0.####";
        if (pattern != null)
            dvi.setNumberFormat(new DecimalFormat(pattern, DecimalFormatSymbols.getInstance(getLocale())));
        dvi.setRadius(0.15);
        dvi.setValueAnchor(RectangleAnchor.CENTER);
        dvi.setTextAnchor(TextAnchor.CENTER);
        //dvi.setTemplateValue(Double.valueOf(getDialTickValue(dialPlot.getValue(0),dialUnitScale)));
        dialPlot.addLayer(dvi);
    }

    String label = getChart().hasProperties()
            ? getChart().getPropertiesMap().getProperty(DefaultChartTheme.PROPERTY_DIAL_LABEL)
            : null;

    if (label != null) {
        if (dialUnitScale < 0)
            label = new MessageFormat(label)
                    .format(new Object[] { String.valueOf(Math.pow(10, dialUnitScale)) });
        else if (dialUnitScale < 3)
            label = new MessageFormat(label).format(new Object[] { "1" });
        else
            label = new MessageFormat(label)
                    .format(new Object[] { String.valueOf((int) Math.pow(10, dialUnitScale - 2)) });

        JRFont displayFont = jrPlot.getValueDisplay().getFont();
        Font themeDisplayFont = getFont(
                (JRFont) getDefaultValue(defaultPlotPropertiesMap, ChartThemesConstants.PLOT_DISPLAY_FONT),
                displayFont, defaultBaseFontSize);

        String[] textLines = label.split("\\n");
        for (int i = 0; i < textLines.length; i++) {
            DialTextAnnotation dialAnnotation = new DialTextAnnotation(textLines[i]);
            dialAnnotation.setFont(themeDisplayFont);
            dialAnnotation.setPaint(Color.BLACK);
            dialAnnotation.setRadius(Math.sin(Math.PI / 6.0) + i / 10.0);
            dialAnnotation.setAnchor(TextAnchor.CENTER);
            dialPlot.addLayer(dialAnnotation);
        }
    }

    DialPointer needle = new ScaledDialPointer(dialUnitScale, 0.047);

    needle.setVisible(true);
    needle.setRadius(0.7);
    dialPlot.addLayer(needle);

    DialCap cap = new DialCap();
    cap.setRadius(0.05);
    cap.setFillPaint(Color.BLACK);
    cap.setOutlinePaint(ChartThemesConstants.TRANSPARENT_PAINT);
    dialPlot.setCap(cap);

    JFreeChart jfreeChart = new JFreeChart(evaluateTextExpression(getChart().getTitleExpression()), null,
            dialPlot, getChart().getShowLegend() == null ? false : getChart().getShowLegend());

    // Set all the generic options
    configureChart(jfreeChart, getPlot());

    jfreeChart.setBackgroundPaint(ChartThemesConstants.TRANSPARENT_PAINT);
    jfreeChart.setBorderVisible(false);

    return jfreeChart;

}

From source file:net.sf.fspdfs.chartthemes.spring.AegeanChartTheme.java

/**
 *
 *///w w w. j a va 2s.  co  m
protected JFreeChart createMeterChart() throws JRException {
    // Start by creating the plot that will hold the meter
    MeterPlot chartPlot = new MeterPlot((ValueDataset) getDataset());
    JRMeterPlot jrPlot = (JRMeterPlot) getPlot();

    // Set the shape
    MeterShapeEnum shape = jrPlot.getShapeValue() == null ? MeterShapeEnum.DIAL : jrPlot.getShapeValue();

    switch (shape) {
    case CHORD:
        chartPlot.setDialShape(DialShape.CHORD);
        break;
    case PIE:
        chartPlot.setDialShape(DialShape.PIE);
        break;
    case CIRCLE:
        chartPlot.setDialShape(DialShape.CIRCLE);
        break;
    case DIAL:
    default:
        return createDialChart();
    }

    chartPlot.setDialOutlinePaint(Color.BLACK);
    int meterAngle = jrPlot.getMeterAngleInteger() == null ? 180 : jrPlot.getMeterAngleInteger().intValue();
    // Set the size of the meter
    chartPlot.setMeterAngle(meterAngle);

    // Set the spacing between ticks.  I hate the name "tickSize" since to me it
    // implies I am changing the size of the tick, not the spacing between them.
    double tickInterval = jrPlot.getTickIntervalDouble() == null ? 10.0
            : jrPlot.getTickIntervalDouble().doubleValue();
    chartPlot.setTickSize(tickInterval);

    JRFont tickLabelFont = jrPlot.getTickLabelFont();
    Integer defaultBaseFontSize = (Integer) getDefaultValue(defaultChartPropertiesMap,
            ChartThemesConstants.BASEFONT_SIZE);
    Font themeTickLabelFont = getFont(
            (JRFont) getDefaultValue(defaultPlotPropertiesMap, ChartThemesConstants.PLOT_TICK_LABEL_FONT),
            tickLabelFont, defaultBaseFontSize);
    chartPlot.setTickLabelFont(themeTickLabelFont);

    Color tickColor = jrPlot.getTickColor() == null ? Color.BLACK : jrPlot.getTickColor();
    chartPlot.setTickPaint(tickColor);
    int dialUnitScale = 1;
    Range range = convertRange(jrPlot.getDataRange());
    if (range != null) {
        // Set the meter's range
        chartPlot.setRange(range);
        double bound = Math.max(Math.abs(range.getUpperBound()), Math.abs(range.getLowerBound()));
        dialUnitScale = ChartThemesUtilities.getScale(bound);
        if ((range.getLowerBound() == (int) range.getLowerBound()
                && range.getUpperBound() == (int) range.getUpperBound() && tickInterval == (int) tickInterval)
                || dialUnitScale > 1) {
            chartPlot.setTickLabelFormat(new DecimalFormat("#,##0"));
        } else if (dialUnitScale == 1) {
            chartPlot.setTickLabelFormat(new DecimalFormat("#,##0.0"));
        } else if (dialUnitScale <= 0) {
            chartPlot.setTickLabelFormat(new DecimalFormat("#,##0.00"));
        }
    }
    chartPlot.setTickLabelsVisible(true);

    // Set all the colors we support
    Paint backgroundPaint = jrPlot.getOwnBackcolor() == null ? ChartThemesConstants.TRANSPARENT_PAINT
            : jrPlot.getOwnBackcolor();
    chartPlot.setBackgroundPaint(backgroundPaint);

    GradientPaint gp = new GradientPaint(new Point(), Color.LIGHT_GRAY, new Point(), Color.BLACK, false);

    if (jrPlot.getMeterBackgroundColor() != null) {
        chartPlot.setDialBackgroundPaint(jrPlot.getMeterBackgroundColor());
    } else {
        chartPlot.setDialBackgroundPaint(gp);
    }
    //chartPlot.setForegroundAlpha(1f);
    Paint needlePaint = jrPlot.getNeedleColor() == null ? new Color(191, 48, 0) : jrPlot.getNeedleColor();
    chartPlot.setNeedlePaint(needlePaint);

    JRValueDisplay display = jrPlot.getValueDisplay();
    if (display != null) {
        Color valueColor = display.getColor() == null ? Color.BLACK : display.getColor();
        chartPlot.setValuePaint(valueColor);
        String pattern = display.getMask() != null ? display.getMask() : "#,##0.####";
        if (pattern != null)
            chartPlot.setTickLabelFormat(new DecimalFormat(pattern));
        JRFont displayFont = display.getFont();
        Font themeDisplayFont = getFont(
                (JRFont) getDefaultValue(defaultPlotPropertiesMap, ChartThemesConstants.PLOT_DISPLAY_FONT),
                displayFont, defaultBaseFontSize);

        if (themeDisplayFont != null) {
            chartPlot.setValueFont(themeDisplayFont);
        }
    }
    String label = getChart().hasProperties()
            ? getChart().getPropertiesMap().getProperty(DefaultChartTheme.PROPERTY_DIAL_LABEL)
            : null;

    if (label != null) {
        if (dialUnitScale < 0)
            label = new MessageFormat(label)
                    .format(new Object[] { String.valueOf(Math.pow(10, dialUnitScale)) });
        else if (dialUnitScale < 3)
            label = new MessageFormat(label).format(new Object[] { "1" });
        else
            label = new MessageFormat(label)
                    .format(new Object[] { String.valueOf((int) Math.pow(10, dialUnitScale - 2)) });

    }

    // Set the units - this is just a string that will be shown next to the
    // value
    String units = jrPlot.getUnits() == null ? label : jrPlot.getUnits();
    if (units != null && units.length() > 0)
        chartPlot.setUnits(units);

    chartPlot.setTickPaint(Color.BLACK);

    // Now define all of the intervals, setting their range and color
    List intervals = jrPlot.getIntervals();
    if (intervals != null && intervals.size() > 0) {
        int size = Math.min(3, intervals.size());

        int colorStep = 0;
        if (size > 3)
            colorStep = 255 / (size - 3);

        for (int i = 0; i < size; i++) {
            JRMeterInterval interval = (JRMeterInterval) intervals.get(i);
            Color color = i < 3 ? (Color) ChartThemesConstants.AEGEAN_INTERVAL_COLORS.get(i)
                    : new Color(255 - colorStep * (i - 3), 0 + colorStep * (i - 3), 0);

            interval.setBackgroundColor(color);
            interval.setAlpha(new Double(1.0));
            chartPlot.addInterval(convertInterval(interval));
        }
    }

    // Actually create the chart around the plot
    JFreeChart jfreeChart = new JFreeChart((String) evaluateExpression(getChart().getTitleExpression()), null,
            chartPlot, getChart().getShowLegend() == null ? false : getChart().getShowLegend().booleanValue());

    // Set all the generic options
    configureChart(jfreeChart, getPlot());

    return jfreeChart;

}

From source file:com.rapidminer.gui.new_plotter.gui.dialog.ManageZoomDialog.java

/**
 * Updates the x and y axes range values.
 *///from w ww  . ja v  a 2 s  . c o m
private void updateValueRange() {
    PlotConfiguration plotConfig = engine.getPlotInstance().getMasterPlotConfiguration();
    Plot plot = engine.getChartPanel().getChart().getPlot();
    int index = rangeAxisSelectionCombobox.getSelectedIndex();
    if (index == -1) {
        index = 0;
    }

    // should be always true..
    if (plotConfig.getRangeAxisConfigs().size() > index) {
        RangeAxisConfig config = plotConfig.getRangeAxisConfigs().get(index);
        double valueLowerBound;
        double valueUpperBound;
        if (plot instanceof XYPlot) {
            ValueAxis rangeAxis = ((XYPlot) plot).getRangeAxis(index);
            if (rangeAxis != null) {
                // this is the actual visible axis
                Range range = rangeAxis.getRange();
                valueLowerBound = range.getLowerBound();
                valueUpperBound = range.getUpperBound();
            } else {
                valueLowerBound = engine.getPlotInstance().getPlotData().getRangeAxisData(config)
                        .getLowerViewBound();
                valueUpperBound = engine.getPlotInstance().getPlotData().getRangeAxisData(config)
                        .getUpperViewBound();
            }
        } else if (plot instanceof CategoryPlot) {
            ValueAxis rangeAxis = ((CategoryPlot) plot).getRangeAxis(index);
            if (rangeAxis != null) {
                Range range = rangeAxis.getRange();
                valueLowerBound = range.getLowerBound();
                valueUpperBound = range.getUpperBound();
            } else {
                valueLowerBound = engine.getPlotInstance().getPlotData().getRangeAxisData(config)
                        .getLowerViewBound();
                valueUpperBound = engine.getPlotInstance().getPlotData().getRangeAxisData(config)
                        .getUpperViewBound();
            }
        } else {
            // data bounds, a bit smaller than the visible axis
            valueLowerBound = engine.getPlotInstance().getPlotData().getRangeAxisData(config)
                    .getLowerViewBound();
            valueUpperBound = engine.getPlotInstance().getPlotData().getRangeAxisData(config)
                    .getUpperViewBound();
        }
        valueRangeLowerBoundField.setText(String.valueOf(valueLowerBound));
        valueRangeUpperBoundField.setText(String.valueOf(valueUpperBound));
    }
}

From source file:com.rapidminer.gui.new_plotter.gui.dialog.ManageZoomDialog.java

/**
 * Sets the current {@link PlotConfiguration} for this dialog.
 * //from   w w w  .  ja va 2s.c o m
 * @param plotConfig
 */
private void setPlotConfiguration(PlotConfiguration plotConfig) {
    if (plotConfig == null) {
        throw new IllegalArgumentException("plotConfig must not be null!");
    }

    Vector<RangeAxisConfig> rangeConfigsVector = new Vector<RangeAxisConfig>();
    String selectedItem = String.valueOf(rangeAxisSelectionCombobox.getSelectedItem());
    for (RangeAxisConfig config : plotConfig.getRangeAxisConfigs()) {
        rangeConfigsVector.add(config);
    }
    rangeAxisSelectionCombobox.setModel(new DefaultComboBoxModel(rangeConfigsVector));

    // reselect the previously selected RangeAxisConfig (if it is still there)
    if (selectedItem != null) {
        for (int i = 0; i < rangeAxisSelectionCombobox.getItemCount(); i++) {
            if (String.valueOf(rangeAxisSelectionCombobox.getItemAt(i)).equals(selectedItem)) {
                rangeAxisSelectionCombobox.setSelectedIndex(i);
                break;
            }
        }
    }

    // fill in values of current chart
    Plot plot = engine.getChartPanel().getChart().getPlot();
    double domainLowerBound = 0;
    double domainUpperBound = 0;
    boolean disableDomainZoom = false;
    NumericalValueRange effectiveRange = engine.getPlotInstance().getPlotData().getDomainConfigManagerData()
            .getEffectiveRange();
    if (plot instanceof XYPlot) {
        ValueAxis domainAxis = ((XYPlot) plot).getDomainAxis();
        if (domainAxis != null) {
            Range range = domainAxis.getRange();
            domainLowerBound = range.getLowerBound();
            domainUpperBound = range.getUpperBound();
        } else {
            if (effectiveRange != null) {
                domainLowerBound = effectiveRange.getLowerBound();
                domainUpperBound = effectiveRange.getUpperBound();
            } else {
                disableDomainZoom = true;
            }
        }
    } else {
        if (effectiveRange != null) {
            domainLowerBound = effectiveRange.getLowerBound();
            domainUpperBound = effectiveRange.getUpperBound();
        } else {
            disableDomainZoom = true;
        }
    }
    domainRangeLowerBoundField.setText(String.valueOf(domainLowerBound));
    domainRangeUpperBoundField.setText(String.valueOf(domainUpperBound));

    // happens on nominal domain axis
    domainRangeLowerBoundField.setEnabled(!disableDomainZoom);
    domainRangeUpperBoundField.setEnabled(!disableDomainZoom);

    updateValueRange();
    updateColorValues();
}