2013-05-23 3 views
10

Sto cercando di trovare alcune informazioni per un collaboratore sulla creazione di grafici con Java - specificatamente xy plot. Mi sono imbattuto in più librerie java ma non sono sicuro di quale di esse sia facile da imparare a usare/livello di difficoltà integrandolo in un'applicazione esistente.XY Plotting with Java

Quelli che ho incontrato sono: JFreeChart & JOpenChart

Ho anche guardato un po 'in questo elenco (non tutti hanno la capacità Trama XY): 10 Excellent Free Open Source Java Chart Library for Developers

C'è qualcuno con qualsiasi esperienza con qualcuno di questi sanno quale sarebbe il modo più semplice/veloce per imparare a usare?

risposta

12

Ho usato jfreechart 100 volte per diverse soluzioni. È facile da apprendere in quanto ha una Guida per lo sviluppatore e molti altri tutorial facili su Java2s.com. basta google e troverete molto di più Ecco una demo di XY serie

package org.jfree.chart.demo; 

import org.jfree.chart.ChartFactory; 
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.data.xy.XYSeries; 
import org.jfree.data.xy.XYSeriesCollection; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities; 


public class XYSeriesDemo extends ApplicationFrame { 

/** 
* A demonstration application showing an XY series containing a null value. 
* 
* @param title the frame title. 
*/ 
public XYSeriesDemo(final String title) { 

    super(title); 
    final XYSeries series = new XYSeries("Random Data"); 
    series.add(1.0, 500.2); 
    series.add(5.0, 694.1); 
    series.add(4.0, 100.0); 
    series.add(12.5, 734.4); 
    series.add(17.3, 453.2); 
    series.add(21.2, 500.2); 
    series.add(21.9, null); 
    series.add(25.6, 734.4); 
    series.add(30.0, 453.2); 
    final XYSeriesCollection data = new XYSeriesCollection(series); 
    final JFreeChart chart = ChartFactory.createXYLineChart(
     "XY Series Demo", 
     "X", 
     "Y", 
     data, 
     PlotOrientation.VERTICAL, 
     true, 
     true, 
     false 
    ); 

    final ChartPanel chartPanel = new ChartPanel(chart); 
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); 
    setContentPane(chartPanel); 

} 

// **************************************************************************** 
// * JFREECHART DEVELOPER GUIDE            * 
// * The JFreeChart Developer Guide, written by David Gilbert, is available * 
// * to purchase from Object Refinery Limited:        * 
// *                   * 
// * http://www.object-refinery.com/jfreechart/guide.html      * 
// *                   * 
// * Sales are used to provide funding for the JFreeChart project - please * 
// * support us so that we can continue developing free software.    * 
// **************************************************************************** 

/** 
* Starting point for the demonstration application. 
* 
* @param args ignored. 
*/ 
public static void main(final String[] args) { 

    final XYSeriesDemo demo = new XYSeriesDemo("XY Series Demo"); 
    demo.pack(); 
    RefineryUtilities.centerFrameOnScreen(demo); 
    demo.setVisible(true); 

} 

} 

enter image description here

+2

Wow! Una risposta +! Grazie mille - questo è esattamente il tipo di feedback che stavo cercando. – redhotspike

+2

Nel caso in cui sia necessario salvare il grafico su un file: ChartUtilities.saveChartAsPNG (nuovo file ("your_filename"), chart1, width, height); all'interno di un blocco catch try. – bikashg

1

Ho lavorato di più con le librerie specifiche di Android, ma posso dire di aver avuto una buona esperienza con JFreeChart. Ha una libreria piuttosto estesa in modo da poterla sempre espandere, ha una serie di demo con codice di esempio e tutorial sul web, e ha un buon forum di supporto. Provali, dai un'occhiata ad alcuni esempi e vedi se ti piace come è formattato.