Cet article montrera à quel point il est facile de créer un graphique en nuage de points avec sa zone de tracé divisée horizontalement et verticalement en quatre régions. Les régions sont séparées par les axes du graphique, et ces axes peuvent être positionnés là où cela est nécessaire pour délimiter les quadrants.
J’ai écrit un tutoriel montrant comment créer un graphique Excel Avec un arrière-plan de Quadrant coloré, ce qui était plus compliqué, car il utilisait des zones empilées et des axes secondaires pour obtenir l’arrière-plan coloré. C’est beaucoup plus simple à créer et à maintenir, et sert à peu près le même objectif.
Voici les données des échantillons X et Y, avec les moyennes calculées, et le diagramme de dispersion XY initial. Nous positionnerons les axes aux moyennes respectives des données X et Y, bien que vous puissiez les positionner là où cela a du sens dans votre analyse.
Nous devons repositionner les axes de ce graphique. Double-cliquez sur l’axe horizontal, ou sélectionnez l’axe horizontal et appuyez sur Ctrl + 1 (chiffre un), pour ouvrir le volet de tâches Formater l’axe (illustré ici, Excel 2013) ou la boîte de dialogue Formater l’axe (fonctionne de la même manière dans les versions antérieures d’Excel). Sous Options d’axe > Croix d’axe verticales, sélectionnez l’option Valeur d’axe et entrez la moyenne X dans la boîte, comme indiqué.
Le résultat est affiché ci-dessous à gauche. Répétez l’opération pour l’axe vertical, en bas à droite.
Ces étiquettes d’axe sont totalement gênantes, mais il est facile de les déplacer. Formatez chaque axe (ouvrez le volet des tâches ou la boîte de dialogue comme ci-dessus) et sous Libellés > Position de l’étiquette, sélectionnez Bas dans la liste déroulante.
Maintenant, ces étiquettes sont le long des bords du graphique, où elles font plus de bien que de mal (en bas à gauche). Vous pouvez effectuer une petite quantité de formatage pour que les quadrants ressortent un peu plus clairement. Dans le graphique ci-dessous à droite, j’ai utilisé une nuance de gris plus claire pour les lignes de grille, et j’ai utilisé une couleur plus foncée, en fait, la même couleur que les marqueurs, pour la couleur de la ligne d’axe.
Il est facile d’utiliser VBA pour positionner les axes et les étiquettes d’axes, en utilisant une routine simple comme celle illustrée ci-dessous. Cette routine positionne les étiquettes, puis utilise les moyennes calculées dans la feuille de calcul pour positionner les lignes d’axe.
Sub AxesAsQuadBoundaries1() With ActiveChart With .Axes(xlCategory) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = ActiveSheet.Range("A17").Value2 End With With .Axes(xlValue) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = ActiveSheet.Range("B17").Value2 End With End WithEnd Sub
La routine suivante ignore les calculs de la feuille de calcul, prenant plutôt les moyennes des valeurs X et Y tracées dans le graphique pour positionner les lignes d’axe.
Sub AxesAsQuadBoundaries2() Dim vData As Variant With ActiveChart vData = .SeriesCollection(1).XValues With .Axes(xlCategory) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = WorksheetFunction.Average(vData) End With vData = .SeriesCollection(1).Values With .Axes(xlValue) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = WorksheetFunction.Average(vData) End With End WithEnd Sub
Vous pouvez même utiliser des événements de feuille de calcul pour repositionner les axes du graphique. Mes valeurs X et Y ont été calculées en utilisant =RANDBETWEEN(2,14)
, donc chaque fois que la feuille de calcul calcule (par exemple, en appuyant sur la touche de fonction F9), les valeurs changent. Je peux puiser dans cet événement de calcul comme suit.
- Faites un clic droit sur l’onglet Feuille de calcul et sélectionnez Afficher le code dans le menu contextuel. L’éditeur VB s’ouvre avec un module de code correspondant à la feuille de calcul.
- Sélectionnez Feuille de calcul dans la liste déroulante de gauche en haut du nouveau module de code.
- Sélectionnez Calculer dans le menu déroulant de droite.
- Entrez le code comme indiqué.
Voici le code pour que vous n’ayez pas besoin de tout taper vous-même. Copiez et collez simplement dans le module de code de la feuille de calcul.
Private Sub Worksheet_Calculate() Dim vData As Variant With Me.ChartObjects(1).Chart vData = .SeriesCollection(1).XValues With .Axes(xlCategory) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = WorksheetFunction.Average(vData) End With vData = .SeriesCollection(1).Values With .Axes(xlValue) .TickLabelPosition = xlTickLabelPositionLow .CrossesAt = WorksheetFunction.Average(vData) End With End WithEnd Sub
Selon les détails de votre modèle de feuille de calcul, vous pouvez utiliser le Worksheet_Calculate
, Worksheet_Change
, Worksheet_PivotTableUpdate
, ou d’autres procédures d’événement pour mettre à jour le graphique.