List of usage examples for org.jfree.chart.renderer.xy XYSplineRenderer XYSplineRenderer
public XYSplineRenderer()
From source file:Interfaz.adminZone.java
private void graficar() { ChartPanel panel;// w w w . jav a 2s. co m JFreeChart chart = null; int validar = 1; XYSplineRenderer renderer = new XYSplineRenderer(); XYSeriesCollection dataset = new XYSeriesCollection(); ValueAxis x = new NumberAxis(); ValueAxis y = new NumberAxis(); XYSeries serie = new XYSeries("Ventas"); XYPlot plot; lineas.removeAll(); try { for (int fila = 0; fila < this.modeloVentasMes.getRowCount(); fila++) { serie.add(Float.parseFloat(String.valueOf(this.modeloVentasMes.getValueAt(fila, 0))), Float.parseFloat(String.valueOf(modeloVentasMes.getValueAt(fila, 1)))); } } catch (Exception es) { validar = 0; } if (validar == 1) { dataset.addSeries(serie); x.setLabel("Mes"); y.setLabel("Ventas"); plot = new XYPlot(dataset, x, y, renderer); chart = new JFreeChart(plot); chart.setTitle("Cambio en las Ventas 2016"); } panel = new ChartPanel(chart); panel.setBounds(5, 10, 229, 219); lineas.add(panel); lineas.repaint(); }
From source file:telas.TelaGrafico.java
public void criaGrafico(ArrayList<Processo> listapronto) { JFreeChart chart = null;// w w w. j a v a 2s. co m XYSplineRenderer renderer = new XYSplineRenderer(); XYSeriesCollection dataset = new XYSeriesCollection(); ValueAxis x = new NumberAxis(); ValueAxis y = new NumberAxis(); XYSeries serie = new XYSeries("Processos"); XYPlot plot; for (int fila = 0; fila < listapronto.size(); fila++) { serie.add(listapronto.get(fila).getTsurto(), listapronto.get(fila).getTespera()); } dataset.addSeries(serie); x.setLabel("Processos"); y.setLabel("Tempo de espera"); plot = new XYPlot(dataset, x, y, renderer); chart = new JFreeChart(plot); chart.setTitle("Processos"); ChartPanel myChartPanel = new ChartPanel(chart, true); myChartPanel.setSize(jPanel1.getWidth(), jPanel1.getHeight()); myChartPanel.setVisible(true); jPanel1.removeAll(); jPanel1.add(myChartPanel); jPanel1.revalidate(); jPanel1.repaint(); }
From source file:edu.cudenver.bios.chartsvc.resource.LegendResource.java
private XYPlot buildScatterPlot(Chart chart) throws ResourceException { // the first series is treated as the x values if (chart.getSeries() == null || chart.getSeries().size() <= 0) throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST, "No data series specified"); // create the jfree chart series XYSeriesCollection chartData = new XYSeriesCollection(); // use a spline renderer to make the connecting lines smooth XYSplineRenderer rend = new XYSplineRenderer(); int seriesIdx = 0; for (Series series : chart.getSeries()) { XYSeries xySeries = new XYSeries(series.getLabel()); List<Double> xList = series.getXCoordinates(); List<Double> yList = series.getYCoordinates(); if (xList != null && yList != null && xList.size() == yList.size()) { for (int i = 0; i < xList.size(); i++) { xySeries.add(xList.get(i), yList.get(i)); }// w w w .j av a 2s .c om } // set the line style rend.setSeriesPaint(seriesIdx, Color.BLACK); if (seriesIdx > 0) { rend.setSeriesStroke(seriesIdx, new BasicStroke(1.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] { (float) seriesIdx, (float) 2 * seriesIdx }, 0.0f)); } // add the series to the data set chartData.addSeries(xySeries); seriesIdx++; } // turn off shapes displayed at each data point to make a smooth curve rend.setBaseShapesVisible(false); // Create the line chart NumberAxis xAxis = new NumberAxis(); xAxis.setAutoRangeIncludesZero(false); if (chart.getXAxis() != null) { Axis xAxisSpec = chart.getXAxis(); xAxis.setLabel(xAxisSpec.getLabel()); if (!Double.isNaN(xAxisSpec.getRangeMin()) && !Double.isNaN(xAxisSpec.getRangeMax())) { xAxis.setRange(xAxisSpec.getRangeMin(), xAxisSpec.getRangeMax()); } } NumberAxis yAxis = new NumberAxis(); if (chart.getYAxis() != null) { Axis yAxisSpec = chart.getYAxis(); yAxis.setLabel(chart.getYAxis().getLabel()); if (!Double.isNaN(yAxisSpec.getRangeMin()) && !Double.isNaN(yAxisSpec.getRangeMax())) { xAxis.setRange(yAxisSpec.getRangeMin(), yAxisSpec.getRangeMax()); } } XYPlot plot = new XYPlot((XYDataset) chartData, xAxis, yAxis, rend); plot.setDomainGridlinesVisible(false); plot.setRangeGridlinesVisible(false); return plot; }
From source file:it.sidgrid.sextante.tools.MultiProfileVectorAlgorithm.java
@Override public boolean processAlgorithm() throws GeoAlgorithmExecutionException { int i;//from ww w . ja v a 2 s . co m serie = new XYSeries(Sextante.getText("Profile")); dataset.addSeries(serie); final IVectorLayer lines = m_Parameters.getParameterValueAsVectorLayer(ROUTE); if (lines.getShapesCount() == 0) { throw new GeoAlgorithmExecutionException(Sextante.getText("Zero_lines_in_layer")); } final ArrayList<?> layers = m_Parameters.getParameterValueAsArrayList(LAYERS); m_DEM = m_Parameters.getParameterValueAsVectorLayer(DEM); // Recupero l'indice dei campi TOP e BOTTOM field_TOP_idx = m_DEM.getFieldIndexByName("TOP"); // System.out.println("TOP "+field_TOP_idx); field_BOTTOM_idx = m_DEM.getFieldIndexByName("BOTTOM"); // System.out.println("BOTTOM "+field_BOTTOM_idx); // TODO: Segnalare all'utente il motivo della chiusura if (field_TOP_idx < 0 || field_BOTTOM_idx < 0) return false; XYSeries multiserie; // Recupero i layer passati all'algoritmo m_Layer = new IVectorLayer[layers.size()]; for (i = 0; i < layers.size(); i++) { m_Layer[i] = (IVectorLayer) layers.get(i); } for (i = 0; i < layers.size(); i++) { multiserie = new XYSeries(m_Layer[i].getName()); dataset.addSeries(multiserie); } // Aggiungo una serie per il TOP del DEM, gli altri saranno i BOTTOM. top_dem = new XYSeries("TOP_DEM"); dataset.addSeries(top_dem); // Un iteratore per recuperare solo la prima linea? final IFeatureIterator iterator = lines.iterator(); final Geometry line = iterator.next().getGeometry().getGeometryN(0); precedenti = new double[line.getCoordinates().length]; // Pre-processing long start = System.currentTimeMillis(); pre_processLine(line); long mid = System.currentTimeMillis(); System.out.println("Pre_process time was " + (mid - start) + " ms."); // Eseguo l'algoritmo // long start = System.currentTimeMillis(); processLine(line); long end = System.currentTimeMillis(); System.out.println("Process time was " + (end - mid) + " ms."); System.out.println("Total time was " + (end - start) + " ms."); iterator.close(); // Passo i risultati al grafico final JFreeChart chart = ChartFactory.createXYLineChart(null, null, null, dataset, PlotOrientation.VERTICAL, false, true, true); // Imposto il renderer XYSplineRenderer my_renderer = new XYSplineRenderer(); // my_renderer.setBaseShapesVisible(false); my_renderer.setBaseToolTipGenerator(chart.getXYPlot().getRenderer().getBaseToolTipGenerator()); chart.getXYPlot().setRenderer(my_renderer); // Display del grafico in un panel final ChartPanel jPanelChart = new ChartPanel(chart); jPanelChart.setPreferredSize(new java.awt.Dimension(500, 300)); jPanelChart.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.Color.gray, 1)); addOutputChart(GRAPH, Sextante.getText("Profile"), jPanelChart); return !m_Task.isCanceled(); }
From source file:edu.cudenver.bios.chartsvc.resource.ScatterPlotResource.java
/** * Create a JFreeChart object from the chart specification. JFreechart provides * functionality to render 2D scatter plots as jpeg images * //from ww w. java 2s .co m * @param chart chart specification object * @return JFreeChart object * @throws ResourceException */ private JFreeChart buildScatterPlot(Chart chart) throws ResourceException { ArrayList<LineStyle> lineStyleList = chart.getLineStyleList(); float dashedLength = 1.0f; float spaceLength = 1.0f; float thickness = 1.0f; // the first series is treated as the x values if (chart.getSeries() == null || chart.getSeries().size() <= 0) throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST, "No data series specified"); // create the jfree chart series XYSeriesCollection chartData = new XYSeriesCollection(); // use a spline renderer to make the connecting lines smooth XYSplineRenderer rend = new XYSplineRenderer(); int seriesIdx = 0; for (Series series : chart.getSeries()) { XYSeries xySeries = new XYSeries(series.getLabel()); List<Double> xList = series.getXCoordinates(); List<Double> yList = series.getYCoordinates(); if (xList != null && yList != null && xList.size() == yList.size()) { for (int i = 0; i < xList.size(); i++) { xySeries.add(xList.get(i), yList.get(i)); } } if (seriesIdx >= 0 && seriesIdx < lineStyleList.size()) { LineStyle lineStyle = lineStyleList.get(seriesIdx); dashedLength = (float) lineStyle.getDashLength(); spaceLength = (float) lineStyle.getSpaceLength(); thickness = (float) lineStyle.getWidth(); } else { dashedLength = 1.0f; spaceLength = 1.0f; thickness = 1.0f; } // set the line style rend.setSeriesPaint(seriesIdx, Color.BLACK); if (seriesIdx >= 0) { /*rend.setSeriesStroke(seriesIdx, new BasicStroke(2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] {(float) seriesIdx, (float) 2*seriesIdx}, 0.0f));*/ rend.setSeriesStroke(seriesIdx, new BasicStroke(thickness, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND, 1.0f, new float[] { dashedLength, spaceLength }, 0.0f)); } // add the series to the data set chartData.addSeries(xySeries); seriesIdx++; } // turn off shapes displayed at each data point to make a smooth curve rend.setBaseShapesVisible(false); // Create the line chart NumberAxis xAxis = new NumberAxis(); xAxis.setAutoRangeIncludesZero(false); if (chart.getXAxis() != null) { Axis xAxisSpec = chart.getXAxis(); xAxis.setLabel(xAxisSpec.getLabel()); if (!Double.isNaN(xAxisSpec.getRangeMin()) && !Double.isNaN(xAxisSpec.getRangeMax())) { xAxis.setRange(xAxisSpec.getRangeMin(), xAxisSpec.getRangeMax()); } } NumberAxis yAxis = new NumberAxis(); if (chart.getYAxis() != null) { Axis yAxisSpec = chart.getYAxis(); yAxis.setLabel(chart.getYAxis().getLabel()); if (!Double.isNaN(yAxisSpec.getRangeMin()) && !Double.isNaN(yAxisSpec.getRangeMax())) { xAxis.setRange(yAxisSpec.getRangeMin(), yAxisSpec.getRangeMax()); } } XYPlot plot = new XYPlot((XYDataset) chartData, xAxis, yAxis, rend); plot.setDomainGridlinesVisible(false); plot.setRangeGridlinesVisible(false); JFreeChart renderedChart = new JFreeChart(chart.getTitle(), JFreeChart.DEFAULT_TITLE_FONT, plot, false); renderedChart.setBackgroundPaint(Color.WHITE); if (chart.hasLegend()) { LegendTitle legend = new LegendTitle(plot, new ColumnArrangement(), new ColumnArrangement()); legend.setFrame(BlockBorder.NONE); legend.setPosition(RectangleEdge.BOTTOM); renderedChart.addLegend(legend); } return renderedChart; }
From source file:com.jbombardier.console.charts.XYTimeChartPanel.java
public void setSplineRenderer(boolean splineRenderer) { if (splineRenderer) { xyplot.setRenderer(new XYSplineRenderer()); } else {/*from w w w.j av a 2s . co m*/ xyplot.setRenderer(new XYLineAndShapeRenderer()); } }
From source file:JQGraphicModule.QueryTableApp.java
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: ChartPanel panel;/*w w w. ja va 2 s . com*/ JFreeChart chart = null; if (l.isSelected()) { // linear chart int validar = 1; XYSplineRenderer renderer = new XYSplineRenderer(); XYSeriesCollection dataset = new XYSeriesCollection(); XYSeries serie = new XYSeries("Data"); XYPlot plot; lineas.removeAll(); try { for (int f = 0; f < 6; f++) { serie.add(Float.parseFloat(String.valueOf(datos.getValueAt(f, 0))), Float.parseFloat(String.valueOf(datos.getValueAt(f, 1)))); } } catch (Exception e) { validar = 0; System.out.println("Cannot create data series for line graph"); } // end catch if (validar == 1) { dataset.addSeries(serie); plot = new XYPlot(dataset, x, y, rederer); chart = new JFreeChart(plot); chart.setTitle("Line chart"); } else { JOptionPane.showMessageDialog(this, "You should fill the table with data"); } } else { if (b.isSelected()) { // bar chart DefaultCategoryDataset data = new DefaultCategoryDataset(); // TODO: finish the bar chart } else { // pir chart } // end else } panel = new ChartPanel(chart); panel.setBounds(5, 10, 410, 350); if (l.isSelected()) { lineas.add(panel); lineas.repaint(); } else { if (b.isSelected()) { //bar chart } //end if else { // pie chart } // end else } //end else }
From source file:raspihomeapp.ParamForm.java
public void Plotxy() { XYSeries series1 = new XYSeries("Punkte1"); series1.add(5, 0);/* w w w . jav a 2s. c om*/ series1.add(6, 6); series1.add(7, 11); series1.add(8, 22); series1.add(10, 55); XYSeries series2 = new XYSeries("Punkte2"); series2.add(5, 2); series2.add(6, 3); series2.add(7, 4); // Hinzufuegen von series1 und series2 zu der Datenmenge dataset XYSeriesCollection dataset2 = new XYSeriesCollection(); dataset2.addSeries(series1); dataset2.addSeries(series2); XYSplineRenderer dot = new XYSplineRenderer(); NumberAxis xax = new NumberAxis("x"); NumberAxis yax = new NumberAxis("y"); //xax.setLabelPaint(Color.WHITE); DateAxis taxis = new DateAxis("t"); taxis.setDateFormatOverride(new SimpleDateFormat("dd-MM")); XYPlot plot = new XYPlot(dataset2, taxis, yax, dot); //plot.setBackgroundPaint(Color.BLACK); //plot.setRangeGridlinePaint(Color.GRAY); JFreeChart chart2 = new JFreeChart(" Test ", plot); //chart2.setBackgroundPaint(Color.BLACK); ChartPanel chartPanel2 = new ChartPanel(chart2); chartPanel2.setMouseZoomable(true, false); jPanel4.setLayout(new BorderLayout()); jPanel4.add(chartPanel2, BorderLayout.CENTER); //setContentPane(chartPanel2); }
From source file:br.ufrgs.enq.jcosmo.test.VLEdiagrams.java
@SuppressWarnings("deprecation") public JPanel calcMethanolMethilAcetate() throws Exception { super.setTitle("P vs x1"); double T = 25; COSMOSACDataBase db = COSMOSACDataBase.getInstance(); COSMOSACCompound comps[] = new COSMOSACCompound[2]; comps[0] = db.getComp("methanol"); comps[1] = db.getComp("methyl-acetate"); COSMOSAC cosmosac = new COSMOSAC(); cosmosac.setComponents(comps);/*from w w w . j a v a2s . co m*/ cosmosac.setTemperature(T + 273.15); double[] x1 = new double[n]; double[] x2 = new double[n]; double[] gamma1 = new double[n]; double[] gamma2 = new double[n]; double[] z = new double[2]; double[] lnGamma = new double[2]; z[0] = 0.00; int j = 0; while (z[0] < 1.0001) { z[1] = 1 - z[0]; x1[j] = z[0]; x2[j] = z[1]; cosmosac.setComposition(z); cosmosac.activityCoefficient(lnGamma); gamma1[j] = Math.exp(lnGamma[0]); gamma2[j] = Math.exp(lnGamma[1]); z[0] += 0.05; j++; } double[][] parAntoine = new double[3][3]; parAntoine[0][0] = 16.5785; parAntoine[0][1] = 3638.27; parAntoine[0][2] = 239.500; parAntoine[1][0] = 14.2456; parAntoine[1][1] = 2662.78; parAntoine[1][2] = 219.690; double[] Psat = pSat(parAntoine, T); double[] P = calcPx(x1, x2, gamma1, gamma2, Psat); double[] y1 = calcY(x1, gamma1, Psat, P); XYPlot plot2; XYSeriesCollection dataset = new XYSeriesCollection(); XYSeries liq = new XYSeries("liquid"); XYSeries vap = new XYSeries("vapor"); XYSeries raoult = new XYSeries("Raoult's Law"); for (int i = 0; i < n; i++) { liq.add(x1[i], P[i]); vap.add(y1[i], P[i]); } raoult.add(0, Psat[1]); raoult.add(1, Psat[0]); dataset.addSeries(liq); dataset.addSeries(vap); dataset.addSeries(raoult); JFreeChart chart = ChartFactory.createXYLineChart(null, "Mole Fraction: x1, y1", "P/KPa", null, PlotOrientation.VERTICAL, true, true, false); plot2 = (XYPlot) chart.getPlot(); plot2.getDomainAxis().setRange(new Range(0.0, 1.0)); plot2.getRangeAxis().setRange(new Range(15.0, 30.0)); plot2.setDataset(dataset); XYSplineRenderer r = new XYSplineRenderer(); BasicStroke stroke = new BasicStroke(2f); r.setStroke(stroke); plot2.setRenderer(r); r.setBaseShapesVisible(false); ChartPanel chartPanel = new ChartPanel(chart); JPanel jp = new JPanel(new BorderLayout()); jp.add(chartPanel, BorderLayout.CENTER); add(jp); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 500); return jp; }
From source file:no.uio.medicine.virsurveillance.charts.XYLineChart_AWT.java
public void updateChartDataSoftLine() { this.printable = false; if (dataPoints.size() != xAxis.size() && dataPoints.size() != titles.size()) { System.out.println("Error: Data size not match"); }/*from ww w .ja v a 2s .c o m*/ JFreeChart xylineChart = ChartFactory.createXYLineChart(chartTitle, this.yAxisTitle, this.xAxisTitle, createDataset(dataPoints, xAxis, titles), PlotOrientation.VERTICAL, true, true, false); chartPanel = new ChartPanel(xylineChart); chartPanel.setPreferredSize(new java.awt.Dimension(800, 500)); plot = xylineChart.getXYPlot(); renderer = new XYSplineRenderer(); for (int i = 0; i < dataPoints.size(); i++) { renderer.setSeriesPaint(i, getColor(i)); } //renderer.setSeriesStroke(0, new BasicStroke(4.0f)); //renderer.setSeriesStroke(1, new BasicStroke(3.0f)); //renderer.setSeriesStroke(2, new BasicStroke(2.0f)); plot.setRenderer(renderer); setContentPane(chartPanel); this.pack(); this.setVisible(true); this.printable = true; this.setDefaultCloseOperation(HIDE_ON_CLOSE); }