Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Gleiche Skalierung x- und y-Achse

Gleiche Skalierung x- und y-Achse
06.09.2004 15:48:48
Martin
Hallo,
folgendes Problem:
In einem bestehenden x-y-Diagramm (eingebettet) möchte ich quasi per Knopfdruck eine identische Skalierung von x- und y-Achse erreichen, und zwar dergestalt, dass unabhängig von der gewählten Größe des Diagramms die "Länge" einer Einheit auf x- und y-Achse jeweils gleich ist.
Mir ist klar, dass dies vermutlich nur mit VBA zu machen sein wird, dessen ich jedoch leider nicht mächtig bin...
Ich wäre daher für Lösungsansätze dankbar, die mir neben dem VBA-Code auch sagen würden, wie ich diesen ins Dokument reinfummeln muss damits läuft...
Vielen Dank schon mal im Voraus
Martin
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gleiche Skalierung x- und y-Achse
09.09.2004 22:12:06
Björn
Hallo Martin,
möglicherweise hilft dir dieses Makro:

Sub Chart_anpassen()
xmin = ActiveChart.Axes(xlCategory).MinimumScale
xmax = ActiveChart.Axes(xlCategory).MaximumScale
ymin = ActiveChart.Axes(xlValue).MinimumScale
ymax = ActiveChart.Axes(xlValue).MaximumScale
If xmax - xmin > ymax - ymin Then
ymax = ymax + (xmax - xmin) - (ymax - ymin)
Else
xmax = xmax + (ymax - ymin) - (xmax - xmin)
End If
With ActiveChart.Axes(xlCategory)
.MinimumScale = xmin
.MaximumScale = xmax
End With
With ActiveChart.Axes(xlValue)
.MinimumScale = ymin
.MaximumScale = ymax
End With
End Sub

m das Makro in eine Datei einzubinden, Excel starten. Dann Alt + F11 drücken und den VBA-Editor starten. Dann im Menü "Einfügen" den Menüpunkt "Modul" wählen.
In das nun erscheinende leere Modul das obige Makro (von

Sub bis Sub) kopieren.
Das Fenster des VBA-Editors schließen.
Um das Makro anzuwenden nun auf ein x,y-Diagramm klicken und nach von Alt + F8 das Makro "Chart_anpassen" starten.
Gruß
Björn
P.S.: Willst Du das Makro behalten, so musst du die Datei speichern!

Anzeige
AW: Gleiche Skalierung x- und y-Achse
10.09.2004 10:38:58
Martin
Hallo Björn,
danke für die Antwort, habe das Makro gerade getestet und stelle fest, dass der im Diagramm abgebildete Wertebereich verändert wird und nun für x- und y-Achse identisch ist (z.B. x-Achse von -5 bis +10, y-Achse von -2 bis +13). Abhängig von der Größe des Diagrammfensters ist die auf dem Bildschirm dargestellte Länge einer Einheit allerdings nach wie vor unterschiedlich.
Ich kenne mich mit den entsprechden Befehlen und Anweisungen in VBA leider nicht aus, mein eigener Ansatz wäre es allerdings zu versuchen irgendwie die Länge einer Einheit auf der x-Achse zu ermitteln (abhängig von der Größe des Diagrammfensters), um dann die y-Achse entsprechend zu skalieren (oder umgekehrt). Ich kann leider nicht nachvollziehen, ob oder wie Dein Makro dies tut oder nicht.
Gruss
Martin
Anzeige
AW: Gleiche Skalierung x- und y-Achse
10.09.2004 21:10:34
Björn
Hallo Martin,
ich hatte schon gedacht, dass ich dir nicht helfen könnte, aber es scheint doch zu klappen. Versuche doch mal, ob dieses Makro macht, was du willst.

Sub Chart_anpassen()
xplot = ActiveChart.Axes(xlCategory).Width
yplot = ActiveChart.Axes(xlValue).Height
xmin = ActiveChart.Axes(xlCategory).MinimumScale
xmax = ActiveChart.Axes(xlCategory).MaximumScale
ymin = ActiveChart.Axes(xlValue).MinimumScale
ymax = ActiveChart.Axes(xlValue).MaximumScale
If (xmax - xmin) / xplot > (ymax - ymin) / yplot Then
yplot = (ymax - ymin) * xplot / (xmax - xmin)
Else
xplot = (xmax - xmin) * yplot / (ymax - ymin)
End If
ActiveChart.PlotArea.Width = xplot
ActiveChart.PlotArea.Height = yplot
End Sub

