|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
[java] Disegnare un semplice grafico
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
__________________
My gaming placement |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
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.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
__________________
My gaming placement |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
![]() ![]() ![]()
__________________
My gaming placement |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Ecco un esempio di utilizzo di JFreeChart per realizzare un grafico "a pallini":
Codice:
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); } } ![]() Diciture di testo, colori, dimensioni, ecc... sono facilmente configurabili nel sorgente.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
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????
__________________
My gaming placement |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
- jfreechart-X.X.X.jar - jcommon-X.X.X.jar
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
__________________
My gaming placement |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:47.