IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

[JFreeChart] Modification des graduations d'un axe


Sujet :

2D Java

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut [JFreeChart] Modification des graduations d'un axe
    Bonjour,

    J'ai découvert JFreeChart hier, c'est super puissant, et c'est facile de faire un graphe. Sauf que, quand on veut un peu le personnaliser, ça se complique.

    Voici mon problème, je trace un LineGraph composé d'une centaine de points. J'aimerais que sous l'axe des abscisses (le temps), on puisse voir des dates espacées à intervalle régulier (par exemple 5 ou 10 graduations), au lieu d'avoir un gros paté parce que dans mon cas actuel, j'affiche la date qui correspond à tous les points. Je ne trouve pas où je peux paramétrer cela.

    Si quelqu'un a déjà fait ça, merci pour les infos !!!

  2. #2
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Points : 1 937
    Points
    1 937
    Par défaut
    Perso j'ai utilise un DateAxis et il ne m'affiche que les dates lisibles .. dans mon cas ca veut dire que 6 ou 7 dates sur l'interval car j'affiche tout de l'annee aux minutes ..

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        DateAxis dAxis = new DateAxis("Date");
        dAxis.setDateFormatOverride(new SimpleDateFormat("yyyy/MM/dd HH:mm"));
    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Merci bulbo,

    Bon j'ai récupéré un exemple de code où était créé un TimeSeriesChart avec en abscisse un TimeSeriesCollection.

    J'ai adapté mon exemple en utilisant ça et ça marche beaucoup mieux !

    Des extraits de mon code en vrac (j'ai plusieurs classes) pour ceux qui veulent tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    public TimeSeriesCollection getDataset(String codeIsin) throws Exception {
    		TimeSeries s1 = new TimeSeries("Performance", Day.class);
    		Random rd = new Random();
    		// Année
    		for (int annee = 2003; annee < 2005; annee++) {
    			// Mois
    			for (int mois = 1; mois <= 12; mois++) {
    				s1.add(new Day(new GregorianCalendar(annee, mois, 15).getTime()), rd.nextInt(1000));
    			}
    		}
     
            TimeSeriesCollection dataset = new TimeSeriesCollection();
            dataset.addSeries(s1);
            dataset.setDomainIsPointsInTime(true);
     
    		return dataset;
    	}
     
     
    public JFreeChart getTimeSeriesChart() {
    		// Création du diagramme
    		diagramme = ChartFactory.createTimeSeriesChart(titre, null, null, getDataset("toto"), false, true, false);
    		diagramme.setBackgroundPaint(java.awt.Color.white);
     
    		return diagramme;
    //		return ChartFactory.createLineChart(titre, "", "", dataset, PlotOrientation.VERTICAL, true, true, false);
    	}
     
    public TestLineChart() {
    		addWindowListener(new WindowAdapter() {
    			public void windowClosing(WindowEvent e) {
    				dispose();
    				System.exit(0);
    			}
    		});
    		pnl = new JPanel(new BorderLayout());
    		setContentPane(pnl);
    		setSize(400, 300);
     
    		ChartPanel cPanel1 = new ChartPanel(getTimeSeriesChart());
     
    		pnl.add(cPanel1);
    	}
     
    	public static void main(String[] args) {
    		TestLineChart tlc = new TestLineChart();
    		tlc.setVisible(true);
    	}
    J'utilise des dates et au début j'utilisais un LineChart et je n'avais d'affichage des dates sur l'axe des abscisses. En utilisant les timeSeries, ça marche.

    Merci pour tes indications bulbo.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme axe des graduation avec JFreeChart
    Par erkan37 dans le forum 2D
    Réponses: 1
    Dernier message: 28/04/2008, 10h54
  2. Réponses: 2
    Dernier message: 19/12/2007, 17h25
  3. Réponses: 1
    Dernier message: 14/06/2007, 21h37
  4. Réponses: 3
    Dernier message: 15/04/2004, 08h44
  5. [VB6] Modification des axes d'un composant Chart
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/05/2003, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo