List of usage examples for org.jfree.chart.renderer.xy XYLineAndShapeRenderer setSeriesStroke
public void setSeriesStroke(int series, Stroke stroke)
From source file:vis2006.VisGrafik.java
public JFreeChart createChart(Stand st, int speciesCode) { // create the dataset... int code = speciesCode; int merk = 0; for (int i = 0; i < st.nspecies; i++) if (st.sp[i].code == code) merk = i;// ww w.j a v a2 s . co m XYSeriesCollection dataset = new XYSeriesCollection(); // Werte der Hhenkurve XYSeries series0 = new XYSeries("Hhenkurve: " + st.sp[merk].heightcurveUsed); for (int k = 0; k < st.ntrees; k++) { if ((st.tr[k].d > 0) && (st.tr[k].h > 0) && st.tr[k].code == code && st.tr[k].fac > 0.0) series0.add(st.tr[k].d, st.tr[k].h); } dataset.addSeries(series0); // Messwerte aus der Versuchsflche XYSeries series1 = new XYSeries("Messwerte"); for (int k = 0; k < st.ntrees; k++) { if ((st.tr[k].d > 0) && (st.tr[k].hMeasuredValue > 0) && st.tr[k].code == code && st.tr[k].fac > 0.0) series1.add(st.tr[k].d, st.tr[k].hMeasuredValue); } dataset.addSeries(series1); // Andere Messwerte (HG, nurH) XYSeries series2 = new XYSeries("Andere Hhen"); for (int k = 0; k < st.ntrees; k++) { if ((st.tr[k].d > 0) && (st.tr[k].hMeasuredValue > 0) && st.tr[k].code == code && (st.tr[k].no.contains("nurH") || st.tr[k].no.contains("HG"))) series2.add(st.tr[k].d, st.tr[k].hMeasuredValue); } dataset.addSeries(series2); /* Wozu ist die gut? double dmin=9000; double dmax=-9000; for (int k=0;k<st.ntrees;k++){ if (st.tr[k].code==st.sp[merk].code && st.tr[k].fac > 0.0){ if (dmax <st.tr[k].d ) dmax=st.tr[k].d; if (dmin >st.tr[k].d ) dmin=st.tr[k].d; } } XYSeries series3 = new XYSeries(""); int idmin = (int)(Math.round(dmin)); int idmax = (int)(Math.round(dmax))+1; for (int k=idmin;k<=idmax;k++){ double dwert=k*1.0; if (st.sp[merk].heightcurveUsed.indexOf("Einheits")>-1){ UniformHeight uh = new UniformHeight(); series3.add(dwert,uh.height(st.sp[merk],dwert, st.sp[merk].dg,st.sp[merk].hg,st)); } else { HeightCurve hc =new HeightCurve(); series3.add(dwert,hc.getHeight(st.sp[merk].spDef.heightCurve,dwert,st.sp[merk].heightcurveUsedP0, st.sp[merk].heightcurveUsedP1,st.sp[merk].heightcurveUsedP2)); } } dataset.addSeries(series3); */ // JFreeChart chart = ChartFactory.createScatterPlot("Hhenkurve " + st.sp[merk].spDef.longName, "BHD [cm]", "Hhe [m]", dataset, org.jfree.chart.plot.PlotOrientation.VERTICAL, true, //legend false, // tooltips false); // urls XYPlot plot = chart.getXYPlot(); plot.setDomainCrosshairVisible(true); plot.setRangeCrosshairVisible(true); plot.getDomainAxis().setAutoRangeMinimumSize(1.0); plot.getRangeAxis().setAutoRangeMinimumSize(5.0); // XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); renderer.setSeriesLinesVisible(0, true); // Hhenkurve - rote Linie renderer.setSeriesStroke(0, new BasicStroke(2)); renderer.setSeriesShapesVisible(0, false); renderer.setSeriesPaint(0, Color.RED); renderer.setSeriesLinesVisible(1, false); // Parzellenmesswerte - blaue Symbole renderer.setSeriesShapesVisible(1, true); renderer.setSeriesPaint(1, Color.BLUE); renderer.setSeriesLinesVisible(2, false); // Andere Messwerte - blaue leere Symbole renderer.setSeriesShapesVisible(2, true); renderer.setSeriesShapesFilled(2, false); renderer.setSeriesPaint(2, Color.BLUE); // renderer.setSeriesLinesVisible(3, true); // renderer.setSeriesShapesVisible(3,false); // renderer.setSeriesPaint(3, Color.BLUE); // renderer.setSeriesPaint(1, new Color(st.sp[merk].spDef.colorRed,st.sp[merk].spDef.colorGreen,st.sp[merk].spDef.colorBlue)); plot.setRenderer(renderer); System.out.println("Plot done"); return chart; }
From source file:edu.fullerton.timeseriesapp.TimeSeriesApp.java
public ArrayList<Integer> makePlot(ArrayList<ChanDataBuffer> dbufs, boolean compact) throws WebUtilException { int imageId;/*from ww w.jav a2 s . c o m*/ try { PluginSupport psupport = new PluginSupport(); String gtitle = psupport.getTitle(dbufs, compact); String xAxisLabel = ""; XYSeriesCollection xyds = new XYSeriesCollection(); TimeSeriesCollection mtds = new TimeSeriesCollection(); compact = dbufs.size() > 2 ? false : compact; for (ChanDataBuffer dbuf : dbufs) { int npts = dbuf.getDataLength(); int sum = 1; if (npts > 2000) { sum = npts / 2000; } String legend = psupport.getLegend(dbuf, compact); if (timeAxis.equalsIgnoreCase("utc")) { TimeSeries ts = psupport.getTimeSeries(dbuf, legend, sum); xAxisLabel = "Time (UTC)"; mtds.addSeries(ts); } else { boolean isDt = timeAxis.equalsIgnoreCase("dt"); XYSeries xys = psupport.addXySeries(dbuf, legend, isDt, sum); xAxisLabel = psupport.getxAxisLabel(); xyds.addSeries(xys); } } Double minx, miny, maxx, maxy; Double[] rng = new Double[4]; if (timeAxis.equalsIgnoreCase("utc")) { PluginSupport.getRangeLimits(mtds, rng); } else { int skip = 0; PluginSupport.getRangeLimits(xyds, rng, skip); } minx = rng[0]; miny = rng[1]; maxx = rng[2]; maxy = rng[3]; int exp; if (timeAxis.equalsIgnoreCase("utc")) { exp = PluginSupport.scaleRange(mtds, miny, maxy); } else { exp = PluginSupport.scaleRange(xyds, miny, maxy); } ChartPanel cpnl; DefaultXYDataset ds = new DefaultXYDataset(); JFreeChart chart; if (timeAxis.equalsIgnoreCase("utc")) { chart = ChartFactory.createTimeSeriesChart(gtitle, "Time (UTC)", "Counts", ds, true, true, false); } else { chart = ChartFactory.createXYLineChart(gtitle, xAxisLabel, "Counts", ds, PlotOrientation.VERTICAL, true, false, false); } chart.setBackgroundPaint(Color.WHITE); chart.setAntiAlias(true); XYPlot plot = (XYPlot) chart.getPlot(); plot.setBackgroundPaint(Color.white); plot.setRangeGridlinePaint(Color.LIGHT_GRAY); plot.setDomainGridlinePaint(Color.LIGHT_GRAY); NumberAxis rangeAxis = new NumberAxis("Counts"); ScaledAxisNumberFormat sanf = new ScaledAxisNumberFormat(); sanf.setExp(exp); NumberTickUnit tickUnit; double plotRange; if (maxy != 0 && Math.abs(maxy - miny) < Math.abs(maxy) * 1e-30) { // this garbage is to get jFreeChart to always put labels on the Y axis double dt = Math.abs(miny) / 10; double scaledMin = (miny - dt) * Math.pow(10., exp); double scaledMax = (maxy + dt) * Math.pow(10., exp); rangeAxis.setRange(scaledMin, scaledMax); plotRange = scaledMax - scaledMin; rangeAxis.setAutoRange(false); } else { sanf.setMinMax(miny, maxy); plotRange = maxy - miny; rangeAxis.setAutoRange(true); } tickUnit = rangeAxis.getTickUnit(); double tickSize = tickUnit.getSize(); int nticks = (int) ((plotRange) / tickSize); if (nticks > yTicks) { double newTickSize = plotRange / yTicks; rangeAxis.setTickUnit(new NumberTickUnit(newTickSize)); } rangeAxis.setNumberFormatOverride(sanf); rangeAxis.setAutoRangeIncludesZero(false); plot.setRangeAxis(rangeAxis); if (timeAxis.equalsIgnoreCase("utc")) { plot.setDataset(0, mtds); } else { plot.setDataset(0, xyds); } // Set the line thickness XYLineAndShapeRenderer r = (XYLineAndShapeRenderer) plot.getRenderer(); BasicStroke str = new BasicStroke(lineThickness); int n = plot.getSeriesCount(); for (int i = 0; i < n; i++) { r.setSeriesStroke(i, str); } if (compact) { chart.removeLegend(); } cpnl = new ChartPanel(chart); if (outFilename.isEmpty()) { imageId = psupport.saveImageAsPNG(cpnl); } else { imageId = 0; psupport.saveImageAsPdfFile(chart, outFilename); } } catch (SQLException | NoSuchAlgorithmException | IOException ex) { throw new WebUtilException(ex); } ArrayList<Integer> ret = new ArrayList<>(); ret.add(imageId); return ret; }
From source file:ch.agent.crnickl.demo.stox.Chart.java
private XYItemRenderer getLineRenderer() throws KeyedException { XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer(); lineRenderer.setDrawSeriesLineAsPath(true); lineRenderer.setSeriesStroke(0, new BasicStroke(getStrokeWidth(), BasicStroke.CAP_SQUARE, BasicStroke.JOIN_ROUND)); lineRenderer.setBaseShapesVisible(false); return lineRenderer; }
From source file:org.glotaran.core.datadisplayers.common.ImageSVDPanel.java
public void createSVDPlots() { int maxSpinnerNumberModel = Math.min(MAX_NUMBER_SINGULAR_VALUES, (int) svdResult[1].getRowCount()); jTFtotalNumSV/*ww w. j a v a 2 s.c om*/ .setText("Max " + maxSpinnerNumberModel + " of " + String.valueOf(svdResult[1].getRowCount())); jSnumSV.setModel(new SpinnerNumberModel((int) 1, (int) 0, maxSpinnerNumberModel, (int) 1)); //creare collection with first 2 LSV XYSeriesCollection lSVCollection = new XYSeriesCollection(); XYSeries seria; seria = new XYSeries("LSV1"); for (int i = 0; i < timeSteps; i++) { seria.add(timeAxe[i], svdResult[0].getAsDouble((long) i, 0)); } lSVCollection.addSeries(seria); //creare chart for 2 LSV leftSVChart = ChartFactory.createXYLineChart("Left singular vectors", "Time (~s)", null, lSVCollection, PlotOrientation.VERTICAL, false, false, false); //leftSVChart.getTitle().setFont(new Font(leftSVChart.getTitle().getFont().getFontName(), Font.PLAIN, 12)); leftSVChart.setBackgroundPaint(JFreeChart.DEFAULT_BACKGROUND_PAINT); GraphPanel chpan = new GraphPanel(leftSVChart); jPLeftSingVectors.removeAll(); jPLeftSingVectors.add(chpan); //creare collection with first RSV double[] tempRsingVec = null; double minVal = 0; double maxVal = 0; // seria = new XYSeries("RSV" + (j + 1)); tempRsingVec = new double[imageWitdth * imageHeight]; double tempValue; for (int i = 0; i < imageWitdth * imageHeight; i++) { tempValue = svdResult[2].getAsDouble(i, 0); tempRsingVec[i] = tempValue; minVal = minVal > tempValue ? tempValue : minVal; maxVal = maxVal < tempValue ? tempValue : maxVal; } IntensImageDataset rSingVec = new IntensImageDataset(imageWitdth, imageHeight, tempRsingVec); PaintScale ps = new RedGreenPaintScale(minVal, maxVal); JFreeChart rSingVect = CommonDataDispTools .createScatChart(ImageUtilities.createColorCodedImage(rSingVec, ps), ps, imageWitdth, imageHeight); // rSingVect.setTitle("R Singular vector " + String.valueOf(j + 1)); //rSingVect.getTitle().setFont(new Font(tracechart.getTitle().getFont().getFontName(), Font.PLAIN, 12)); ChartPanel rSingVectPanel = new ChartPanel(rSingVect); rSingVectPanel.setFillZoomRectangle(true); rSingVectPanel.setMouseWheelEnabled(true); jPRightSingVectors.removeAll(); jPRightSingVectors.add(rSingVectPanel); //creare collection with singular values XYSeriesCollection sVCollection = new XYSeriesCollection(); seria = new XYSeries("SV"); for (int i = 0; i < maxSpinnerNumberModel; i++) { seria.add(i + 1, svdResult[1].getAsDouble((long) i, (long) i)); } sVCollection.addSeries(seria); //create chart for singular values JFreeChart tracechart = ChartFactory.createXYLineChart("Screeplot", "Singular Value index (n)", null, sVCollection, PlotOrientation.VERTICAL, false, false, false); LogAxis logAxe = new LogAxis("Log(SVn)"); final NumberAxis domainAxis = (NumberAxis) tracechart.getXYPlot().getDomainAxis(); domainAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); tracechart.getXYPlot().setRangeAxis(logAxe); XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) tracechart.getXYPlot().getRenderer(); renderer.setBaseShapesVisible(true); renderer.setDrawOutlines(true); renderer.setUseFillPaint(true); renderer.setBaseFillPaint(Color.white); renderer.setSeriesStroke(0, new BasicStroke(1.0f)); renderer.setSeriesOutlineStroke(0, new BasicStroke(1.0f)); renderer.setSeriesShape(0, new Ellipse2D.Double(-4.0, -4.0, 8.0, 8.0)); //tracechart.getTitle().setFont(new Font(tracechart.getTitle().getFont().getFontName(), Font.PLAIN, 12)); tracechart.setBackgroundPaint(JFreeChart.DEFAULT_BACKGROUND_PAINT); chpan = new GraphPanel(tracechart); //add chart with 2 RSV to JPannel jPSingValues.removeAll(); jPSingValues.add(chpan); }
From source file:ecg.ecgshow.ECGShowUI.java
private void createECGData(long timeZone) { ECGData = new JPanel(new GridLayout(LEAD_COUNT, 1)); dateAxises = new DateAxis[LEAD_COUNT]; ECGSeries = new TimeSeries[LEAD_COUNT * 2]; for (int i = 0; i < LEAD_COUNT; i++) { TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); //XYDataset TimeSeriesCollection ECGSeries[i] = new TimeSeries("?" + (i + 1)); ECGSeries[i].setMaximumItemCount(500); ECGSeries[i + LEAD_COUNT] = new TimeSeries(""); ECGSeries[i + LEAD_COUNT].setMaximumItemAge(timeZone); ECGSeries[i + LEAD_COUNT].setMaximumItemCount(2); timeseriescollection.addSeries(ECGSeries[i]); timeseriescollection.addSeries(ECGSeries[i + LEAD_COUNT]); //DateAxis dateaxis = new DateAxis("Time"); dateAxises[i] = new DateAxis(""); dateAxises[i].setTickLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.016))); dateAxises[i].setLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.018))); dateAxises[i].setTickLabelsVisible(true); dateAxises[i].setVisible(false); //NumberAxis numberaxis = new NumberAxis("ecg"); NumberAxis numberaxis = new NumberAxis("ecg"); numberaxis.setTickLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.016))); numberaxis.setLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.018))); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); numberaxis.setVisible(false);//w ww .j a v a 2 s. co m numberaxis.setLowerBound(1500D); numberaxis.setUpperBound(3000D); XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer(true, false); xylineandshaperenderer.setSeriesPaint(0, Color.GREEN); // xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(2)); xylineandshaperenderer.setSeriesPaint(1, Color.LIGHT_GRAY); // xylineandshaperenderer.setSeriesStroke(1, new BasicStroke(5)); XYPlot xyplot = new XYPlot(timeseriescollection, dateAxises[i], numberaxis, xylineandshaperenderer); xyplot.setBackgroundPaint(Color.LIGHT_GRAY); xyplot.setDomainGridlinePaint(Color.LIGHT_GRAY); xyplot.setRangeGridlinePaint(Color.LIGHT_GRAY); xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D)); xyplot.setBackgroundPaint(Color.BLACK); JFreeChart jfreechart = new JFreeChart(xyplot); jfreechart.setBackgroundPaint(new Color(237, 237, 237));//? jfreechart.getLegend().setVisible(false); ChartPanel chartpanel = new ChartPanel(jfreechart, (int) (WIDTH * 46 / 100), (int) (HEIGHT * 17 / 100), 0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, false, true, false, false); chartpanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0) //??0 , BorderFactory.createEmptyBorder() //???? )); chartpanel.setMouseZoomable(false); //? ECGData.add(chartpanel); } }
From source file:org.matsim.contrib.dvrp.util.chart.RouteChartUtils.java
public static JFreeChart chartRoutesByStatus(List<? extends Vehicle> vehicles) { CoordDataset nData = new CoordDataset(); for (int i = 0; i < vehicles.size(); i++) { Schedule<?> schedule = vehicles.get(i).getSchedule(); Map<TaskStatus, CoordSource> vsByStatus = createLinkSourceByStatus(schedule); nData.addSeries(i + "-PR", vsByStatus.get(TaskStatus.PERFORMED)); nData.addSeries(i + "-ST", vsByStatus.get(TaskStatus.STARTED)); nData.addSeries(i + "-PL", vsByStatus.get(TaskStatus.PLANNED)); }//from ww w . j a v a 2 s . c o m JFreeChart chart = ChartFactory.createXYLineChart("Routes", "X", "Y", nData, PlotOrientation.VERTICAL, false, true, false); XYPlot plot = (XYPlot) chart.getPlot(); plot.setRangeGridlinesVisible(false); plot.setDomainGridlinesVisible(false); plot.setBackgroundPaint(Color.white); NumberAxis yAxis = (NumberAxis) plot.getRangeAxis(); yAxis.setAutoRangeIncludesZero(false); XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(); renderer.setSeriesShapesVisible(0, true); renderer.setSeriesLinesVisible(0, false); renderer.setSeriesItemLabelsVisible(0, true); renderer.setBaseItemLabelGenerator(new LabelGenerator()); Paint[] paints = DefaultDrawingSupplier.DEFAULT_PAINT_SEQUENCE; Shape[] shapes = DefaultDrawingSupplier.DEFAULT_SHAPE_SEQUENCE; for (int i = 0; i < vehicles.size(); i++) { int s = 3 * i; renderer.setSeriesItemLabelsVisible(s + 1, true); renderer.setSeriesItemLabelsVisible(s + 2, true); renderer.setSeriesItemLabelsVisible(s + 3, true); renderer.setSeriesShapesVisible(s + 1, true); renderer.setSeriesShapesVisible(s + 2, true); renderer.setSeriesShapesVisible(s + 3, true); renderer.setSeriesLinesVisible(s + 1, true); renderer.setSeriesLinesVisible(s + 2, true); renderer.setSeriesLinesVisible(s + 3, true); renderer.setSeriesPaint(s + 1, paints[(i + 1) % paints.length]); renderer.setSeriesPaint(s + 2, paints[(i + 1) % paints.length]); renderer.setSeriesPaint(s + 3, paints[(i + 1) % paints.length]); renderer.setSeriesShape(s + 1, shapes[(i + 1) % shapes.length]); renderer.setSeriesShape(s + 2, shapes[(i + 1) % shapes.length]); renderer.setSeriesShape(s + 3, shapes[(i + 1) % shapes.length]); renderer.setSeriesStroke(s + 2, new BasicStroke(3)); renderer.setSeriesStroke(s + 3, new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1, new float[] { 5f, 5f }, 0)); } return chart; }
From source file:ecg.ecgshow.ECGShowUI.java
private void createPressureData(long timeZone) { PressureData = new JPanel(); PressuredateAxises = new DateAxis[1]; SystolicPressureSeries = new TimeSeries[2]; DiastolicPressureSeries = new TimeSeries[2]; TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); SystolicPressureSeries[0] = new TimeSeries(""); SystolicPressureSeries[0].setMaximumItemAge(timeZone); SystolicPressureSeries[0].setMaximumItemCount(500); SystolicPressureSeries[1] = new TimeSeries(""); SystolicPressureSeries[1].setMaximumItemAge(timeZone); SystolicPressureSeries[1].setMaximumItemCount(2); timeseriescollection.addSeries(SystolicPressureSeries[0]); timeseriescollection.addSeries(SystolicPressureSeries[1]); PressuredateAxises[0] = new DateAxis(""); PressuredateAxises[0].setTickLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.016))); PressuredateAxises[0].setLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.018))); PressuredateAxises[0].setTickLabelsVisible(true); PressuredateAxises[0].setVisible(false); DiastolicPressureSeries[0] = new TimeSeries(""); DiastolicPressureSeries[0].setMaximumItemAge(timeZone); DiastolicPressureSeries[0].setMaximumItemCount(500); DiastolicPressureSeries[1] = new TimeSeries(""); DiastolicPressureSeries[1].setMaximumItemAge(timeZone); DiastolicPressureSeries[1].setMaximumItemCount(2); timeseriescollection.addSeries(DiastolicPressureSeries[0]); timeseriescollection.addSeries(DiastolicPressureSeries[1]); NumberAxis numberaxis = new NumberAxis("Pressure"); numberaxis.setTickLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.016))); numberaxis.setLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.018))); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); numberaxis.setVisible(false);/*from www.j a v a 2 s . com*/ numberaxis.setLowerBound(0D); numberaxis.setUpperBound(200D); XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer(true, false); xylineandshaperenderer.setSeriesPaint(0, Color.GREEN); // xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(2)); // xylineandshaperenderer.setSeriesPaint(1, Color.LIGHT_GRAY); // xylineandshaperenderer.setSeriesStroke(1, new BasicStroke(5)); xylineandshaperenderer.setSeriesPaint(2, Color.ORANGE); // xylineandshaperenderer.setSeriesStroke(2, new BasicStroke(2)); // xylineandshaperenderer.setSeriesPaint(3, Color.LIGHT_GRAY); // xylineandshaperenderer.setSeriesStroke(3, new BasicStroke(5)); //XYPlot xyplot = new XYPlot(timeseriescollection, PressuredateAxises[0], numberaxis, xylineandshaperenderer); XYPlot xyplot = new XYPlot(timeseriescollection, dateAxises[0], numberaxis, xylineandshaperenderer); xyplot.setBackgroundPaint(Color.LIGHT_GRAY); xyplot.setDomainGridlinePaint(Color.LIGHT_GRAY); xyplot.setRangeGridlinePaint(Color.LIGHT_GRAY); xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D)); xyplot.setBackgroundPaint(Color.BLACK); JFreeChart jfreechart = new JFreeChart(xyplot); jfreechart.setBackgroundPaint(new Color(237, 237, 237));//? jfreechart.getLegend().setVisible(false); ChartPanel chartpanel = new ChartPanel(jfreechart, (int) (WIDTH * 0.155), (int) (HEIGHT * 0.18), 0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, false, true, false, false); chartpanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0) //??0 , BorderFactory.createEmptyBorder() //???? )); chartpanel.setMouseZoomable(false); PressureData.add(chartpanel); }
From source file:no.ntnu.mmfplanner.ui.graph.NpvChart.java
/** * Helper method for updateModel(). Adds a rolling npv line with self * funding and break even, as well as adding legend elements *///from w ww .j a v a2 s. c o m private void addNpvLine(ProjectRoi projectRoi, String caption, Paint paint, XYSeriesCollection dataset, XYLineAndShapeRenderer renderer) { // adds the rolling npvseries and sets approperiate render properties XYSeries rollingNpv = new XYSeries(caption); rollingNpv.add(0.5, 0.0); for (int i = 0; i < projectRoi.rollingNpv.length; i++) { rollingNpv.add(i + 1.5, projectRoi.rollingNpv[i]); } int series = dataset.getSeriesCount(); dataset.addSeries(rollingNpv); renderer.setSeriesShapesVisible(series, false); renderer.setSeriesStroke(series, STROKE_LINE); renderer.setSeriesPaint(series, paint); renderer.setSeriesVisibleInLegend(series, true); // break even if (projectRoi.breakevenPeriod > 0) { XYSeries breakEven = new XYSeries("Break Even"); breakEven.add(projectRoi.breakevenRegression - 0.5, 0.0); series = dataset.getSeriesCount(); dataset.addSeries(breakEven); renderer.setSeriesLinesVisible(series, false); renderer.setSeriesPaint(series, paint); renderer.setSeriesVisibleInLegend(series, false); renderer.setSeriesShape(series, ShapeUtilities.createDiamond(3.5f)); } // selfFunding if (projectRoi.selfFundingPeriod > 1) { XYSeries selfFunding = new XYSeries("Self Funding"); double x = projectRoi.selfFundingPeriod - 0.5; double y = projectRoi.rollingNpv[projectRoi.selfFundingPeriod - 2]; selfFunding.add(x, y); series = dataset.getSeriesCount(); dataset.addSeries(selfFunding); renderer.setSeriesLinesVisible(series, false); renderer.setSeriesPaint(series, paint); renderer.setSeriesVisibleInLegend(series, false); renderer.setSeriesShape(series, ShapeUtilities.createUpTriangle(3.5f)); } }
From source file:IHM.compargraph.java
/** * * @param title/*from ww w . ja va 2 s . c om*/ * @param c1 * @param c2 * @param comp * */ public compargraph(String title, ArrayList<ReleveMeteo> c1, ArrayList<ReleveMeteo> c2, String comp) { super(title); t1 = c1; t2 = c2; c = comp; // jp = new JInternalFrame("courbes"); JFreeChart chart = createChart(createDataset()); ChartPanel panel = new ChartPanel(chart); panel.setPreferredSize(new Dimension(500, 300)); setContentPane(panel); // jp.add(panel, BorderLayout.EAST); // jp.setVisible(true); panel.setVisible(true); XYPlot plot = chart.getXYPlot(); XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); plot.setRenderer(renderer); renderer.setSeriesPaint(0, Color.RED); renderer.setSeriesPaint(1, Color.GREEN); renderer.setSeriesPaint(2, Color.YELLOW); // sets thickness for series (using strokes) renderer.setSeriesStroke(0, new BasicStroke(4.0f)); renderer.setSeriesStroke(1, new BasicStroke(3.0f)); renderer.setSeriesStroke(2, new BasicStroke(2.0f)); plot.setRenderer(renderer); plot.setOutlinePaint(Color.BLUE); plot.setOutlineStroke(new BasicStroke(2.0f)); plot.setBackgroundPaint(Color.DARK_GRAY); plot.setRangeGridlinesVisible(true); plot.setRangeGridlinePaint(Color.BLACK); plot.setDomainGridlinesVisible(true); plot.setDomainGridlinePaint(Color.BLACK); }
From source file:br.ufrgs.enq.jcosmo.ui.COSMOSACDialog.java
private void rebuildChart() { if (listModel.getSize() < 2) { JOptionPane.showMessageDialog(this, "Select 2 compounds.", "Error", JOptionPane.OK_OPTION); err = true;/* w ww . j a v a 2s . co m*/ return; } if (listModel.getSize() > 2) { JOptionPane.showMessageDialog(this, "Select only 2 compounds.", "Error", JOptionPane.OK_OPTION); return; } double T = Double.parseDouble(temperature.getText()); if (T <= 0) { JOptionPane.showMessageDialog(this, "Invalid Temperature.", "Error", JOptionPane.OK_OPTION); return; } COSMOSAC cosmosac = (COSMOSAC) modelBox.getSelectedItem(); COSMOSACCompound comps[] = new COSMOSACCompound[2]; try { comps[0] = db.getComp((String) listModel.getElementAt(0)); comps[1] = db.getComp((String) listModel.getElementAt(1)); cosmosac.setComponents(comps); } catch (Exception e1) { e1.printStackTrace(); return; } if (comps[0] == null || comps[1] == null) return; cosmosac.setSigmaHB(Double.parseDouble(sigmaHB.getText())); cosmosac.setSigmaHB2(Double.parseDouble(sigmaHB2.getText())); cosmosac.setSigmaHB3(Double.parseDouble(sigmaHB3.getText())); // cosmosac.setSigmaHBUpper(Double.parseDouble(sigmaHBUpper.getText())); cosmosac.setCHB(Double.parseDouble(chargeHB.getText())); cosmosac.setSigmaDisp(Double.parseDouble(sigmaDisp.getText())); cosmosac.setCDisp(Double.parseDouble(chargeDisp.getText())); cosmosac.setBeta(Double.parseDouble(beta.getText())); cosmosac.setFpol(Double.parseDouble(fpol.getText())); cosmosac.setAnorm(Double.parseDouble(anorm.getText())); cosmosac.parametersChanged(); setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); // cosmosac.setParameters(cavityVolume, c1.charge, sigma); cosmosac.setTemperature(T); // testing several compositions XYSeriesCollection dataset = new XYSeriesCollection(); int n = 20; XYSeries lnGamma1 = new XYSeries(comps[0].name); XYSeries lnGamma2 = new XYSeries(comps[1].name); XYSeries ge_RT = new XYSeries("gE/RT"); for (int i = 0; i <= n; ++i) { z[0] = (double) i / n; z[1] = 1 - z[0]; cosmosac.setComposition(z); cosmosac.activityCoefficient(lnGamma); lnGamma1.add(z[0], lnGamma[0]); lnGamma2.add(z[0], lnGamma[1]); ge_RT.add(z[0], z[0] * lnGamma[0] + z[1] * lnGamma[1]); if (z[0] == 0) { lnGammaInf1Label.setText(String.format("%6.3g", lnGamma[0])); gammaInf1Label.setText(String.format("%6.3g", Math.exp(lnGamma[0]))); } if (z[1] == 0) { lnGammaInf2Label.setText(String.format("%6.3g", lnGamma[1])); gammaInf2Label.setText(String.format("%6.3g", Math.exp(lnGamma[1]))); } } dataset.addSeries(lnGamma1); dataset.addSeries(lnGamma2); dataset.addSeries(ge_RT); plot.setDataset(dataset); // now the segment gamma dataset = new XYSeriesCollection(); double[][] seggamma = cosmosac.getPureSegmentGamma(); n = comps[0].charge.length; XYSeries g1 = new XYSeries(comps[0].name); XYSeries g2 = new XYSeries(comps[1].name); XYSeries g1s = new XYSeries(comps[0].name + " * sigma"); XYSeries g2s = new XYSeries(comps[1].name + " * sigma"); for (int j = 0; j < n; ++j) { g1.add(comps[0].charge[j], Math.log(seggamma[0][j])); g2.add(comps[1].charge[j], Math.log(seggamma[1][j])); g1s.add(comps[0].charge[j], comps[0].area[j] * (Math.log(seggamma[1][j]) - Math.log(seggamma[0][j]))); g2s.add(comps[1].charge[j], comps[1].area[j] * (Math.log(seggamma[0][j]) - Math.log(seggamma[1][j]))); } dataset.addSeries(g1); dataset.addSeries(g2); dataset.addSeries(g1s); dataset.addSeries(g2s); plotSegGamma.setDataset(dataset); // adjust the plot properties plotSegGamma.getDomainAxis().setAutoRange(false); plotSegGamma.getDomainAxis().setRange(new Range(-0.025, 0.025)); XYLineAndShapeRenderer r = (XYLineAndShapeRenderer) plotSegGamma.getRenderer(); r.setSeriesStroke(0, new BasicStroke(2.5f)); r.setSeriesStroke(1, new BasicStroke(2.5f)); BasicStroke dashed = new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] { 6.0f, 6.0f }, 0.0f); r.setSeriesStroke(2, dashed); r.setSeriesStroke(3, dashed); r.setSeriesPaint(0, Color.RED); r.setSeriesPaint(1, Color.BLUE); r.setSeriesPaint(2, Color.RED); r.setSeriesPaint(3, Color.BLUE); // plotSegGamma.setRenderer(stepRenderer); // plotSegGamma.setRenderer(3, stepRenderer); setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); }