Einfaches XY-Quad-Diagramm mit Achsen als Quadrantengrenzen

Dieser Artikel zeigt, wie einfach es ist, ein Punktdiagramm zu erstellen, dessen Plotfläche horizontal und vertikal in vier Regionen unterteilt ist. Die Regionen werden durch die Diagrammachsen getrennt, und diese Achsen können bei Bedarf positioniert werden, um die Quadranten abzugrenzen.

Quad-Diagramm mit Achsen als Quadrantengrenzen

 Quad-Diagramm mit Achsen als Quadrantengrenzen

Ich habe ein Tutorial geschrieben, in dem gezeigt wird, wie ein Excel-Diagramm mit farbigem Quadrantenhintergrund erstellt wird. Dies ist viel einfacher zu erstellen und zu pflegen und dient dem gleichen Zweck.

Hier sind die X- und Y-Beispieldaten mit berechneten Durchschnittswerten und das anfängliche XY-Streudiagramm. Wir positionieren die Achsen an den jeweiligen Mittelwerten der X- und Y-Daten, obwohl Sie sie überall dort positionieren können, wo es in Ihrer Analyse sinnvoll ist.

Quad-Diagramm nach Achsen - Daten und Diagramm

 Quad-Diagramm nach Achsen - Daten und Diagramm

Wir müssen die Achsen dieses Diagramms neu positionieren. Doppelklicken Sie auf die horizontale Achse, oder wählen Sie die horizontale Achse aus und drücken Sie Strg +1 (Ziffer eins), um den Aufgabenbereich Achse formatieren (hier, Excel 2013) oder das Dialogfeld Achse formatieren (funktioniert in früheren Excel-Versionen ähnlich) zu öffnen. Wählen Sie unter Achsenoptionen >Vertikale Achsenkreuze die Option Achsenwert aus und geben Sie den X-Durchschnitt wie gezeigt in das Feld ein.

Aufgabenbereich Achse formatieren - Achsenkreuze bei

 Aufgabenbereich Achse formatieren - Achsenkreuze bei

Das Ergebnis wird unten links angezeigt. Wiederholen Sie dies für die vertikale Achse unten rechts.

Quad-Diagramm nach Achsen - Positionsachsen

 Quad Chart by Axes - Position Axes

Diese Achsenbeschriftungen sind völlig im Weg, aber es ist einfach, sie zu verschieben. Formatieren Sie jede Achse (öffnen Sie den Aufgabenbereich oder das Dialogfeld wie oben) und wählen Sie unter Beschriftungen > Beschriftungsposition die Option Niedrig aus der Dropdown-Liste aus.

Aufgabenbereich Achse formatieren - Beschriftungsposition niedrig

 Format Axis Task Pane - Label Position Low

Jetzt befinden sich diese Beschriftungen an den Rändern des Diagramms, wo sie mehr Nutzen als Schaden anrichten (unten links). Sie können eine kleine Formatierung vornehmen, damit die Quadranten etwas deutlicher hervorstechen. In der Tabelle unten rechts habe ich für die Gitterlinien einen helleren Grauton und für die Achsenlinienfarbe eine dunklere Farbe verwendet, die tatsächlich dieselbe Farbe wie die Markierungen hat.

Quad-Diagramm nach Achsen - Positionsetiketten und Neuformatierung

 Quad Chart by Axes - Position Labels and Reformat

Es ist einfach, VBA zu verwenden, um die Achsen und Achsenbeschriftungen mit einer einfachen Routine wie der unten gezeigten zu positionieren. Diese Routine positioniert die Beschriftungen und verwendet dann die im Arbeitsblatt berechneten Durchschnittswerte, um die Achsenlinien zu positionieren.

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

Die nächste Routine überspringt die Arbeitsblattberechnungen und verwendet stattdessen die Durchschnittswerte der im Diagramm dargestellten X- und Y-Werte, um die Achsenlinien zu positionieren.

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

Sie können sogar Arbeitsblattereignisse verwenden, um die Diagrammachsen neu zu positionieren. Meine X- und Y-Werte wurden mit =RANDBETWEEN(2,14) berechnet, sodass sich die Werte jedes Mal ändern, wenn das Arbeitsblatt berechnet (z. B. durch Drücken der Funktionstaste F9). Ich kann dieses Berechnungsereignis wie folgt anzapfen.

  • Klicken Sie mit der rechten Maustaste auf die Registerkarte Arbeitsblatt, und wählen Sie Code anzeigen aus dem Popup-Menü. Der VB-Editor wird mit einem Codemodul geöffnet, das dem Arbeitsblatt entspricht.
  • Wählen Sie Arbeitsblatt aus der linken Dropdown-Liste oben im neuen Codemodul aus.
  • Wählen Sie Berechnen aus der rechten Dropdown-Liste.
  • Geben Sie den Code wie gezeigt ein.

 Worksheet_Calculate-Ereignis, um Achsen in Position zu halten

 Worksheet_Calculate Ereignis, um Achsen in Position zu halten

Hier ist der Code, damit Sie nicht alles selbst eingeben müssen. Kopieren Sie einfach das Codemodul des Arbeitsblatts und fügen Sie es ein.

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

Abhängig von den Details Ihres Arbeitsblattmodells können Sie die Worksheet_Calculate, Worksheet_Change, Worksheet_PivotTableUpdate, oder andere Ereignisprozeduren, um das Diagramm zu aktualisieren.



+