[PYTHON] Kann aspect_ratio mit sympy.plotting nicht geändert werden? Über die Sache

Kann aspect_ratio mit sympy.plotting nicht geändert werden? Über die Sache

~~ Es tut mir leid, wenn ich falsch verstanden habe. ~~ Ich hatte nicht genug Wissen. Wir haben einen Kommentar von @SaitoTsutomu und gelöst erhalten.

Starten Sie "Jupyter Notebook". Zunächst die Vorbereitung.

from sympy.plotting import plot, plot_implicit, plot_parametric
from sympy import symbols, sin, cos, pi
x, y, t = symbols('x y t')

plot

plot(x**2, (x, -2, 2))

Dann wird $ y = x ^ 2 $ im Bereich von $ -2 \ leqq x \ leqq 2 $ gezeichnet.

Unknown.png

Es ist auch möglich, Diagramme mehrerer Funktionen gleichzeitig anzuzeigen. Zeichnen Sie $ y = x ^ 2 $ und $ y = x $ im selben Koordinatenraum.

plot(x**2, x, (x, -2, 2))

Unknown2.png

plot_implicit

Sie können auch eine Zahl (sogenannte Negativfunktion) in Form von $ f (x, y) = 0 $ zeichnen. Als nächstes kommt $ x ^ 2 + y ^ 2-1 = 0 $, dh ein Kreis mit einem Radius von $ 1 $, der auf dem Ursprung zentriert ist.

plot_implicit(x**2+y**2-1)

Unknown3.png

Ich bin besorgt über das Seitenverhältnis des Seitenverhältnisses, aber es ist vorerst ein Kreis. Es scheint, dass plot_implicit nicht zwei oder mehr Ausdrücke setzen und mehrere Kurven zeichnen kann. Bedeutet die implizite Funktion, dass das Plotten problematisch ist?

plot_parametric

Das ist mein Lieblings. Wenn $ y = f (x) $ ist, ist der Ausdruck begrenzt. Daher handelt es sich um eine Darstellung der Figur, die durch die Anzeige der Mediatorvariablen dargestellt wird. Zum Beispiel $ x = \cos t,\ y = \sin t\quad (0\leqq t\leqq 2\pi) $ Ist auch ein Kreis mit einem Radius von $ 1 $ auf den Ursprung zentriert, aber um dies zu zeichnen:

plot_parametric(cos(t), sin(t), (t, 0, 2*pi))

Unknown-2.png

Sie können mehrere Kurven gleichzeitig zeichnen.

plot_parametric((cos(t), sin(t)), (cos(t)+1, sin(t)+1), (t, 0, 2*pi))

Unknown-3.png

Es ist auch möglich, den Parameterbereich individuell einzustellen.

plot_parametric((cos(t), sin(t), (t, 0, 2*pi)), (cos(t)+1, sin(t)+1, (t, 0, pi)))

Unknown-5.png

Ich bin mir übrigens sicher, dass einige von Ihnen schon lange daran interessiert sind, aber Sie können eine Ellipse sehen, obwohl Sie einen Kreis zeichnen sollten. Laut dem offiziellen Dokument

aspect_ratio : tuple of two floats or {‘auto’}

Es gibt, aber nichts ändert sich, auch wenn dies eingestellt ist ...

plot_parametric((cos(t), sin(t)), (cos(t)+1, sin(t)+1), (t, 0, 2*pi), axis=False, aspect_ratio=(1, 1))

Unknown-4.png

Sie können sehen, dass die Option "Achse" angewendet wird, "Aspektverhältnis" jedoch nicht reagiert. Ich habe bei Google gesucht, aber es war nur eine englische Website, also habe ich sie mir eine Weile angesehen, aber ich konnte keine klare Antwort bekommen.

Erstens scheint Sympy Plot Matplotlib zu vermitteln, also die Einstellung von Matplotlib zwangsweise ändern? Es gab eine Antwort wie diese, aber ich dachte, es wäre besser, sie von Anfang an mit matplotlib zu veranschaulichen, wenn ich es tun wollte.

** kwargs ...

Es ist meine Meinung zu einem Amateur, der weder Programmierer noch irgendetwas ist, aber selbst wenn ich ein Schlüsselwort einfüge, von dem ich nicht erwartet hatte, dass es "** kwargs" ist, tritt kein besonderer Fehler auf. Ich denke, es ist eine ziemlich gefährliche Spezifikation ... Ich habe über Rechtschreibfehler in "aspect_ratio" nachgedacht, aber ich habe nicht "Ja" oder "Nein" gesagt, daher war ich mir nicht einmal sicher, ob ich die Option "aspect_ratio" erkannt habe.

Lösung

Die Bildschirmgröße unterscheidet sich von aspect_ratio.

from sympy.plotting import plot_parametric
from sympy import symbols, sin, cos, pi
t = symbols('t')

import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (8,8)

plot_parametric(cos(t), sin(t), (t, 0, 2*pi))

Unknown6.png

Es wurde sicher bei $ 1: 1 $ angezeigt. Vielen Dank, @SaitoTsutomu.

Recommended Posts

Kann aspect_ratio mit sympy.plotting nicht geändert werden? Über die Sache
Denken Sie an das Problem der minimalen Änderung
Ich kann das Paket nicht mit pip installieren.
Über localhost: Auf 4040 kann nicht zugegriffen werden, nachdem Spark mit Docker ausgeführt wurde
Über die Angelegenheit, die über Stichprobenfehler besorgt war
Über den Test
Anmerkungen zu mit
Über die Warteschlange
Ändern Sie die Zeitzone in Oracle Database Docker
Extrahieren Sie den Maximalwert mit Pandas und ändern Sie diesen Wert