Gruß
Björn
Anzeige
AW: Gleiche Skalierung x- und y-Achse
13.09.2004 09:35:31
Martin
Hallo Björn,
nochmals Danke für die schnelle Antwort. Deine neue Version funktioniert schon besser als die vorige Variante. Allerdings tritt auch hier immer noch das Problem auf, dass Einheiten auf der x- und y-Achse unterschiedliche Längen haben.
Das Problem lösen würde m.E. ein Makro das folgendes tut:
- Ermittlung der aktuellen Größe des Diagrammfensters (Breite / Höhe)
- Anpassung der x-Achse an Fensterbreite (Diagrammfensterbreite wird komplett von x-Achse ausgefüllt, wobei min- und max-Wert erhalten bleiben)
- Skalierung der y-Achse dergestalt, dass die Länge einer Einheit identisch mit x-Achse ist (abhängig von der Form des Diagrammfensters verbleibt oben oder unten im Fenster "Luft", oder es kann nicht der komplette Wertebereich abgebildet werden)
Ich denke ich werde mich -ausgehend von Deinen guten Ideen- selber mal intensiv mit VBA beschäftigen und hoffentlich eine Lösung finden... Gibt es (abgesehen von diesem Forum hier) eine gute Anleitung dazu (Buch, Web, etc ) ?
So denn....
Gruss
Martin
Anzeige
AW: Gleiche Skalierung x- und y-Achse
13.09.2004 10:33:48
Björn
Hallo Martin,
das letzte Quentchen Genauigkeit bekomme ich wohl nicht hin. Das Problem ist, dass ich die Höhe der y-Achse und die Breite der x-Achse zwar auslesen, aber nicht festlegen kann, da die Eigenschaft schreibgeschützt ist.
Eine andere Variante, die ich versucht hatte war über die innere Begrenzung der PlotArea (Zeichnungsfläche) ans Ziel zu kommen, die exakt den Achsenlängen entsprechen. Auch hier bin ich am Schreibschutz der Eigenschaften InsideHeight und InsideWidth gescheitert.
Zum Schluß habe ich mich dann darauf beschränkt, die Eigenschaften Width und Height der PlotArea festzulegen. Du hast leider ganz richtig erkannt, dass es dadurch zu Ungenauigkeiten kommt. Die PlotArea beinhaltet in diesem Fall nämlich auch die Achsenbeschriftung.
Eine Idee wäre noch, dass man iterativ das Problem löst, indem man die Width und Height Eigenschaften so lange manipuliert, bis die Eigenschaften InsideHeight und InsideWidth passen.
Ich komme aber in den nächsten beiden Tagen definitiv nicht dazu, da ich auf Dienstreise gehe. Du kannst mir ja mal mitteilen, ob ich's danach noch mal probieren soll.
Bezüglich Literatur kann ich nur auf die Recherche verweisen, wahrscheinlich findest du da etwas. Ich habe mir VBA ohne Buch durch "Learning by doing" und "Try and error" angeeignet.
Gruß
Björn
Anzeige
AW: Gleiche Skalierung x- und y-Achse
13.09.2004 14:49:13
Martin
Hallo Björn,
vielen Dank für Deine intensive Unterstützung zu diesem Thema !
Wenn Du möchtest kannst Du natürlich gerne in Richtung iteraktiver Lösung "weiterforschen". Über eine Info wäre ich dann sehr dankbar !
Dennoch denke ich wie beschrieben weiterzumachen um mich selbst in die VBA Thematik einzuarbeiten ...
Gruss
Martin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Gleiche Skalierung von X- und Y-Achse in Excel-Diagrammen


Schritt-für-Schritt-Anleitung

