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()
25
demandé sur Slater Victoroff 2013-05-11 05:19:13

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()
37
répondu heltonbiker 2016-02-06 18:36:27

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()
6
répondu user185160 2017-11-14 00:46:08