Wofür unterrichten Sie normalerweise Visualisierung? Deshalb
Ich möchte die OP-Funktion weiterentwickeln !!
Erstellen Sie eine Funktion zum Zeichnen einer schönen Kurve "OP" mit matplotlib in Python-Sprache Visualisierung machen.
Außerdem ist es nicht interessant, ob es sich nur um ein Standbild handelt Es hat die Funktion von ipywidgets.
Beyond Beyond bewegt sich, wenn die Zahl "t" geändert wird.
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact, FloatSlider, IntSlider
import warnings
warnings.simplefilter('ignore')
%matplotlib inline
def oppai(y,t):
x_1 = (1.5 * np.exp((0.12*np.sin(t)-0.5) * (y + 0.16 *np.sin(t)) ** 2)) / (1 + np.exp(-20 * (5 * y + np.sin(t))))
x_2 = ((1.5 + 0.8 * (y + 0.2*np.sin(t)) ** 3) * (1 + np.exp(20 * (5 * y +np.sin(t)))) ** -1)
x_3 = (1+np.exp(-(100*(y+1)+16*np.sin(t))))
x_4 = (0.2 * (np.exp(-(y + 1) ** 2) + 1)) / (1 + np.exp(100 * (y + 1) + 16*np.sin(t)))
x_5 = (0.1 / np.exp(2 * (10 * y + 1.2*(2+np.sin(t))*np.sin(t)) ** 4))
x = x_1 + (x_2 / x_3) + x_4 + x_5
return x
t = FloatSlider(min=0.1, max=5.0, step=0.1, value=0)
y = np.arange(-3, 3.01, 0.01)
@interact(t=t)
def plot_oppai(t):
x = oppai(y,t)
plt.figure(figsize=(10,9))
plt.axes().set_aspect('equal', 'datalim')
plt.grid()
plt.plot(x, y, 'black')
plt.show()
Wütend Damit wird es nur mit einer stumpfen schwarzen Kurve gezeichnet Sie haben das Reich der Kunst noch nicht erreicht.
Lassen Sie uns die Funktion einfärben, um dem Ideal näher zu kommen.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from ipywidgets import interact, FloatSlider, IntSlider
import warnings
warnings.simplefilter('ignore')
%matplotlib inline
def oppai(y,t):
x_1 = (1.5 * np.exp((0.12*np.sin(t)-0.5) * (y + 0.16 *np.sin(t)) ** 2)) / (1 + np.exp(-20 * (5 * y + np.sin(t))))
x_2 = ((1.5 + 0.8 * (y + 0.2*np.sin(t)) ** 3) * (1 + np.exp(20 * (5 * y +np.sin(t)))) ** -1)
x_3 = (1+np.exp(-(100*(y+1)+16*np.sin(t))))
x_4 = (0.2 * (np.exp(-(y + 1) ** 2) + 1)) / (1 + np.exp(100 * (y + 1) + 16*np.sin(t)))
x_5 = (0.1 / np.exp(2 * (10 * y + 1.2*(2+np.sin(t))*np.sin(t)) ** 4))
x = x_1 + (x_2 / x_3) + x_4 + x_5
return x
t = FloatSlider(min=0.1, max=5.0, step=0.1, value=0)
y = np.arange(-3, 3.01, 0.01)
@interact(t=t)
def plot_oppai(t):
x = oppai(y,t)
plt.figure(figsize=(10,9))
plt.axes().set_aspect('equal', 'datalim')
plt.grid()
#Verbesserungspunkte
b_chiku = (0.1 / np.exp(2 * (10 * y + 1.2*(2+np.sin(t))*np.sin(t)) ** 4))
b_index = [i for i ,n in enumerate(b_chiku>3.08361524e-003) if n]
x_2,y_2 = x[b_index],y[b_index]
plt.axes().set_aspect('equal', 'datalim')
plt.plot(x, y, '#F5D1B7')
plt.fill_between(x, y, facecolor='#F5D1B7', alpha=1)
plt.plot(x_2, y_2, '#F8ABA6')
plt.fill_between(x_2, y_2, facecolor='#F8ABA6', alpha=1)
plt.show()
Es ist eine wundervolle Farbe! !! !!
Über den Mechanismus von Matplotlib Zuerst müssen Sie entscheiden, wo Sie zeichnen möchten.
Für das Streudiagramm sind zwei Zahlen erforderlich. Die Werte auf der vertikalen Achse und die Werte auf der horizontalen Achse.
Die Werte in vertikaler Richtung, die zum Zeichnen des Ganzen verwendet werden, sind fest.
y = np.arange(-3, 3.01, 0.01)
y
ist eine Gruppe von Zahlen von -3 bis 3 in Schritten von 0,01.
Andererseits wird der Wert in Richtung der horizontalen Achse berechnet.
Die Funktion oppai (y, t)
berechnet nacheinander für die numerische Gruppe y
.
Erstellen Sie eine Reihe von Zahlen x
.
Das Argument "t" ist ein numerischer Wert für die Feineinstellung Dies wird ebenfalls in Schritten von 0,1 von 0,1 bis 5 berechnet.
Zeichnen Sie auf einem Streudiagramm mit den x- und y-Zahlen.
plt.plot(x, y)
Dadurch wird diese glatte Kurve "OP" gezeichnet.
Als nächstes kommt plt.fill_between
Dies füllt sich mit Farbe.
Und der größte Punkt ist das gekrümmte "B-Viertel" Dies ist mein persönlicher Lieblingspunkt.
Auch hier müssen Sie den Bereich der Füllpunkte berechnen.
b_chiku = (0.1 / np.exp(2 * (10 * y + 1.2*(2+np.sin(t))*np.sin(t)) ** 4))
b_index = [i for i ,n in enumerate(b_chiku>3.08361524e-003) if n]
x_2,y_2 = x[b_index],y[b_index]
Hier scheint es in vertikaler und horizontaler Richtung in den richtigen Bereich zu passen Ich mache eine numerische Berechnung.
In enumerate (b_chiku> 3.08361524e-003)
Ob es größer als diese Zahl ist, wird als "Wahr" oder "Falsch" zurückgegeben.
Da dies der Indexwert von "B-Bereich" ist, der Wert von "B-Bereich"
Ermitteln Sie den numerischen Wert anhand des Index aus der numerischen Wertegruppe der gesamten Kurve "OP".
Nachdem Sie den B-Bezirk berechnet haben, malen Sie ihn mit einer schönen Farbe. Fertig.
Nein Die numerische Berechnung ist beim Bewegen schwierig
Aber Sie sollten in der Lage sein, den Nervenkitzel zu bekommen, den Sie mit Standbildern nicht bekommen können.
Deshalb mit Python und Matplotlib. Auch wenn Sie mit Data Science nicht vertraut sind, lohnt es sich, die Visualisierung zu studieren.
Der Schatten ist übrigens "# F8ABA6" Ich mochte diese Farbe.
Bitte ändern Sie die Farbe in Ihre Lieblingsfarbe. Na dann
HP von Otsu py: http://www.otupy.net/
Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw
Twitter: https://twitter.com/otupython
Recommended Posts