MSCHART

DD05 Messages postés 53 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 11 juin 2010 - 22 févr. 2007 à 21:02
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

7 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
23 févr. 2007 à 09:04
Salut,


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

A+
Exploreur
0
DD05 Messages postés 53 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 11 juin 2010 1
23 févr. 2007 à 14:46
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
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
23 févr. 2007 à 15:02
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


 


 
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 févr. 2007 à 17:29
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DD05 Messages postés 53 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 11 juin 2010 1
24 févr. 2007 à 18:22
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
0
oudzem Messages postés 1 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 10 juin 2010
10 juin 2010 à 11:24
Bonjour à tous comment fait on pour avoir un dégradé pour le fond du graph

d'avance merci!
0
DD05 Messages postés 53 Date d'inscription mercredi 11 août 2004 Statut Membre Dernière intervention 11 juin 2010 1
10 juin 2010 à 22:19
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
0
Rejoignez-nous