[Python] [3D line graph] Plusieurs données dans un graphique, valeurs d'axe en caractères

Je suis un programmeur débutant qui étudie en tant qu'étudiant à temps partiel dans une société de jeux appelée Tecross. Cette fois, alors que j'étudiais à l'école doctorale, j'ai eu un peu de mal à dessiner un graphique 3D avec python pour analyser les données, donc je l'écrirai moi-même. Si cela aide quelqu'un ...

introduction

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

Dessinez un graphique comme celui-ci. Le temps chevauche le libellé de l'axe, mais je m'en fiche. Utilisez matplotlib et Axes3D.

Essayez de tracer quelque chose en 3D pour le moment

J'ai fait référence à [Matplotlib] Créer un graphe linéaire 3D! Merci beaucoup.

# -*- coding: utf-8 -*-
import numpy as np         ###Je ne veux pas utiliser numpy cette fois
import matplotlib.pyplot as plt        ###Nécessaire pour dessiner des graphiques indépendamment de 2D3D
from mpl_toolkits.mplot3d import Axes3D      ###Requis pour la 3D

# (x, y, z)
x = [1, 2, 3, 4, 5]
y = [1, 2, 3, 4, 5]
z = [1, 2, 3, 4, 5]
#Tracer en 3D
fig = plt.figure()
ax = Axes3D(fig)
ax.plot(x, y, z)
#Étiquette d'axe
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
#afficher
plt.show()

Si vous l'exécutez, ce sera comme ça スクリーンショット 2019-11-29 23.18.35.png

Allons croustillant.

Dessinez plusieurs tableaux sur un graphique

Si vous utilisez l'instruction for, c'est un moment.

# -*- coding: utf-8 -*-
import numpy as np       ###Cette fois, nous utiliserons un tableau numpy, il est donc nécessaire
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

###Préparer une boîte graphique 3D(Peut-être)
fig = plt.figure()
ax = Axes3D(fig)

###Rendre l'axe des x commun
x = [1, 2, 3, 4, 5]

###Cette fois, nous allons créer trois données en un seul graphique.
for i in range(3):

	###Avec 5 éléments, tous les éléments sont i
	y = np.full(5,i)

	###Un nombre aléatoire avec 5 éléments et 0 ou plus et 1 ou moins éléments
	z = np.random.rand(5)
	
	#Tracer en 3D
	ax.plot(x, y, z)

#Étiquette d'axe
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
#afficher
plt.show()

Quand tu cours スクリーンショット 2019-11-29 23.34.54.png

Je me sens comme cela. Allons croustillant.

Je veux définir la valeur de l'axe sur string! !!

Par exemple, une image qui définit l'axe des y sur "Janvier, février, mars".

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

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

###Un tableau contenant des nombres sur l'axe des y
y_num = np.array([])
###Un tableau contenant la chaîne de caractères que vous souhaitez définir sur l'axe des y
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 est[0,1,2]
### y_l'axe est[0data,1data,2data]

plt.yticks(y_num,y_axis)

ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')

plt.show()

Quand tu cours

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

Terminer ~~! !! !! C'est facile. Au début, je ne pouvais pas utiliser ax.yticks () au lieu de plt.yticks () ...

Au fait

Dans le deuxième graphique, si l'espacement numérique des axes est trop petit ou trop grand, vous pouvez utiliser la fonction ax.set_xticks (). Définissons l'axe des y sur la date et l'heure du dernier graphique.

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

###Nécessaire si vous souhaitez afficher la date et l'heure
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_Ajouter la date et l'heure sous forme de chaîne à l'axe
	y_axis = np.append(y_axis,"2019-1-1 11:11:0{}".format(i))
	###L'heure à laquelle il est devenu une chaîne est modifiée en type datetime
	temp_datetime = datetime.strptime(y_axis[i],'%Y-%m-%d %H:%M:%S')
	###Extraire uniquement le temps et le rendre de type chaîne
	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()

Quand tu cours スクリーンショット 2019-11-29 23.57.46.png

J'ai pu dessiner le graphique que je visais! !! Toutes nos félicitations.

Oh, ** Si vous voulez traiter la date et l'heure avec python, utilisez datetime. ** ** Les gens qui en sont dépendants en sont dépendants. Lorsqu'il s'agit de données de recherche, le type de date et d'heure peut ne pas être datetime, mais il est plus facile de le changer en datetime.

À la fin

Était-ce un peu trop croustillant? Veuillez commenter si vous souhaitez une explication. Ajouter. Il peut être écrit d'une manière manquante pour la date et l'heure. S'il vous plaît laissez-moi savoir si vous pouvez écrire avec élégance.

Maintenant que je peux dessiner des graphiques, je dois étudier tôt. ..

Recommended Posts

[Python] [3D line graph] Plusieurs données dans un graphique, valeurs d'axe en caractères
Fizzbuzz en Python (en une ligne)
Segfo python en une ligne
Gérez plusieurs versions de python en un seul jupyter
CGI Server (1) édition python en une ligne
Représentez facilement des données graphiques dans le shell et Python
Décomposer les arguments de commande en une seule ligne en Python
[Python] Inversion de valeur booléenne en une ligne
[Python] (Line) Extraire les valeurs des images graphiques
[Python] axe limite du graphe 3D avec Matplotlib
Créez un jeu Janken en une seule ligne (python)
Plusieurs graphiques sont affichés dans une seule fenêtre (python)
Une doublure en Python
Lecture de texte Python pour plusieurs lignes et une ligne
Dessin graphique avec python
Jusqu'à dessiner un graphe 3D avec Python dans Windows10
Échange de valeurs en Python
Dessiner un graphique avec python
Décrypter une ligne de code en Python lambda, carte, liste
Graphique des données de séries chronologiques en Python à l'aide de pandas et matplotlib
Expression de régression multiple en Python
Gérer les données ambiantes en Python
php caractères continus en un
Afficher les données UTM-30LX en Python
DMD en Python 1D
Essayez LINE Notify avec Python
Résoudre ABC175 D en Python
Évitez les boucles multiples en Python
Transférer les valeurs des paramètres en Python
Comment afficher les marques de légende en un avec le tracé Python 2D
Extraire plusieurs doublons de liste en Python
Obtenez des données LeapMotion en Python.
[Python] Afficher plusieurs fenêtres avec Tkinter
Lire les données des tampons de protocole avec Python3
Obtenir des données de Quandl en Python
Gérez les données au format NetCDF avec Python
Afficher des caractères comme AA en python
Hashing de données en R et Python
Énumération des nombres premiers sur une ligne
Test statistique (test multiple) en Python: scikit_posthocs
Livre Ali en python: Graphique Sec.2 à 5
Supprimer plusieurs éléments dans la liste python
J'ai essayé la notification de ligne en Python
[Introduction] Insérer des sauts de ligne dans Python 3
[Python scipy] Augmentation / réduction de l'échelle des données 2D
Implémenté en 1 minute! LINE Notify en Python