Wie man einen quadratischen Plot mit gleichen Achsen in Matplotlib erstellt

Suraj Joshi 3 Januar 2023
  1. set_aspect() zur Erstellung eines quadratischen Plots mit gleichen Achsen
  2. axis() Methode zur Erzeugung eines quadratischen Plots
Wie man einen quadratischen Plot mit gleichen Achsen in Matplotlib erstellt

Mit der Methode set_aspect() können wir das Seitenverhältnis eines Diagramms einstellen, um daraus ein quadratisches Diagramm zu machen, und die Methode axis() kann auch verwendet werden, um ein quadratisches Diagramm mit gleichen Achsen in Matplotlib zu erstellen.

set_aspect() zur Erstellung eines quadratischen Plots mit gleichen Achsen

Wir können das Seitenverhältnis mit der Funktion matplotlib.axes.Axes.set_aspect() einstellen. Wenn wir "equal" als Seitenverhältnis in der Funktion verwenden, erhalten wir einen Plot mit der gleichen Skalierung von Datenpunkten zu Plot-Einheiten für die X-Achse und die Y-Achse.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_subplot(111)

plt.plot(x, y)
plt.xlim(-3, 3)
plt.ylim(-3, 3)

ax.set_aspect("equal", adjustable="box")

plt.xlabel("x")
plt.ylabel("sinx")

plt.show()

quadratischer Plot mit gleichen Achsen unter Verwendung von set_aspect to equal

plt.xlim(-3, 3)
plt.ylim(-3, 3)

ax.set_aspect("equal")

Es stellt sowohl die X-Achse als auch die Y-Achse auf den gleichen Bereich ein. Dann setzt ax.set_aspect('equal') beide Achsen auf gleich.

Die obige Methode ergibt nur dann ein quadratisches Diagramm, wenn die Bereiche für beide Achsen gleich eingestellt sind. Um im allgemeinen Fall einen quadratischen Plot zu erzeugen, müssen wir das Seitenverhältnis mit dem folgenden Befehl manuell einstellen:

axes.set_aspect(1.0 / axes.get_data_ratio())

Mit axes.get_data_ratio() erhalten wir das Verhältnis der Rohdaten des Plots. Der Wert seines Kehrwertes wird an set_aspect() übergeben, um die Achsen gleich zu machen, ohne die Grenzen der Achsen manuell festzulegen.

Code:

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y = np.sin(x)

fig = plt.figure()
ax = fig.add_subplot(111)

plt.plot(x, y)

ax.set_aspect(1.0 / ax.get_data_ratio(), adjustable="box")

plt.xlabel("x")
plt.ylabel("sinx")
plt.show()

quadratischer Plot mit gleichen Achsen unter Verwendung von set_aspect general

axis() Methode zur Erzeugung eines quadratischen Plots

Wenn wir ["square"] als Argument an matplotlib.pyplot.axis() übergeben, wird ein quadratischer Plot erzeugt, bei dem die Bereiche, die beide Achsen belegen, gleich der Länge im Plot sind.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(-3, 3, 100)
y = np.sin(x)
plt.plot(x, y)
plt.axis("square")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()

quadratischer Plot mit gleichen Achsen unter Verwendung der Achsenmethode

Warnung
Der Bereich der Achsen in dieser Lösung wird automatisch ausgewählt. Er ist gleich ax.set_aspect('equal', adjustable='datalim'). Die vom Benutzer explizit festgelegten Achsengrenzen werden nicht eingehalten.
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Matplotlib Axes