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

VB.NET Discussion :

Créer un deuxième axe sur un graphe avec des correspondances par rapport au 1er axe


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Créer un deuxième axe sur un graphe avec des correspondances par rapport au 1er axe
    Bonjour,
    J'aimerais solliciter votre aide s'il vous plait: mon problème est que je veux construire sur un même graphe un 2e axe mais dont les valeurs correspondent aux valeurs du 1er axe; plus clairement je dois avoir :
    Axe 1 : "Axe élévation Température" et Axe 2: " Axe pourcentage élévation température". Mon problème est donc d'avoir pour chaque y1(i) de l'axe 1 la même ordonnées (qu'ils soient sur la même ligne ) sur l'axe 2 mais en Pourcentage; on aura donc sur l'axe 1 par exemple 5 ° et sur la même ligne mais sur l'axe 2 maintenant 15 % par exemple. Merci

  2. #2
    Membre expérimenté Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Points : 1 461
    Points
    1 461
    Par défaut
    Bonjour,
    Tout d'abord montre un peu de code, explique ce que tu as tenté, et pourquoi tu penses que ça n'a pas marché.
    Ensuite : une température n'est généralement pas balisé entre deux valeurs, le pourcentage doit donc être par rapport à un intervalle précis de température, et si tu as plusieurs points sur ton graphique, il faut que cette référence soit la même pour tout les points.
    Sinon : mettre un deuxième axe est très facile en design, l'option est accessible si j'ai bonne mémoire, ensuite pour coordonnée les deux axes il faut gérer le maximum de l'un en fonction de l'autre.
    Expert en recherche google caféinomane

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Ok merci d'avoir répondu. Alors voici ma démarche: Je prend juste un exemple avec des températures données aléatoirement: j'ai d'abord crée mon premier chart et je lui ai assigné le chartArea et quelques points qui correspondent à des températures. Ensuite je crée mon 2e axe. C'est la que sa se complique un peu. Comme tu l'a si bien dit le pourcentage est calculé par rapport à un intervalle; dans mon cas la température initiale (c'est à dire la borne inférieure de mon intervalle) n'est pas égal à 0 , elle peut commencer à n'importe quelle valeur (20 par exemple) et la température finale 35 par exemple. Du coup j'ai déterminé la formule qui permet de passer de la température au pourcentage qui est la suivante: soit y1(axe 1) élément de l'intervalle [a,b] alors y2(i)=%y1(i)= [(y1(i)-a)*100%]/(b-a) . Le problème c'est que sur le 2e axe je ne pourrai pas faire correspondre le y1(i) avec le y2(i) car il n'auront pas la même valeur vue que l'intervalle n'est pas [0,100]. Voici mon esquisse de code. Je suis bloqué au niveau du 2e axe.


    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
    50
    51
    52
    53
    54
    'Créer un Chart
            Dim Chart2 As New Chart
            'Il ne contient rien
     
            ' Créer ChartArea (zone graphique)
            Dim ChartArea1 As New ChartArea()
     
            ' Ajouter le  Chart Area à la Collection ChartAreas du  Chart
            Chart2.ChartAreas.Add(ChartArea1)
     
            ' Créer la data series (qui contiendront les DataPoint)
            Dim series1 As New Series()
     
     
            ' Ajouter des points à la collections Points de la première series
            series1.Points.Add(20)
            series1.Points.Add(26)
            series1.Points.Add(27)
            series1.Points.Add(30)
            series1.Points.Add(35)    
     
            'On indique d'afficher ces Series sur le ChartArea1
            series1.ChartArea = "ChartArea1"
     
            ' Ajouter les series à la collection Series du chart
            Chart2.Series.Add(series1)
     
            ' Positionner le controle Chart
            Chart2.Location = New System.Drawing.Point(15, 45)
     
            ' Dimensionner le Chart
            Chart2.Size = New System.Drawing.Size(360, 260)
     
            ' Ajouter le chart à la form
            Me.Controls.Add(Chart2)
     
    ' Second Y axis
            Chart2.ChartAreas(0).AxisY2.Enabled = AxisEnabled.True
            ' On affiche quelques valeurs 'j'ai juste mis des valeurs au hasard ici sans faire le calcul vu que je ne savais pas trop comment il allait considérer mon résultat
            'Chart2.Series(0).Points(0).YValues(0) = 10
            'Chart2.Series(0).Points(1).YValues(0) = 15
            'Chart2.Series(0).Points(2).YValues(0) = 20
            'Chart2.Series(0).Points(2).YValues(0) = 25
            'Chart2.Series(0).Points(2).YValues(0) = 30
     
            ' on determine les maximuns pour les 2 axes Y.
            Chart2.ChartAreas(0).AxisY.Maximum = 20
            Chart2.ChartAreas(0).AxisY2.Maximum = 20
     
            ' Titres pour les Y axes
            Chart1.ChartAreas(0).AxisY.Title = "Température"
            Chart1.ChartAreas(0).AxisY2.Title = "Pourcentage Augmentation"
     
             Chart1.ChartAreas(0).RecalculateAxesScale()

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Bonjour,
    J'ai pu résoudre mon problème. Il suffit juste de travailler avec les valeurs minimales et maximales de chaque axe. Pour le 1er axe il faut considérer le minimun de l'axe comme la valeur minimale de mes données et le maximun de l'axe comme la valeur maximale de mes données. Pour le deuxième axe on définit le min et le max respectivement à zéro et 100. La conversion se fait automatiquement entre les 2 axes. Du coup si j'ai 20 degrés par exemple comme valeur minimale de mes données cela correspondra à 0% dans mon 2e axe.Merci

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 27/02/2015, 14h14
  2. Modification d'un axe sur un graphe
    Par bendesarts dans le forum MATLAB
    Réponses: 5
    Dernier message: 23/11/2010, 10h00
  3. Créer un graph avec des données variables
    Par Damien.020 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2010, 09h52
  4. Créer un segment vertical sur un graphe
    Par Jay_2008 dans le forum LabVIEW
    Réponses: 7
    Dernier message: 28/05/2008, 17h02

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