Example usage for org.jfree.chart.axis ValueAxis getRange

List of usage examples for org.jfree.chart.axis ValueAxis getRange

Introduction

In this page you can find the example usage for org.jfree.chart.axis ValueAxis getRange.

Prototype

public Range getRange() 

Source Link

Document

Returns the range for the axis.

Usage

From source file:org.jfree.eastwood.GXYPlot.java

/**
 * Draws the gridlines for the plot's primary range axis, if they are
 * visible./*www . j av  a2 s.  c o  m*/
 *
 * @param g2  the graphics device.
 * @param area  the data area.
 * @param ticks  the ticks.
 *
 * @see #drawDomainGridlines(Graphics2D, Rectangle2D, List)
 */
protected void drawRangeGridlines(Graphics2D g2, Rectangle2D area, List ticks) {

    // no renderer, no gridlines...
    if (getRenderer() == null) {
        return;
    }

    // draw the range grid lines, if any...
    if (isRangeGridlinesVisible() && this.yAxisStepSize > 0) {
        Stroke gridStroke = getRangeGridlineStroke();
        Paint gridPaint = getRangeGridlinePaint();
        ValueAxis axis = getRangeAxis();
        if (axis != null) {
            double lower = axis.getRange().getLowerBound();
            double upper = axis.getRange().getUpperBound();
            double y = lower;
            while (y <= upper) {
                Paint paint = gridPaint;
                if ((y == lower || y == upper) && gridPaint instanceof Color) {
                    Color c = (Color) gridPaint;
                    paint = new Color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha() / 3);
                }
                getRenderer().drawRangeLine(g2, this, getRangeAxis(), area, y, paint, gridStroke);
                y += this.yAxisStepSize;
            }
        }
    }
}

From source file:org.jfree.eastwood.GXYPlot.java

/**
 * Draws the gridlines for the plot, if they are visible.
 *
 * @param g2  the graphics device./*from w ww .j av  a2s  . c  om*/
 * @param dataArea  the data area.
 * @param ticks  the ticks.
 *
 * @see #drawRangeGridlines(Graphics2D, Rectangle2D, List)
 */
protected void drawDomainGridlines(Graphics2D g2, Rectangle2D dataArea, List ticks) {

    // no renderer, no gridlines...
    if (getRenderer() == null) {
        return;
    }

    // draw the domain grid lines, if any...
    if (isDomainGridlinesVisible() && this.xAxisStepSize > 0) {
        Stroke gridStroke = getDomainGridlineStroke();
        Paint gridPaint = getDomainGridlinePaint();
        if ((gridStroke != null) && (gridPaint != null)) {
            ValueAxis axis = getDomainAxis();
            if (axis != null) {
                double lower = axis.getRange().getLowerBound();
                double upper = axis.getRange().getUpperBound();
                double x = lower;
                while (x <= upper) {
                    Paint paint = gridPaint;
                    if ((x == lower || x == upper) && gridPaint instanceof Color) {
                        Color c = (Color) gridPaint;
                        paint = new Color(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha() / 3);
                    }
                    try {
                        setDomainGridlinePaint(paint);
                        getRenderer().drawDomainGridLine(g2, this, getDomainAxis(), dataArea, x);
                    } finally {
                        setDomainGridlinePaint(gridPaint);
                    }
                    x += this.xAxisStepSize;
                }
            }
        }
    }
}

From source file:net.sf.maltcms.chromaui.foldChangeViewer.tasks.FoldChangeViewLoaderWorker.java

