Créer un graphique à courbe en cloche, Excel VBA

Créer un graphique à courbe en cloche, Excel VBA

Créer un graphique en forme de courbe en cloche (courbe de Gauss) dans Excel à l’aide de VBA nécessite plusieurs étapes. L’idée est de créer une distribution normale, puis de l’afficher sous forme de graphique. Voici comment vous pouvez procéder étape par étape. 

  1. Créer les données

La courbe en cloche est une courbe de distribution normale. Pour la générer, nous allons créer des valeurs X (par exemple, -5 à +5), calculer les valeurs correspondantes Y en utilisant la fonction de densité de probabilité de la loi normale. 

La formule de la densité de probabilité pour une loi normale est la suivante : 

 f(x)=1 / σ.√(2.∏) × exp(−(x−μ)² / 2σ²)

où : 

  • μ est la moyenne (par exemple, 0), 
  • σ est l’écart-type (par exemple, 1), 
  • x est la variable indépendante. 
  1. Code VBA

Voici un code VBA détaillé pour créer ce graphique : 

Sub CreerCourbeGaussienne() 
    ' Déclaration des variables 
    Dim ws As Worksheet 
    Dim x As Double 
    Dim mu As Double, sigma As Double 
    Dim i As Long 
    Dim nPoints As Long 
    Dim rangeX As Range, rangeY As Range 
    ' Définir la feuille de travail 
    Set ws = ThisWorkbook.Sheets("Feuille1") 
    ' Initialiser les paramètres de la courbe normale 
    mu = 0 ' Moyenne 
    sigma = 1 ' Écart-type 
    nPoints = 100 ' Nombre de points à générer 
    ' Effacer les anciennes données 
    ws.Cells.Clear 
    ' Créer les données X et Y 
    For i = 1 To nPoints 
        x = (i - 1) * (10 / (nPoints - 1)) - 5 ' Générer X de -5 à +5 
        ws.Cells(i, 1).Value = x ' Placer X dans la colonne A 
        ws.Cells(i, 2).Value = (1 / (sigma * Sqr(2 * Application.Pi))) * Exp(-((x - mu) ^ 2) / (2 * sigma ^ 2)) ' Calculer Y (densité normale) 
    Next i 
    ' Définir les plages de données 
    Set rangeX = ws.Range(ws.Cells(1, 1), ws.Cells(nPoints, 1)) 
    Set rangeY = ws.Range(ws.Cells(1, 2), ws.Cells(nPoints, 2)) 
    ' Créer un graphique 
    Dim chartObj As ChartObject 
    Set chartObj = ws.ChartObjects.Add(Left:=100, Top:=100, Width:=600, Height:=400) 
    ' Ajouter un graphique de type courbe 
    chartObj.Chart.SetSourceData Source:=Union(rangeX, rangeY) 
    chartObj.Chart.ChartType = xlXYScatterSmooth ' Type de graphique : Courbe lissée 
    ' Ajouter un titre au graphique 
    chartObj.Chart.HasTitle = True 
    chartObj.Chart.ChartTitle.Text = "Courbe de Gaussienne (Distribution Normale)" 
    ' Ajouter un titre aux axes 
    chartObj.Chart.Axes(xlCategory, xlPrimary).HasTitle = True 
    chartObj.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "X (Valeurs)" 
    chartObj.Chart.Axes(xlValue, xlPrimary).HasTitle = True 
    chartObj.Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Densité de probabilité" 
End Sub

3. Explications du code

Déclaration des variables : 

  • ws: La feuille de calcul où seront créées les données. 
  • x, mu, sigma: Variables nécessaires pour calculer les valeurs de la distribution normale. mu est la moyenne et sigma est l’écart-type de la distribution. 
  • i: Un compteur pour la boucle qui génère les points de données. 
  • nPoints: Le nombre de points à générer pour tracer la courbe. 
  • rangeX, rangeY: Plages de données pour les valeurs X et Y à afficher dans le graphique. 

Création des données X et Y : 

  • Pour chaque point de la plage de valeurs X, on calcule la densité de probabilité correspondante en utilisant la formule de la distribution normale. 

Création du graphique : 

  • Un graphique de type XY Scatter Smooth est ajouté à la feuille de calcul. Ce type de graphique permet d’afficher des courbes lissées entre les points de données. 
  • Les données sont ensuite liées au graphique via SetSourceData. 

Personnalisation du graphique : 

  • Titre du graphique : « Courbe de Gaussienne (Distribution Normale) ». 
  • Titres des axes X et Y : indiquent respectivement les valeurs de X et la densité de probabilité. 

4. Exécution du code

  1. Ouvrez Excel et accédez à l’éditeur VBA (Alt + F11). 
  2. Créez un nouveau module (Insertion > Module). 
  3. Collez le code ci-dessus dans le module. 
  4. Fermez l’éditeur et exécutez le code en allant dans « Développeur » puis « Macros », sélectionnez CreerCourbeGaussienne, et cliquez sur « Exécuter ». 

5. Résultat

Après avoir exécuté le code, vous devriez voir un graphique représentant une courbe en cloche basée sur une distribution normale standard (moyenne = 0, écart-type = 1). 

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x