View Full Version : [java] Disegnare un semplice grafico
franksisca
02-12-2006, 09:19
Ragazzi, il grafico che devo disegnare è questo:
strategia
| *
| *
| *
|
|__________________numero partite
mi dite come faccio ad implementarlo, magari mettendo pure i nomi e le spaziature sugli assi???
GRAZIE
Ragazzi, il grafico che devo disegnare è questo:
strategia
| *
| *
| *
|
|__________________numero partite
mi dite come faccio ad implementarlo, magari mettendo pure i nomi e le spaziature sugli assi???
GRAZIEPuoi utilizzare librerie apposite per la gestione di grafici, vedi ad esempio JFreeChart (http://www.jfree.org/jfreechart/index.html) (io ho già avuto modo di usarla, ti assicuro che è molto valida). Ma ce ne sono anche altre, che però non conosco.
Oppure si può seguire la strada "fai da te": estendi JComponent, fai l'override del metodo paintComponent e disegni tu il grafico usando le API di Java2D.
franksisca
02-12-2006, 17:54
Puoi utilizzare librerie apposite per la gestione di grafici, vedi ad esempio JFreeChart (http://www.jfree.org/jfreechart/index.html) (io ho già avuto modo di usarla, ti assicuro che è molto valida). Ma ce ne sono anche altre, che però non conosco.
Oppure si può seguire la strada "fai da te": estendi JComponent, fai l'override del metodo paintComponent e disegni tu il grafico usando le API di Java2D.
scusa, se rispondo solo ora.......JFreeChart la conosco, ma mi servirebbe un esempietto pratico pratico, perchè lunedì ho la consegna della tesi e non ho il tempo di leggermi nulla(mia manca tutta la fase di analisi dei risultati, fatta tramite grafici).
scusa, se rispondo solo ora.......JFreeChart la conosco, ma mi servirebbe un esempietto pratico pratico, perchè lunedì ho la consegna della tesi e non ho il tempo di leggermi nulla(mia manca tutta la fase di analisi dei risultati, fatta tramite grafici).Quindi vuoi usare JFreeChart o l'approccio "fai da te"???
franksisca
02-12-2006, 18:31
Quindi vuoi usare JFreeChart o l'approccio "fai da te"???
il più veloce, mi fido ciecamente di te:D:D:D
Ecco un esempio di utilizzo di JFreeChart per realizzare un grafico "a pallini":
import java.awt.*;
import java.awt.geom.*;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.data.xy.*;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class GraficoPunti extends ApplicationFrame
{
public GraficoPunti (String title, double[][] punti)
{
super (title);
//---- Creazione dataset ----
XYSeries series1 = new XYSeries ("Serie 1");
for (int i = 0; i < punti.length; i++)
series1.add (punti[i][0], punti[i][1]);
XYSeriesCollection dataset = new XYSeriesCollection ();
dataset.addSeries (series1);
//---- Creazione grafico ----
JFreeChart chart = ChartFactory.createScatterPlot (
"Titolo del grafico",
"Asse X",
"Asse Y",
dataset,
PlotOrientation.VERTICAL,
true,
true,
false);
XYPlot plot = (XYPlot) chart.getPlot ();
XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer (false, true);
renderer.setDrawOutlines (false);
renderer.setUseFillPaint (true);
renderer.setFillPaint (Color.blue);
renderer.setShape (new Ellipse2D.Double (-5, -5, 10, 10));
plot.setRenderer (renderer);
//---- Gestione layout ----
ChartPanel chartPanel = new ChartPanel (chart);
chartPanel.setPreferredSize (new Dimension (500, 300));
setContentPane (chartPanel);
}
public static void main (String[] args)
{
double[][] punti = { {1.0,5.0}, {2.0,10.0}, {3.0,7.0}, {4.0,9.0} };
GraficoPunti grafico = new GraficoPunti ("TITOLO", punti);
grafico.pack ();
RefineryUtilities.centerFrameOnScreen (grafico);
grafico.setVisible (true);
}
}Si ottiene questo grafico:
http://img152.imageshack.us/img152/9947/graficopalliniio8.th.png (http://img152.imageshack.us/my.php?image=graficopalliniio8.png)
Diciture di testo, colori, dimensioni, ecc... sono facilmente configurabili nel sorgente.
franksisca
04-12-2006, 10:23
ok, grazie mille, appena possibile provo e vedo se mi crea problemi.
p.s.
per implementare la libreria, basta che la metto nello stesso package???
oppure, per evitare problemi la metto nella classe di java????
per implementare la libreria, basta che la metto nello stesso package???
oppure, per evitare problemi la metto nella classe di java????Per usare JFreeChart, devi scaricare lo zip di JFreeChart (jfreechart-X.X.X.zip) e poi mettere in CLASSPATH i seguenti file che sono sotto la directory 'lib' (vedi nello zip):
- jfreechart-X.X.X.jar
- jcommon-X.X.X.jar
franksisca
04-12-2006, 10:29
Per usare JFreeChart, devi scaricare lo zip di JFreeChart (jfreechart-X.X.X.zip) e poi mettere in CLASSPATH i seguenti file che sono sotto la directory 'lib' (vedi nello zip):
- jfreechart-X.X.X.jar
- jcommon-X.X.X.jar
ok, grazie mille.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.