@Override
public void run() {
    ProgressHandle handle = ProgressHandleFactory.createHandle("Creating fold change plot");
    try {//from  w  w w .  ja v a2 s  .c  o m
        handle.setDisplayName("Loading fold change elements");//+new File(this.files.getResourceLocation()).getName());
        handle.start(5);
        handle.progress("Reading settings", 1);
        RTUnit rtAxisUnit = RTUnit.valueOf(sp.getProperty("rtAxisUnit", "SECONDS"));
        handle.progress("Retrieving data", 2);
        XYShapeRenderer renderer = new XYShapeRenderer() {

            @Override
            protected Paint getPaint(XYDataset dataset, int series, int item) {
                double x = dataset.getXValue(series, item);
                double y = dataset.getYValue(series, item);
                if (Math.abs(x) < 1.0) {
                    Paint p = super.getPaint(dataset, series, item);
                    if (p instanceof Color) {
                        Color color = (Color) p;
                        float[] values = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(),
                                new float[3]);
                        Color hsb = new Color(
                                Color.HSBtoRGB(values[0], (float) Math.max(0.1, values[1] - 0.9), values[2]));
                        return new Color(hsb.getRed(), hsb.getGreen(), hsb.getBlue(), 64);
                    }
                }
                return super.getPaint(dataset, series, item);
            }

        };
        renderer.setAutoPopulateSeriesFillPaint(true);
        renderer.setAutoPopulateSeriesOutlinePaint(true);
        renderer.setBaseCreateEntities(true);
        handle.progress("Building plot", 3);
        XYPlot plot = new XYPlot(dataset, new NumberAxis("log2 fold change"), new NumberAxis("-log10 p-value"),
                renderer);
        BasicStroke dashed = new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 5.0f,
                new float[] { 5.0f }, 0.0f);
        ValueMarker marker = new ValueMarker(-Math.log10(0.05), Color.RED, dashed);
        marker.setLabel("p-value=0.05");
        marker.setLabelAnchor(RectangleAnchor.BOTTOM_LEFT);
        marker.setLabelOffset(new RectangleInsets(UnitType.ABSOLUTE, 0, 50, 10, 0));
        marker.setLabelOffsetType(LengthAdjustmentType.EXPAND);
        marker.setLabelPaint(Color.LIGHT_GRAY);
        plot.addRangeMarker(marker);

        Font font1 = new Font("SansSerif", Font.PLAIN, 12);
        SelectionAwareXYTooltipGenerator tooltipGenerator = cvtc.getLookup()
                .lookup(SelectionAwareXYTooltipGenerator.class);
        if (tooltipGenerator == null) {
            tooltipGenerator = new SelectionAwareXYTooltipGenerator(tooltipGenerator) {
                @Override
                public String createSelectionAwareTooltip(XYDataset xyd, int i, int i1) {
                    FoldChangeDataset dataset = (FoldChangeDataset) xyd;
                    FoldChangeElement fce = dataset.getNamedElementProvider().get(i).get(i1);
                    StringBuilder sb = new StringBuilder();
                    sb.append("<html>");
                    sb.append(fce.getPeakGroup().getMajorityDisplayName());
                    sb.append("<br>");
                    sb.append("log2 fold change=");
                    sb.append(fce.getFoldChange());
                    sb.append("<br>");
                    sb.append("p-value=");
                    sb.append(Math.pow(10, -fce.getPvalue()));
                    sb.append("</html>");
                    return sb.toString();
                }
            };
        }
        tooltipGenerator.setXYToolTipGenerator(new XYToolTipGenerator() {
            @Override
            public String generateToolTip(XYDataset xyd, int i, int i1) {
                Comparable comp = xyd.getSeriesKey(i);
                double x = xyd.getXValue(i, i1);
                double y = xyd.getYValue(i, i1);
                StringBuilder sb = new StringBuilder();
                sb.append("<html>");
                sb.append(comp);
                sb.append("<br>");
                sb.append("log2 fold change=");
                sb.append(x);
                sb.append("<br>");
                sb.append("p-value=");
                sb.append(sb.append(Math.pow(10, -y)));
                sb.append("</html>");
                return sb.toString();
            }
        });
        plot.getRenderer().setBaseToolTipGenerator(tooltipGenerator);
        handle.progress("Configuring plot", 4);
        configurePlot(plot, rtAxisUnit);
        final FoldChangeViewPanel cmhp = cvtc.getLookup().lookup(FoldChangeViewPanel.class);
        Range domainRange = null;
        Range valueRange = null;
        if (cmhp != null) {
            XYPlot xyplot = cmhp.getPlot();
            if (xyplot != null) {
                ValueAxis domain = xyplot.getDomainAxis();
                domainRange = domain.getRange();
                ValueAxis range = xyplot.getRangeAxis();
                valueRange = range.getRange();
            }
        }

        if (domainRange != null) {
            plot.getDomainAxis().setRange(domainRange);
        }
        if (valueRange != null) {
            Logger.getLogger(getClass().getName()).info("Setting previous value range!");
        }
        handle.progress("Adding plot to panel", 5);
        final XYPlot targetPlot = plot;
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                final FoldChangeViewPanel cmhp = cvtc.getLookup().lookup(FoldChangeViewPanel.class);
                cmhp.setPlot(targetPlot);
                cvtc.requestActive();
            }
        });
    } finally {
        handle.finish();
    }
}

