MSCHART

Messages postés
53
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
11 juin 2010
- - Dernière réponse : DD05
Messages postés
53
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
11 juin 2010
- 10 juin 2010 à 22:19
Bonjour,


Est-il possible de tracer une courbe avec MSCHART uniquement dont le tracé pourrait comporter différentes couleurs ?


Par exemple, la première moitié de la courbe est en rouge et la deuxième en bleu.


Merci


DD05
Afficher la suite 

7 réponses

Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
0
Merci
Salut,


A défaut de pouvoir te répondre par oui ou non(car jamais utilisé), voici un lien sur ce composant..

A+
Exploreur
Commenter la réponse de cs_Exploreur
Messages postés
53
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
11 juin 2010
1
0
Merci
Merci Exploreur pour ton lien. Je connaissais. Je n'y ai pas trouvé de réponse à mon problème.

Je crois que ce que je veux faire est impossible avec un MSCHART.

DD05
Commenter la réponse de DD05
Messages postés
4824
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
0
Merci
Salut,


Ben...Tant pis alors...Par contre je pense à un truc, je dis un truc car cela relève de la bidouille(si cela est effectivement pas faisable avec le MsChart).
Quand tu dessine ta courbe, tu en connais toutes les coordonnées..Tu peux peut-être la sectionnée en 2 ?
Je m'explique, donc imaginons que tu es 1 courbe en rouge qui parte du point A vers le point B, et une courbe en bleu qui parte de la fin de ta première courbe et qui fini ton tracé ? Une idée..lol
Ou jouer avec une superposition de courbes..

A+
Exploreur


 


 
Commenter la réponse de cs_Exploreur
Messages postés
13298
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
28
0
Merci
salut,
faire une courbe bi-color, peut-être pas.
par contre çà doit être faisable de scinder la courbe, donc la moitié d'une couleur et une 2e faisant l'autre moitié de la courbe, d'une autre couleur
on ne devrait pas voir la différence

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Commenter la réponse de PCPT
Messages postés
53
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
11 juin 2010
1
0
Merci
J'ai réussi à créer ma courbe multi couleurs grâce à la "bidouille".

La première partie de ma courbe est rouge. La deuxième est bleue et la troisième est jaune.

J'ai créé 3 courbes identiques comportant chaucne le même nombre de
points. Et oui, avec le Mschart, il n'est possible de tracer plusieurs
courbes

en même temps que si elles ont le même nombre de points.

Il faut donc cacher la partie de la courbe que l'on ne veut pas voir et ne colorier que la partie qui nous intéresse.

La solution pour cacher une partie des courbes je l'ai trouvée sur le site suivant : http://support.microsoft.com/kb/177685/fr


Exemple : Courbe Y=X² de 3 couleurs pour X de 1 à 660

De 1 à 300, La courbe est rouge.

De 301 à 360, la courbe est bleue.

De 361 à 660, la courbe est jaune.

Ouvrir un projet.

Placer sur la Form1 un MSChart1 et deux boutons : Command1 et Command2.

Dans la form1 placer le code suivant:


Private Sub Command1_Click()

Dim Tab_tracé(660, 3) As Double  ' Tableau de 660 valeurs et 3 colonnes contenant les ordonnées.

 For i = 1 To 660

  Tab_tracé(i, 1) = i *
i                
' Je remplis le tableau

 Next i

  With Form1.MSChart1

   .ColumnCount =
1                
' Nombre de courbes

    For i = 1 To
660             
     ' Boucle sur tous les points

     .Row =
i               
             ' Sélection du point
numéro i du tracé.

     .RowLabel =
i                   
' Valeurs affichées sur l'axe des X pour le point numéro i.

    
.Plot.SeriesCollection(1).DataPoints(-1).Brush.FillColor.Set 255, 0,
0   ' couleur de toute la courbe en rouge

     .Data = Tab_tracé(i, 1)  ' Tracé de la courbe        

    Next i

  End With

End Sub


Private Sub Command2_Click()

