Example usage for org.jfree.chart.renderer.xy XYSplineRenderer XYSplineRenderer

List of usage examples for org.jfree.chart.renderer.xy XYSplineRenderer XYSplineRenderer

Introduction

In this page you can find the example usage for org.jfree.chart.renderer.xy XYSplineRenderer XYSplineRenderer.

Prototype

public XYSplineRenderer() 

Source Link

Document

Creates a new instance with the precision attribute defaulting to 5 and no fill of the area 'under' the spline.

Usage

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);

}