From source file:net.sf.maltcms.chromaui.chromatogram1Dviewer.tasks.ChromatogramViewLoaderWorker.java

@Override
public void run() {
    ProgressHandle handle = ProgressHandleFactory.createHandle("Creating 1D Chromatogram plot");
    try {// w w  w .j  av  a2  s.  c  o  m
        handle.setDisplayName("Loading " + files.size() + " chromatograms");//+new File(this.files.getResourceLocation()).getName());
        handle.start(5);
        Logger.getLogger(getClass().getName()).info("Running Chromatogram open action!");

        Logger.getLogger(getClass().getName()).info("Storing current viewport!");

        Logger.getLogger(getClass().getName()).info("Retrieving settings from panel");
        handle.progress("Reading settings", 1);
        double massResolution = Double.parseDouble(sp.getProperty("massResolution", "1.0"));
        double[] masses = null;
        String[] massesStrings = (sp.getProperty("selectedMasses", "73.0 147.0")).trim().split(" ");
        masses = new double[massesStrings.length];
        for (int i = 0; i < massesStrings.length; i++) {
            masses[i] = Double.parseDouble(massesStrings[i]);
        }
        String plotMode = sp.getProperty("plotMode", "TIC");
        String plotType = sp.getProperty("plotType", "SIDE");
        RTUnit rtAxisUnit = RTUnit.valueOf(sp.getProperty("rtAxisUnit", "SECONDS"));

        //        boolean autoRange = Boolean.parseBoolean(sp.getProperty("autoRange","true"));
        //        if(autoRange) {
        //            
        //        }
        //        
        //        double minRT = Double.parseDouble(sp.getProperty("timeRangeMin"));
        //        double maxRT = Double.parseDouble(sp.getProperty("timeRangeMax"));
        //        MinMax mm = MAMath.getMinMax(file.getScanAcquisitionTime());
        //        
        handle.progress("Retrieving peaks", 2);
        Chromatogram1DChartProvider c1p = new Chromatogram1DChartProvider();
        c1p.setRenderer(settingsPanel.getRenderer());

        //            c1p.setPeakData(filePeakMap);
        //        c1p.setScanRange(file.getIndexFor(Math.max(mm.min, minRT)),file.getIndexFor(Math.min(mm.max, maxRT)));
        XYPlot plot = null;
        Logger.getLogger(getClass().getName()).log(Level.INFO, "Plot mode is {0}", plotMode);
        SelectionAwareXYTooltipGenerator tooltipGenerator = cvtc.getLookup()
                .lookup(SelectionAwareXYTooltipGenerator.class);
        if (tooltipGenerator == null) {
            tooltipGenerator = new SelectionAwareXYTooltipGenerator(tooltipGenerator) {
                @Override
                public String createSelectionAwareTooltip(XYDataset xyd, int i, int i1) {
                    return null;
                }
            };
        }
        handle.progress("Building plot", 3);
        switch (plotMode) {
        case "TIC":
            Logger.getLogger(getClass().getName()).info("Loading TIC");
            switch (plotType) {
            case "SIDE":
                plot = c1p.provide1DPlot(dataset, tooltipGenerator);
                break;
            case "TOP":
                plot = c1p.provide1DCoPlot(new TopViewDataset<>(dataset), tooltipGenerator, dataset.getMinY(),
                        dataset.getMaxY(), true);
                break;
            }
            break;
        case "EIC-SUM": {
            Logger.getLogger(getClass().getName()).info("Loading EIC-SUM");
            EIC1DDataset ds = new EIC1DDataset(dataset.getNamedElementProvider(), masses, massResolution,
                    EIC1DDataset.TYPE.SUM, new ProxyLookup(dataset.getLookup()));
            switch (plotType) {
            case "SIDE":
                plot = c1p.provide1DEICSUMPlot(ds, tooltipGenerator, masses, massResolution, true);
                break;
            case "TOP":
                plot = c1p.provide1DCoPlot(new TopViewDataset<>(ds), tooltipGenerator, ds.getMinY(),
                        ds.getMaxY(), true);
                break;
            }
            break;
        }
        case "EIC-COPLOT": {
            Logger.getLogger(getClass().getName()).info("Loading EIC-COPLOT");
            EIC1DDataset ds = new EIC1DDataset(dataset.getNamedElementProvider(), masses, massResolution,
                    EIC1DDataset.TYPE.CO, new ProxyLookup(dataset.getLookup()));
            switch (plotType) {
            case "SIDE":
                plot = c1p.provide1DEICCOPlot(ds, tooltipGenerator, masses, massResolution, true);
                break;
            case "TOP":
                plot = c1p.provide1DCoPlot(new TopViewDataset<>(ds), tooltipGenerator, ds.getMinY(),
                        ds.getMaxY(), true);
                break;
            }
            break;
        }
        }

        handle.progress("Configuring plot", 4);
        configurePlot(plot, rtAxisUnit);

        final Chromatogram1DViewPanel cmhp = cvtc.getLookup().lookup(Chromatogram1DViewPanel.class);
        Range domainRange = null;
        Range valueRange = null;
        if (cmhp != null) {
            XYPlot xyplot = cmhp.getPlot();
            if (xyplot != null) {
                ValueAxis domain = xyplot.getDomainAxis();
                domainRange = domain.getRange();
                ValueAxis range = xyplot.getRangeAxis();
                valueRange = range.getRange();
            }
        }

        if (domainRange != null) {
            Logger.getLogger(getClass().getName()).info("Setting previous domain range!");
            plot.getDomainAxis().setRange(domainRange);
        }
        if (valueRange != null) {
            Logger.getLogger(getClass().getName()).info("Setting previous value range!");
            plot.getRangeAxis().setRange(valueRange);
        }
        handle.progress("Adding plot to panel", 5);
        final XYPlot targetPlot = plot;
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                final Chromatogram1DViewPanel cmhp = cvtc.getLookup().lookup(Chromatogram1DViewPanel.class);
                cmhp.setPlot(targetPlot);
                cvtc.requestActive();
            }
        });
    } finally {
        handle.finish();
    }
}

From source file:sturesy.voting.gui.VotingEvaluationPanelUI.java

private JFreeChart createChart(final CategoryDataset dataset, String questiontext, Color background,
        boolean showAnswers, List<Integer> correctAnswers, boolean showPercent) {
    String valueAxisLabel = Localize.getString(showPercent ? "label.votes.percent" : "label.votes.absolute");

    final JFreeChart chart = ChartFactory.createBarChart(questiontext, Localize.getString("label.answers"),
            valueAxisLabel, dataset, PlotOrientation.VERTICAL, false, true, false);

    chart.setBackgroundPaint(background);

    final CategoryPlot plot = chart.getCategoryPlot();
    plot.setNoDataMessage("NO DATA!");

    final CategoryItemRenderer renderer = new AnswersBarRenderer(showAnswers, correctAnswers);

    renderer.setBaseItemLabelsVisible(true);
    renderer.setBaseItemLabelFont(renderer.getBaseItemLabelFont().deriveFont(16.0f));

    final ItemLabelPosition p = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER,
            TextAnchor.CENTER, 45.0);//from  w  w w .j av  a  2s .  c  om

    renderer.setBasePositiveItemLabelPosition(p);

    plot.setRenderer(renderer);

    // change the margin at the top of the range axis...
    final ValueAxis rangeAxis = plot.getRangeAxis();
    rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    rangeAxis.setLowerMargin(0.15);
    rangeAxis.setUpperMargin(0.15);
    double upperrange = rangeAxis.getRange().getUpperBound();

    if (showPercent) {
        renderer.setBaseItemLabelGenerator(new AppendPercentRenderer());
        rangeAxis.setRange(new Range(0, upperrange > 100 ? 100 : upperrange), false, false);
    } else {
        renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
    }

    plot.getDomainAxis().setMaximumCategoryLabelLines(5);
    return chart;

}

