List of usage examples for org.jfree.chart.axis ValueAxis getRange
public Range getRange()
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(); }