La méthode de dessin d'un histogramme bidimensionnel avec python est célèbre en utilisant Matplotlib ou OpenCV.
Dans cet article, lors de la création d'un histogramme 2D avec Matplotlib, notez comment exporter l'histogramme sous forme de tableau 2D vers un fichier texte.
L'article de @ Supersaiakujin est recommandé pour savoir comment créer une image d'histogramme en deux dimensions à l'aide de Matplotlib.
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
Le plan est de créer un histogramme bidimensionnel en passant deux tableaux numpy qui sont les données d'origine à la fonction "hist2d" de la bibliothèque "Matplotlib".
Il est à noter qu'il est nécessaire de créer "un tableau avec seulement des coordonnées x" et "un tableau avec seulement des coordonnées y" pour les deux tableaux numpy qui sont les données d'origine, respectivement.
Un tel histogramme bidimensionnel peut être écrit avec l'exemple de programme suivant.
hist2d
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
#données brutes
x = (1.1,1.1,3.2,3.1,1.1,2.1,1.1)
y = (-1.1,-2.1,-2.1,-2.1,-3.1,-2.1,-2.1)
#Préparation pour le dessin graphique
fig = plt.figure()
ax = fig.add_subplot(111)
#Créer un histogramme hist2d(Tableau,Tableau,Spécifier la plage de dessin(Limite inférieure, limite supérieure, nombre de divisions),Spécification de la teinte de la barre de couleur)
H = ax.hist2d(x,y, bins=[np.linspace(-5,5,10),np.linspace(-5,5,10)], cmap=cm.jet)
ax.set_title('1st graph')
ax.set_xlabel('x')
ax.set_ylabel('y')
fig.colorbar(H[3],ax=ax)
plt.show()
La fonction save de numpy est pratique pour écrire les valeurs de l'histogramme bidimensionnel sous forme de tableau dans un fichier texte ou csv.
savetxt
#Créer un histogramme hist2d(Tableau,Tableau,Spécifier la plage de dessin(Limite inférieure, limite supérieure, nombre de divisions),Spécification de la teinte de la barre de couleur)
H = ax.hist2d(x,y, bins=[np.linspace(-5,5,10),np.linspace(-5,5,10)], cmap=cm.jet)
np.savetxt("2Dhist-array.txt", H[0], fmt = "%s")
Si vous vérifiez la valeur de retour de hist2d dans le manuel officiel de Matplotlib, vous pouvez voir que la première valeur de retour est la valeur de l'histogramme. Par conséquent, H [0] est retiré.
fmt = "% s" est un format de chaîne.
hist2d | |
---|---|
H[0] | La valeur de l'histogramme(Un tableau bidimensionnel) |
H[1] | valeur de division sur l'axe des x (tableau unidimensionnel) |
H[2] | Valeur de division sur l'axe Y (tableau unidimensionnel) |
H[3] | Informations sur la barre de couleur(QuadMesh) |
#Créer un histogramme hist2d(Tableau,Tableau,Spécifier la plage de dessin(Limite inférieure, limite supérieure, nombre de divisions),Spécification de la teinte de la barre de couleur)
H = ax.hist2d(x,y, bins=[np.linspace(-5,5,10),np.linspace(-5,5,10)], cmap=cm.jet)
print(H[0])
>>>[[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 1. 2. 1. 0. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0. 0. 0. 0.]
[0. 0. 2. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]]
En ce qui concerne le tableau de sortie, un tableau unidimensionnel est généré le long de l'axe y.
J'ai rassemblé ce code.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
#données brutes
x = (1.1,1.1,3.2,3.1,1.1,2.1,1.1)
y = (-1.1,-2.1,-2.1,-2.1,-3.1,-2.1,-2.1)
#Préparation pour le dessin graphique
fig = plt.figure()
ax = fig.add_subplot(111)
#Créer un histogramme hist2d(Tableau,Tableau,Spécifier la plage de dessin,Spécification de la teinte de la barre de couleur)
H = ax.hist2d(x,y, bins=[np.linspace(-5,5,10),np.linspace(-5,5,10)], cmap=cm.jet)
ax.set_title('1st graph')
ax.set_xlabel('x')
ax.set_ylabel('y')
fig.colorbar(H[3],ax=ax)
plt.show()
#Exporter l'histogramme 2D dans un fichier texte
np.savetxt("2Dhist-array.txt", H[0], fmt = "%s")
Recommended Posts