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] Problème affichage abscisse


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 136
    Par défaut [JFreeChart] Problème affichage abscisse
    Bonjour,

    Voici mon problème : je crée un line chart en utilisant un DefaultCategoryDataset. A partir d'un certrain nombre de données a afficher ( > 10 ) les indications de valeurs sous l'axe des abcisses ne s'affichent plus (remplacés par "…" )
    - Est-il possible d'afficher la légende des axes des abscisse de maniere verticale, afin de gagner de la place ?
    - L'ideal serait qu'a partir d'un certain nombre de points, il n'y est que la légende d'une valeur sur deux ou sur trois qui s'affiche, afin qu'une légende soit tout de meme visible. Est-ce possible, et si oui, comment ?

    Merci d'avance

    Cordialement

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 136
    Par défaut
    J'ai trouvé la solution a la premiere partie de ma question :

    - Est-il possible d'afficher la légende des axes des abscisse de maniere verticale, afin de gagner de la place ?
    CategoryAxis axis = plot.getDomainAxis();

    axis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_90);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut
    Je suis également en train de réaliser ce que tu expliques dans ta 2ème question.

    Apparemment, il faudrait obtenir une référence sur le CategorieAxis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CategoryPlot plot = (CategoryPlot) chart.getCategoryPlot();		
    CategoryAxis cataxis = plot.getDomainAxis();
    En ayant préalablement redéfini la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    refreshTicks(Graphics2D arg0, AxisState arg1, Rectangle2D arg2,	RectangleEdge arg3)
    C'est dans cette méthode que tu devras modifier les "Ticks" pour n'en mettre qu'un sur 2. Je suis en train de le faire mais je ne l'ai pas encore testé.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut
    Je donne mon code, au cas où ça intéresserai quelqu'un...

    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
    @Override
    	public List refreshTicks(Graphics2D arg0, AxisState arg1, Rectangle2D arg2,	RectangleEdge arg3) {
     
    		List list = super.refreshTicks(arg0, arg1, arg2, arg3);
    		Iterator it = list.iterator();
     
    		List<Tick> tickList = new ArrayList<Tick>();
     
    		while (it.hasNext())
    		{
     
    			CategoryTick tick = (CategoryTick) it.next();
     
    			// creer le tick qu'il vous faut...
     
    			tickList.add(newTick);
     
    		} 
    		return tickList;
    	}

  5. #5
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    regarde par ici :
    http://www.developpez.net/forums/d73...t/#post4278271
    Tu transformera ton categoryDataset en XYDataset ( plus facile à manipuler ).

    En suite pour l'axe des X :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    plot = chart.getXYPlot();
    //mettre à la vertical
    plot.getDomainAxis(0).setVerticalTickLabels(true);
     
    //changer la Police
    plot.getDomainAxis(0).setTickLabelFont(
              newFont("Arial",Font.CENTER_BASELINE,14));
    Si tu mets une très grande police, seul 1 catégorie sur 3 sera affichée. Alors que si tu en mets une très petite, toutes les catégories seront affichées.

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/05/2015, 14h57
  2. Réponses: 0
    Dernier message: 03/05/2011, 14h20
  3. Problème affichage primitive
    Par goutbouyo dans le forum DirectX
    Réponses: 4
    Dernier message: 29/12/2004, 18h25
  4. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 14h50
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31

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