Dim Tab_tracé(660, 3) As Double  ' Tableau de 660 valeurs et 3 colonnes contenant les ordonnées.

 For i = 1 To 660

   If (i <= 300) Then

    Tab_tracé(i, 1) = i *
i                
' Je veux voir les 300 premiers points de la courbe 1 de 1 à 300 donc
je remplis le tableau

    Tab_tracé(i, 2) =
vbNull               
' Je ne veux pas voir les valeurs de la courbe 2 du point 1 au point 300

    Tab_tracé(i, 3) =
vbNull               
' Je ne veux pas voir les valeurs de la courbe 3 du point 1 au point 300

    If (i = 300)
Then                      
' Au point 300, la deuxième courbe démarre donc la valeur doit être
différente de null.

     Tab_tracé(i, 2) = i * i

    End If

   End If

   If (i > 300 And i <= 360) Then

    Tab_tracé(i, 1) = vbNull

    Tab_tracé(i, 2) = i * i

    Tab_tracé(i, 3) = vbNull

    If (i = 360)
Then                      
' Au point 360, la troisième courbe démarre donc la valeur doit être
différente de null.

     Tab_tracé(i, 3) = i * i

    End If

   End If

   If (i > 360) Then

    Tab_tracé(i, 1) = vbNull

    Tab_tracé(i, 2) = vbNull

    Tab_tracé(i, 3) = i * i

   End If

  Next i

  With Form1.MSChart1

   .ColumnCount =
3                
' Nombre de courbes

   For j = 1 To
3                  
' Boucle sur les 3 colonnes du tableau

    For i = 1 To
660               
' Boucle sur tous les points

     If (Tab_tracé(i, j) <> vbNull) Then

      dataflag = False

     Else

      dataflag = True

     End If

     .Row = i         ' Sélection du point numéro i du tracé.

     .RowLabel = i    ' Valeurs affichées sur l'axe des X pour le point numéro i.

    
.Plot.SeriesCollection(1).DataPoints(-1).Brush.FillColor.Set 255, 0,
0   ' couleur de la courbe 1 en rouge

    
.Plot.SeriesCollection(2).DataPoints(-1).Brush.FillColor.Set 0, 0,
255   ' couleur de la courbe 2 en bleu

    
.Plot.SeriesCollection(3).DataPoints(-1).Brush.FillColor.Set 255, 255,
0 ' couleur de la courbe 3 en jaune

     .DataGrid.SetData i, j, Tab_tracé(i, j),
dataflag     ' Tracé des 3 courbes de X=1 à 660. Si
dataflag est à False alors on voit le point de    
        

           
           
           
           
           
           
        ' la courbe. Si dataflag est à
True, on cache le point.

    Next i

   Next j

  End With

End Sub


Private Sub Form_Load()

Form1.Command1.Caption = "Mono couleur"

Form1.Command2.Caption = "Multi couleurs"

  With Form1.MSChart1        
              
          ' INITIALISATION DU MSChart1

     .RowCount =
660                                      
' Nombre de points de la courbe

     .chartType =
VtChChartType2dLine          
' Type de tracé = courbe 2D

  End With

End Sub
Commenter la réponse de DD05
Messages postés
1
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
10 juin 2010
0
Merci
Bonjour à tous comment fait on pour avoir un dégradé pour le fond du graph

d'avance merci!
Commenter la réponse de oudzem
Messages postés
53
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
11 juin 2010
1
0
Merci
Salut,

Je ne pense pas que cela soit possible en VB6, par contre en VB.NET c'est surement possible.

Sinon, tu peux utiliser le Picturebox pour tracer tes courbes. Le dégradé de couleur est possible dans ce cas.
http://www.vbfrance.com/codes/FAIRE-DEGRADER-COULEUR-DANS-PICTURE-BOX_5526.aspx

Pour info, en VB6 j'utilise MSChart1.Backdrop.Fill.Brush.FillColor.Set R, G, b pour changer la couleur de fond du Mschart.

Désolé de ne pas pouvoir t'apporter une réponse complète.

DD
Commenter la réponse de DD05