[PYTHON] So zeichnen Sie vor der Optimierung ein 3D-Diagramm

So zeichnen Sie ein Diagramm des Optimierungsalgorithmus in DEAP.

So zeichnen Sie vor der Optimierung ein 3D-Diagramm.

Was für ein dreidimensionaler Graph Sie zeichnen möchten, ist zunächst die Bewertungsfunktion in der Bibliothek genetischer Algorithmen namens DEAP. Da ich die Mehrzweckoptimierung in Betracht ziehen möchte, scheint es einfacher zu sein, ein dreidimensionales Diagramm zu zeichnen. Das erste ist also, wie ein dreidimensionales Diagramm gezeichnet wird.

Hier finden Sie die Bewertungsfunktion der Optimierung. DEAP 1.3.1-Dokumentation Eine super Einführung in Probleme der Mehrzweckoptimierung, die jeder verstehen kann

Um ein dreidimensionales Diagramm zu zeichnen, machen Sie zuerst Punkte in einer Netzform auf den beiden Achsen X1 und x2. Zu diesem Zeitpunkt wird der Wert auf der z-Achse berechnet. Zeichnen Sie mit Axes3D einen dreidimensionalen Graphen für die Werte von x1, x2 und Z.

1) Machen Sie Maschenpunkte.

1: Verwenden Sie die Funktion "arange" von "numpy", um gleichmäßig verteilte Zahlen zu erstellen. np.arange (-30,30,1) Von a-30 bis 30 können Sie numerische Werte mit einem Intervall von eins erstellen. 2: meshgrid (a, b) gibt einen Gitterpunkt am Schnittpunkt von a und b im eindimensionalen Array an und setzt ihn in X1 und X2.

#Wie man ein Netz macht
import numpy as np
a = np.arange(-30,30,1)
b = np.arange(-30,30,1)
print(a)
#[-30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13
# -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5
#   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23
#  24  25  26  27  28  29]

print(b)
#[-30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13
# -12 -11 -10  -9  -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5
#   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23
#  24  25  26  27  28  29]

X1, x2 = np.meshgrid(a, b)

print(X1)
#[[-30 -29 -28 ...  27  28  29]
# [-30 -29 -28 ...  27  28  29]
# [-30 -29 -28 ...  27  28  29]
# ...
# [-30 -29 -28 ...  27  28  29]
# [-30 -29 -28 ...  27  28  29]
# [-30 -29 -28 ...  27  28  29]]

print(X2)
#[[-30 -29 -28 ...  27  28  29]
# [-30 -29 -28 ...  27  28  29]
# [-30 -29 -28 ...  27  28  29]
# ...
# [-30 -29 -28 ...  27  28  29]
# [-30 -29 -28 ...  27  28  29]
# [-30 -29 -28 ...  27  28  29]]

import matplotlib.pyplot as plt
plt.scatter(X1,X2,s=1)
plt.show()

Zur Bestätigung habe ich ein zweidimensionales Streudiagramm von X1 und X2 gezeichnet, und es wurde wie folgt. scatter_Figure 2020-08-30 161126.png

Es ist ein Netz richtig. Berechnen Sie als Nächstes den Wert der Z-Achse und erstellen Sie ein dreidimensionales Diagramm. 3: Z berechnete die sogenannte Ackley-Funktion. Formel

{f(x_{1}, x_{2})=20-20\exp \biggl( -0.2\sqrt{\frac{1}{n}\sum_{i=1}^{n}x_{i}^2} \biggr) +e-\exp \biggl(\frac{1}{n}\sum_{i=1}^{n}\cos(2\pi x_{i}) \biggr)
}

Wenn Sie mit X1 und Z zeichnen, sieht das Diagramm vorerst wie folgt aus. x1_z_Figure 2020-08-30 162742.png

Zeichnen Sie ein 4: 3-dimensionales Diagramm. Verwenden Sie from mpl_toolkits.mplot3d import Axes3D, um eine Bibliothek zu importieren, die 3D-Diagramme zeichnet. "ax.plot_wireframe (X1, X2, Z)" erstellt einen dreidimensionalen Graphen.

plot_surface: Wird als Oberfläche angezeigt. surfaceFigure 2020-08-30 163457.png

plot_wireframe: Wird als Drahtrahmen angezeigt. wireflameFigure 2020-08-30 163108.png

Z =20 - 20 * np.exp(-0.2 * np.sqrt((X1 ** 2 + X2 ** 2) / 2)) + np.exp(1) - np.exp((np.cos(2 * np.pi * X1) + np.cos(2 * np.pi * X2)) / 2)

plt.scatter(X1,Z,s=1)
plt.show()


from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = Axes3D(fig)

#Wird im Drahtrahmen angezeigt
ax.plot_wireframe(X1, X2, Z)
#Anzeige auf der Oberfläche
#ax.plot_surface(X1, X2, Z, rstride=1, cstride=1, cmap='hsv')

plt.show()

Recommended Posts

So zeichnen Sie vor der Optimierung ein 3D-Diagramm
So zeichnen Sie ein Diagramm mit Matplotlib
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
Zeichnen Sie eine flache Oberfläche mit einem Matplotlib-3D-Diagramm
Zeichnen Sie eine "Boobs-Kurve" in einem 3D-Diagramm (1).
So zeichnen Sie mit matplotlib ein Balkendiagramm, das mehrere Serien zusammenfasst
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Zeichnen Sie eine "Boobs-Kurve" in einem 3D-Diagramm (2).
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
So rufen Sie eine Funktion auf
Wie man ein Terminal hackt
Zeichnen Sie mit networkx ein Diagramm
So verschieben Sie ein zweidimensionales Array nur mit Python [Hinweis]
[Visualisierung] Ich möchte mit Plotly ein schönes Diagramm zeichnen
Wie erstelle ich eine japanisch-englische Übersetzung?
Zeichne ein Diagramm mit Julia + PyQtGraph (2)
So setzen Sie einen symbolischen Link
Versuchen Sie, eine Bezier-Kurve zu zeichnen
Zeichnen Sie mit matplotlib ein loses Diagramm
Wie man einen lockeren Bot macht
So erstellen Sie ein Conda-Paket
Wie erstelle ich einen Crawler?
So erstellen Sie eine rekursive Funktion
So erstellen Sie eine virtuelle Brücke
Zeichne ein Diagramm mit Julia + PyQtGraph (1)
Zeichne ein Diagramm mit Julia + PyQtGraph (3)
Wie erstelle ich eine Docker-Datei?
[Blender] So erstellen Sie ein Blender-Plug-In
Zeichnen Sie ein Diagramm mit Pandas + XlsxWriter
So löschen Sie einen Docker-Container
Wie erstelle ich einen Crawler?
Zeichnen Sie ein Diagramm mit der PySimple-Benutzeroberfläche
So erstellen Sie eine Konfigurationsdatei
So erstellen Sie einen Klon aus Github
So teilen und speichern Sie einen DataFrame
So erstellen Sie eine Sphinx-Übersetzungsumgebung
So erstellen Sie einen Git-Klonordner
Qiita (1) Wie schreibe ich einen Codenamen?
So fügen Sie ein Paket mit PyCharm hinzu
[Python] Wie man eine Klasse iterierbar macht
(Matplotlib) Ich möchte ein Diagramm mit einer in Pixel angegebenen Größe zeichnen
[Colab] So kopieren Sie einen riesigen Datensatz
[Python] So invertieren Sie eine Zeichenfolge
So installieren Sie ein Paket mithilfe eines Repositorys
[Ubuntu] So führen Sie ein Shell-Skript aus
Wie bekomme ich Stacktrace in Python?
So setzen Sie in Python ein Leerzeichen mit halber Breite vor Buchstaben und Zahlen.
Wie zeichnet man eine vertikale Linie auf einer Heatmap, die mit Python Seaborn gezeichnet wurde?
So erstellen Sie ein Repository aus Medien
So erstellen Sie einen benutzerdefinierten Backtrader-Indikator
So wählen Sie eine Seaborn-Farbpalette aus
So testen Sie auf einer von Django authentifizierten Seite
Wie erstelle ich eine Pelican Site Map?
Zeichnen Sie einfach ein Diagramm, indem Sie eine Datei angeben
Zeichnen Sie ein Diagramm mit PyQtGraph Part 1-Drawing
So führen Sie Maya Python-Skripte aus
So zeichnen Sie ein OpenCV-Bild mit Pygame