[Python] [3D-Liniendiagramm] Mehrere Daten in einem Diagramm, Achsenwerte in Zeichen

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 ...

Einführung

スクリーンショット 2019-11-29 22.56.27.png

Zeichnen Sie ein Diagramm wie dieses. Die Zeit überschneidet sich mit der Achsenbeschriftung, aber das ist mir egal. Verwenden Sie matplotlib und Axes3D.

Versuchen Sie vorerst, etwas in 3D zu zeichnen

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 スクリーンショット 2019-11-29 23.18.35.png

Lass uns knusprig werden.

Zeichnen Sie mehrere Arrays in einem Diagramm

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 スクリーンショット 2019-11-29 23.34.54.png

Ich fühle mich so. Lass uns knusprig werden.

Ich möchte den Wert der Achse auf string setzen! !!

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

スクリーンショット 2019-11-29 23.48.20.png

Schließe ~~ ab! !! !! Es ist einfach. Zuerst konnte ich ax.yticks () nicht anstelle von plt.yticks () verwenden ...

Apropos

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 スクリーンショット 2019-11-29 23.57.46.png

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.

Am Ende

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

[Python] [3D-Liniendiagramm] Mehrere Daten in einem Diagramm, Achsenwerte in Zeichen
Fizzbuzz in Python (in einer Zeile)
Segfo Python in einer Zeile
Behandeln Sie mehrere Python-Versionen in einem Jupyter
CGI Server (1) Python Edition in einer Zeile
Zeichnen Sie Daten einfach in Shell und Python
Zerlegen Sie Befehlsargumente in einer Zeile in Python
[Python] Bool-Wertinversion in einer Zeile
[Python] (Linie) Extrahieren Sie Werte aus Diagrammbildern
[Python] Grenzachse des 3D-Graphen mit Matplotlib
Mach ein Janken-Spiel in einer Zeile (Python)
In einem Fenster werden mehrere Grafiken angezeigt (Python).
Ein Liner in Python
Python-Textlesung für mehrere Zeilen und eine Zeile
Diagrammzeichnung mit Python
Bis zum Zeichnen eines 3D-Diagramms mit Python in Windows 10
Werte in Python austauschen
Zeichnen Sie ein Diagramm mit Python
Entschlüsseln Sie eine Codezeile in Python Lambda, Karte, Liste
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Mehrfacher Regressionsausdruck in Python
Behandeln Sie Umgebungsdaten in Python
PHP fortlaufende Zeichen in einem
Zeigen Sie UTM-30LX-Daten in Python an
DMD in Python 1D
Versuchen Sie LINE Notify mit Python
Löse ABC175 D in Python
Vermeiden Sie mehrere Schleifen in Python
Übertragen Sie Parameterwerte in Python
Anzeigen von Legendenmarkierungen in einem mit Python 2D-Plot
Extrahieren Sie mehrere Listenduplikate in Python
Holen Sie sich LeapMotion-Daten in Python.
[Python] Mit Tkinter mehrere Fenster anzeigen
Lesen Sie die Protokollpufferdaten mit Python3
Behandeln Sie Daten im NetCDF-Format mit Python
Zeigen Sie Zeichen wie AA in Python an
Hashing von Daten in R und Python
Primzahlaufzählung in einer Zeile
Statistischer Test (Mehrfachtest) in Python: scikit_posthocs
Ali Buch in Python: Sec. 2-5 Graph
Löschen Sie mehrere Elemente in der Python-Liste
Ich habe Line Benachrichtigung in Python versucht
[Einführung] Fügen Sie Zeilenumbrüche in Python 3 ein
[Python scipy] Upscaling / Downscaling von 2D-Daten
Implementiert in 1 Minute! LINE Benachrichtigen in Python