Colorplot du tableau 2D matplotlib
Donc, je pensais que cela allait être très simple, mais j'ai eu beaucoup de mal à trouver exactement ce que je cherche dans un exemple compréhensible.
Fondamentalement, je veux faire des tracés de phase, donc en supposant que j'ai un tableau 2d, Comment puis-je obtenir matplotlib pour convertir cela en un tracé auquel je peux attacher des titres, des axes et des légendes (barres de couleur).
Je suis à la recherche d'une solution bare bones extrêmement simple qui utilise uniquement ce qui est requis qui fonctionnera avec N'importe quel 2D tableau.
Je suis certain que c'est simple et que je suis juste épais, mais j'ai vraiment beaucoup de problèmes avec ça.
J'ai utilisé les exemples, mais ils ne semblent pas bien adaptés à ce que j'essaie de faire: j'aime l'apparence générale de ce graphique, j'aimerais juste pouvoir passer un 2dArray et avoir le même résultat:
import numpy as np
import matplotlib as ml
import matplotlib.pyplot as plt
H = [[1,2,3,4][5,6,7,8][9,10,11,12][13,14,15,16]]
fig = plt.figure(figsize=(6, 3.2))
ax = fig.add_subplot(111)
ax.set_title('colorMap')
X,Y = np.meshgrid(xedges, yedges)
plt.pcolormesh(X, Y, H)
ax.set_aspect('equal')
cax = fig.add_axes([0.12, 0.1, 0.78, 0.8])
cax.get_xaxis().set_visible(False)
cax.get_yaxis().set_visible(False)
cax.patch.set_alpha(0)
cax.set_frame_on(False)
plt.colorbar(orientation='vertical')
plt.show()
2 réponses
J'ai peur que votre exemple posté ne fonctionne pas, puisque X et Y ne sont pas définis. Donc, au lieu de pcolormesh
utilisons imshow
:
import numpy as np
import matplotlib.pyplot as plt
H = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]]) # added some commas and array creation code
fig = plt.figure(figsize=(6, 3.2))
ax = fig.add_subplot(111)
ax.set_title('colorMap')
plt.imshow(H)
ax.set_aspect('equal')
cax = fig.add_axes([0.12, 0.1, 0.78, 0.8])
cax.get_xaxis().set_visible(False)
cax.get_yaxis().set_visible(False)
cax.patch.set_alpha(0)
cax.set_frame_on(False)
plt.colorbar(orientation='vertical')
plt.show()
Voici L'exemple le plus simple qui a les lignes clés de code:
import numpy as np
import matplotlib.pyplot as plt
H = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
plt.imshow(H)
plt.show()