Publié le 23/08/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
0 commentaires

Construire des graphiques avec FreeChart

JFreeChat est une librairie OpenSource de construction de graphique de bonne qualité. A partir d'une base de donnée par exemple, les API de ce framework sont faciles à utiliser tout type de diagramme.

Dessiner un graphique avec JAVA

Les graphiques obtenus peuvent ętre affichés dans les composants Swing ou alors exportés vers une image de format PNG, JPEG ou PDF.
Comment utiliser la librairie graphique ? Ci-dessous le code source JAVA a utiliser
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.util.Rotation;
 
public class PieChart extends JFrame {
 
    private static final long serialVersionUID = 1L;
 
    public PieChart(String applicationTitle, String chartTitle) {
        super(applicationTitle);
        //Creer le dataset contenant les données
        PieDataset dataset = createDataset();
        //Creer le composant graphique
        JFreeChart chart = createChart(dataset, chartTitle);
        //Attacher le graph au panel
        ChartPanel chartPanel = new ChartPanel(chart);
        //Fixer la taille par défaut
        chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
        //Ajouter le panel au JFrame
        setContentPane(chartPanel);
    }
 
    /**
     * Exemple de Dataset
     * @return 
     */
    private PieDataset createDataset() {
        DefaultPieDataset result = new DefaultPieDataset();
        result.setValue("Linux", 33);
        result.setValue("Mac", 15);
        result.setValue("Windows", 49);
        return result;
    }
 
/**
 * Dessiner le graph
 * @param dataset
 * @param title
 * @return 
 */
    private JFreeChart createChart(PieDataset dataset, String title) {
        JFreeChart chart = ChartFactory.createPieChart3D(title, // chart title
                dataset, // data
                true, // include legend
                true,
                false);
        PiePlot3D plot = (PiePlot3D) chart.getPlot();
        plot.setStartAngle(290);
        plot.setDirection(Rotation.CLOCKWISE);
        plot.setForegroundAlpha(0.5f);
        return chart;
    }
/**
 * Exemple
 * @param args 
 */
    public static void main(String[] args) {
           PieChart demo = new PieChart("Comparaison", "Répartition des systemes d'exploitation");
           demo.pack();
           demo.setVisible(true);
    }
}

Aspect des graphiques générés

Jfree_chart2Jfree_chart








Vous souhaitez dessiner des histogrammes, courbes ou des camemberts avec FreeChart ?
Découvrez plus d'informations sur la librairie FreeChart

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - outils
Mise a jour
23/08/2010
Visualisation
vu 2775 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 263 articles
|BIO_PSEUDO|
Commentaires récents

Publié par piranhas dans java

bonjour, je veux te signaler que la piece jointe est fausse car il n\'y pas de liaison entre le modele et la vue, toutes le information passe par le controlleur.

Publié par Fokoneh dans java

Je teste d'abord, Je reviens

Publié par troops28 dans CMS

C un truc qui va plaire ca ;) enfin j'espere
En ajoutant :
if ColWidths[i] < Canvas.TextWidth(strTemp) then ColWidths[i] := Canvas.TextWidth(strTemp)+10;

Dans la procedure LoadStr...

Publié par Vincent dans tuto

Sympa votre petit script :) Oui il existe des bibliotheques deja toutes faites mais elles sont en general 50x plus lourdes que ce petit bout de code qui fait exactement ce qu'il faut. En plus votr...

Publié par Tchat dans news

Analyses interessantes.
J'ai constate aussi des comportements etranges de Google concernant les placements des sites sur leurs requetes.
Par contre j'ai remarque que Google ne tient pl...