Um die X- und Y-Achse in einem Excel-Diagramm gleich zu skalieren, kannst Du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und lade die Datei mit dem Diagramm, für das Du die Achsen skalieren möchtest.

  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.

  3. Wähle im Menü "Einfügen" die Option "Modul".

  4. Kopiere den folgenden VBA-Code in das neue Modul:

    Sub Chart_anpassen()
       xplot = ActiveChart.Axes(xlCategory).Width
       yplot = ActiveChart.Axes(xlValue).Height
       xmin = ActiveChart.Axes(xlCategory).MinimumScale
       xmax = ActiveChart.Axes(xlCategory).MaximumScale
       ymin = ActiveChart.Axes(xlValue).MinimumScale
       ymax = ActiveChart.Axes(xlValue).MaximumScale
       If (xmax - xmin) / xplot > (ymax - ymin) / yplot Then
           yplot = (ymax - ymin) * xplot / (xmax - xmin)
       Else
           xplot = (xmax - xmin) * yplot / (ymax - ymin)
       End If
       ActiveChart.PlotArea.Width = xplot
       ActiveChart.PlotArea.Height = yplot
    End Sub
  5. Schließe den VBA-Editor.

  6. Klicke auf Dein Diagramm und drücke Alt + F8, um das Makro "Chart_anpassen" auszuführen.

Jetzt sollten die Längen der Einheiten auf der X- und Y-Achse gleich sein, unabhängig von der Größe des Diagrammfensters.


Häufige Fehler und Lösungen

  • Problem: Nach Ausführung des Makros ändern sich die Werte auf den Achsen.

    • Lösung: Stelle sicher, dass Du die Achsenwerte nicht manuell änderst. Das Makro passt die Skalierung dynamisch an.
  • Problem: Die Längen der Einheiten sind immer noch unterschiedlich.

    • Lösung: Überprüfe, ob das Diagramm korrekt ausgewählt ist, bevor Du das Makro ausführst. Manchmal kann die PlotArea auch andere Elemente enthalten, die die Darstellung beeinflussen.

Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du auch die Achsen manuell anpassen:

  1. Klicke mit der rechten Maustaste auf die X-Achse und wähle "Achse formatieren".
  2. Stelle die Minimum- und Maximumwerte so ein, dass beide Achsen den gleichen Wertebereich abdecken.
  3. Passe die Achsenoptionen so an, dass die Skala gleichmäßig verteilt ist.

Für komplexere Diagramme, wie ein Excel-Diagramm mit 2 Y-Achsen oder 2 X-Achsen, kann diese Methode jedoch recht aufwändig werden.


Praktische Beispiele

Ein einfaches Liniendiagramm kann so eingestellt werden, dass die X- und Y-Achse gleich skaliert ist. Stelle Dir vor, Du hast folgende Daten:

X-Werte Y-Werte
1 2
2 4
3 6
4 8

Erstelle ein Liniendiagramm und wende das oben genannte Makro an, um die X- und Y-Achse gleichermaßen zu skalieren. Dies ist besonders nützlich bei der Analyse von Daten, wo ein direkter Vergleich von X- und Y-Werten erforderlich ist.


Tipps für Profis

  • Stelle sicher, dass Du die Diagrammgröße anpasst, bevor Du das Makro ausführst. Eine gleichmäßige Darstellung der Achsen hilft dabei, die Lesbarkeit und die visuelle Klarheit zu verbessern.
  • Experimentiere mit der PlotArea und den Achsenbeschriftungen, um sicherzustellen, dass alle relevanten Informationen klar angezeigt werden.
  • Nutze die Datenüberprüfung in Excel, um sicherzustellen, dass Deine X- und Y-Daten in einem konsistenten Format vorliegen.

FAQ: Häufige Fragen

1. Was ist die X- und Y-Achse? Die X-Achse ist die horizontale Achse in einem Diagramm, während die Y-Achse die vertikale Achse darstellt. Sie dienen dazu, Datenpunkte in einem Diagramm zu visualisieren.

2. Wie kann ich ein Excel-Diagramm erstellen und die X- und Y-Achse festlegen? Um ein Diagramm zu erstellen, markiere Deine Daten und wähle im Reiter "Einfügen" das gewünschte Diagramm aus. Du kannst anschließend die Achsenwerte über die Achsenformatierung anpassen.

3. Warum ist die Skalierung der Achsen wichtig? Eine einheitliche Skalierung der Achsen hilft dabei, die Daten visuell korrekt darzustellen und Vergleiche zwischen den Werten zu erleichtern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige