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] Couleur différente entre deux points


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 40
    Par défaut [JFreeChart] Couleur différente entre deux points
    bonjour,

    je travail avec "XYSeries" et ma question c'est:
    es que je peut affecter une couleur différente pour une ligne entre deux points dans la meme serie...

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Tu peux créer une classe qui hérite de StandardXYItemRenderer et dans laquelle tu redéfinis la méthode getItemPaint par exemple comme ceci :
    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
    public class CustomXYItemRenderer extends StandardXYItemRenderer
    {
    	public CustomXYItemRenderer()
    	{
    	}
     
    	public Paint getItemPaint(int i, int j)
    	{
    		XYDataset xyDataset = getPlot().getDataset();
    		double x = xyDataset.getXValue(i, j);
    		if (x > 5D & x <= 10D ) 
    			return Color.green;
    		else 
    			return Color.red;
    	}
    }
    Dans mon exemple, 5D et 10 D correspondent à des valeurs de X existantes dans la XYSeries.
    La ligne sera donc de couleur verte pour les valeurs de X comprises entre 5D et 10D.

    Et ensuite, tu fais appel à cette classe comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CustomXYItemRenderer customXYItemRenderer=new CustomXYItemRenderer() ;
    xyPlot.setRenderer(customXYItemRenderer) ;

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 40
    Par défaut


    t'est la meilleure ;-)

    merci!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Par défaut
    bonjour,

    juste une petite question :

    comment faire pour appliqué cette méthode a des points plutot qu'a une courbe ?

    je cherche depuis un petit moment mais je n'ai rien trouvé de convenable....

    merci

  5. #5
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 64
    Par défaut
    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
    public class CustomXYItemRenderer extends StandardXYItemRenderer
    {
    	public CustomXYItemRenderer()
    	{
    	}
     
    	public Paint getItemPaint(int i, int j)
    	{
    		XYDataset xyDataset = getPlot().getDataset();
    		double x = xyDataset.getXValue(i, j);
    		if (x = 10D ) 
    			return Color.green;
    		else 
    			return Color.red;
    	}
    }
    Ca devrait te retourner vert pour ton point d'abscisse 10, et rouge pour le reste.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 13
    Par défaut
    pour etre tout a fait précis il faut que j'affiche des ellipses de tailles et de couleurs différentes, pour cela je défini une shape (a l'interieur d'un mouse listener)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Ellipse2D.Double t;
     
    if (e.getClickCount() != 223)
    {
         t = new Ellipse2D.Double(0, 0, 4, 4);
     }
     else
     {
         t = new Ellipse2D.Double(0, 0, 20, 30);
     }
     
    rend.setShape(t);
    Le problème est que lorsque je défini un CustomRenderer comme décrit plus haut, mes modification sur la shape ne sont pas prises en compte....

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

Discussions similaires

  1. Compter pixels différents entre deux images
    Par hiccup dans le forum OpenGL
    Réponses: 5
    Dernier message: 13/03/2007, 14h26
  2. positionnement différents entre deux navigateurs
    Par darcy dans le forum Mise en page CSS
    Réponses: 11
    Dernier message: 27/11/2006, 15h46
  3. [Base de données Spatial] Distance entre deux points
    Par Pumpkins dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/11/2006, 12h18
  4. Statistiques différentes entre deux DBMS_STAT
    Par genio dans le forum Oracle
    Réponses: 12
    Dernier message: 20/10/2006, 14h09
  5. Calcul de distance entre deux points en WGS84
    Par marieR dans le forum Langage
    Réponses: 5
    Dernier message: 03/08/2006, 17h07

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