Ich bin ein Anfängerprogrammierer, der als Teilzeitstudent bei einer Spielefirma namens Tecross studiert. Dieses Mal, als ich an der Graduiertenschule studierte, hatte ich ein wenig Probleme, ein 3D-Diagramm mit Python zu zeichnen, um die Daten zu analysieren, also werde ich es für mich selbst aufschreiben. Wenn das jemandem hilft ...
Zeichnen Sie ein Diagramm wie dieses. Die Zeit überschneidet sich mit der Achsenbeschriftung, aber das ist mir egal. Verwenden Sie matplotlib und Axes3D.
Ich bezog mich auf [Matplotlib] Erstellen eines linearen 3D-Graphen! Vielen Dank.
# -*- coding: utf-8 -*-
import numpy as np ###Ich möchte dieses Mal kein Numpy verwenden
import matplotlib.pyplot as plt ###Notwendig zum Zeichnen von Grafiken unabhängig von 2D3D
from mpl_toolkits.mplot3d import Axes3D ###Erforderlich für 3D
# (x, y, z)
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
z = [1, 2, 3, 4, 5]
#Plotten in 3D
fig = plt.figure()
ax = Axes3D(fig)
ax.plot(x, y, z)
#Achsenbeschriftung
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
#Anzeige
plt.show()
Wenn Sie es ausführen, wird es so sein
Lass uns knusprig werden.
Wenn Sie die for-Anweisung verwenden, ist es ein Moment.
# -*- coding: utf-8 -*-
import numpy as np ###Dieses Mal werden wir ein Numpy-Array verwenden, daher ist es notwendig
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
###Bereiten Sie eine 3D-Grafikbox vor(Vielleicht)
fig = plt.figure()
ax = Axes3D(fig)
###Machen Sie die x-Achse gemeinsam
x = [1, 2, 3, 4, 5]
###Dieses Mal machen wir drei Daten zu einem Diagramm.
for i in range(3):
###Mit 5 Elementen sind alle Elemente i
y = np.full(5,i)
###Eine Zufallszahl mit 5 Elementen und 0 oder mehr und 1 oder weniger Elementen
z = np.random.rand(5)
#Plotten in 3D
ax.plot(x, y, z)
#Achsenbeschriftung
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
#Anzeige
plt.show()
Wenn du rennst
Ich fühle mich so. Lass uns knusprig werden.
Zum Beispiel ein Bild, das die y-Achse auf "Januar, Februar, März" setzt.
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
###Ein Array, das y-Achsennummern enthält
y_num = np.array([])
###Ein Array, das die Zeichenfolge enthält, die Sie auf der y-Achse festlegen möchten
y_axis = np.array([])
x = [1, 2, 3, 4, 5]
for i in range(3):
y = np.full(5,i)
z = np.random.rand(5)
ax.plot(x, y, z)
y_num = np.append(y_num,i)
y_axis = np.append(y_axis,"{}data".format(i))
### y_num ist[0,1,2]
### y_Achse ist[0data,1data,2data]
plt.yticks(y_num,y_axis)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
Wenn du rennst
Schließe ~~ ab! !! !! Es ist einfach. Zuerst konnte ich ax.yticks () nicht anstelle von plt.yticks () verwenden ...
Wenn der numerische Abstand der Achsen im zweiten Diagramm zu klein oder zu groß ist, können Sie die Funktion ax.set_xticks () verwenden. Stellen Sie die y-Achse im letzten Diagramm auf Datum und Uhrzeit ein.
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
###Notwendig, wenn Sie Datum und Uhrzeit anzeigen möchten
from datetime import datetime
import time
fig = plt.figure()
ax = Axes3D(fig)
y_num = np.array([])
y_axis = np.array([])
x = [1, 2, 3, 4, 5]
for i in range(3):
y = np.full(5,i)
z = np.random.rand(5)
ax.plot(x, y, z)
y_num = np.append(y_num,i)
### y_Fügen Sie der Achse Datum und Uhrzeit als Zeichenfolge hinzu
y_axis = np.append(y_axis,"2019-1-1 11:11:0{}".format(i))
###Die Zeit, zu der es zu einer Zeichenfolge wurde, wird in datetime type geändert
temp_datetime = datetime.strptime(y_axis[i],'%Y-%m-%d %H:%M:%S')
###Extrahieren Sie nur die Zeit und machen Sie den String-Typ
y_axis[i] = temp_datetime.strftime('%H:%M:%S')
plt.yticks(y_num,y_axis)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
Wenn du rennst
Ich konnte die Grafik zeichnen, die ich anstrebte! !! Herzliche Glückwünsche.
Oh, ** Wenn Sie Datum und Uhrzeit mit Python verarbeiten möchten, verwenden Sie datetime. ** ** ** Menschen, die davon abhängig sind, sind davon abhängig. Beim Umgang mit Forschungsdaten ist Datum und Uhrzeit möglicherweise nicht Datum / Uhrzeit, es ist jedoch einfacher, sie in Datum / Uhrzeit zu ändern.
War es etwas zu knusprig? Bitte kommentieren Sie, wenn Sie eine Erklärung wünschen. Anhängen. Es kann sein, dass Datum und Uhrzeit fehlen. Bitte lassen Sie mich wissen, ob Sie elegant schreiben können.
Jetzt, wo ich Grafiken zeichnen kann, muss ich früh lernen. ..
Recommended Posts