From source file:edu.wisc.ssec.mcidasv.control.McIDASVHistogramWrapper.java

protected Range getRange() {
    ValueAxis domainAxis = plot.getDomainAxis();
    return domainAxis.getRange();
}

From source file:ucar.unidata.idv.control.McVHistogramWrapper.java

/**
 * _more_
 *
 * @return _more_
 */
public Range getRange() {
    ValueAxis domainAxis = plot.getDomainAxis();
    return domainAxis.getRange();
}

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

public void zoom(double percent) {

    if (percent > 0.0) {
        ValueAxis domainAxis = getDomainAxis();
        double range = domainAxis.getRange().getLength();
        double scaledRange = range * percent;
        domainAxis.setRange(this.anchorX - scaledRange / 2.0, this.anchorX + scaledRange / 2.0);

        ValueAxis rangeAxis = getRangeAxis();
        range = rangeAxis.getRange().getLength();
        scaledRange = range * percent;//  www  .  j a  v a  2  s  . co m
        rangeAxis.setRange(this.anchorY - scaledRange / 2.0, this.anchorY + scaledRange / 2.0);
    } else {
        getRangeAxis().setAutoRange(true);
        getDomainAxis().setAutoRange(true);
    }
}

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

public void render(final Graphics2D g2, final Rectangle2D dataArea, PlotRenderingInfo info) {

    if (model instanceof ODE) {
        boolean pointBeyondPoincareSection;
        int numVar = model.getNVar();

        ValueAxis domainAxis = plot.getDomainAxis();
        ValueAxis rangeAxis = plot.getRangeAxis();

        Stepper.Point2D result;/*from w ww. j a va  2  s.  c om*/

        g2.setPaint(plot.getPaint());

        parLower = domainAxis.getRange().getLowerBound();
        parUpper = domainAxis.getRange().getUpperBound();
        final double parStep;

        parStep = Math.abs(parUpper - parLower) / dataArea.getWidth();

        stepper.setAxes(variableIdx, variableIdx);

        state = STATE_RUNNING;

        for (index = parLower; index < parUpper; index += parStep) {

            fixedParameters[parameterIdx] = index;

            stepper.setParameters(fixedParameters);
            stepper.setInitialValue(initialValue);
            stepper.initialize();

            int h = 0;
            int transX, transY;

            double[] currentPoint = new double[numVar];
            double[] previousPoint = new double[numVar];
            stepper.getCurrentValue(currentPoint);
            stepper.getCurrentValue(previousPoint);
            pointBeyondPoincareSection = positionWrtPoincareSection(currentPoint);

            for (int j = 0; j < time / step; j++) {
                stepper.step();
                stepper.getCurrentValue(currentPoint);

                if (positionWrtPoincareSection(currentPoint) == pointBeyondPoincareSection) {
                    stepper.getCurrentValue(previousPoint);
                    continue;
                }

                pointBeyondPoincareSection = !pointBeyondPoincareSection;
                double[] pointOnSection = pointOnPoincareSection(previousPoint, currentPoint);
                stepper.setInitialValue(pointOnSection);
                stepper.initialize();
                stepper.getCurrentValue(currentPoint);
                stepper.getCurrentValue(previousPoint);

                //pointBeyondPoincareSection=positionWrtPoincareSection(currentPoint,coeff);
                result = stepper.getCurrentPoint2D();

                transX = (int) domainAxis.valueToJava2D(index, dataArea, RectangleEdge.BOTTOM);

                transY = (int) rangeAxis.valueToJava2D(result.getX(), dataArea, RectangleEdge.LEFT);

                h++;
                if (h > transients) {
                    g2.fillRect(transX, transY, 1, 1);
                }

            }

            if (!fixedInitialPoint) {
                stepper.getCurrentValue(initialValue);
            }

            if (stopped) {
                state = STATE_STOPPED;
                return;
            }
        }

        state = STATE_FINISHED;
    } else {
        //the system is discrete
        ValueAxis domainAxis = plot.getDomainAxis();
        ValueAxis rangeAxis = plot.getRangeAxis();

        Stepper.Point2D result;

        g2.setPaint(plot.getPaint());

        parLower = domainAxis.getRange().getLowerBound();
        parUpper = domainAxis.getRange().getUpperBound();
        final double parStep;

        parStep = Math.abs(parUpper - parLower) / dataArea.getWidth();

        stepper.setAxes(variableIdx, variableIdx);

        state = STATE_RUNNING;

        for (index = parLower; index < parUpper; index += parStep) {

            fixedParameters[parameterIdx] = index;

            stepper.setParameters(fixedParameters);
            stepper.setInitialValue(initialValue);
            stepper.initialize();

            for (int h = 0; h < transients; h++) {
                if (stopped) {
                    state = STATE_STOPPED;
                    return;
                }

                stepper.step();
            }

            int transX, transY;
            for (int j = 0; j < iterations; j++) {

                stepper.step();

                result = stepper.getCurrentPoint2D();

                transX = (int) domainAxis.valueToJava2D(index, dataArea, RectangleEdge.BOTTOM);

                transY = (int) rangeAxis.valueToJava2D(result.getX(), dataArea, RectangleEdge.LEFT);

                g2.fillRect(transX, transY, 1, 1);
            }

            if (!fixedInitialPoint) {
                stepper.getCurrentValue(initialValue);
            }

            if (stopped) {
                state = STATE_STOPPED;
                return;
            }
        }
        state = STATE_FINISHED;
    }

}

From source file:com.tradedesksoftware.ets.client.charting.ChartShiftController.java

public void mouseDragged(MouseEvent mouseEvent) {
    if (!mouseEvent.isControlDown())
        return;/*w  ww. j  av a  2 s.  c  om*/

    if (oldx > -1 && oldy > -1) {
        ValueAxis domAxis = getPlotAxis(chartPanel.getChart(), !axesSwaped);
        ValueAxis rngAxis = getPlotAxis(chartPanel.getChart(), axesSwaped);

        int xdif = mouseEvent.getX() - oldx;
        int ydif = mouseEvent.getY() - oldy;

        final Rectangle scaledDataArea = chartPanel.getScreenDataArea();

        double xdelta = (double) xdif * domAxis.getRange().getLength() / (scaledDataArea.width);
        double ydelta = (double) ydif * rngAxis.getRange().getLength() / (scaledDataArea.height);

        domAxis.setRange(domAxis.getLowerBound() - xdelta, domAxis.getUpperBound() - xdelta);
        rngAxis.setRange(rngAxis.getLowerBound() + ydelta, rngAxis.getUpperBound() + ydelta);
    }

    oldx = mouseEvent.getX();
    oldy = mouseEvent.getY();
}