Je voudrais placer une légende sous l'image dessinée par le module spectral. Je me demande s'il y a une manière intégrée de faire ceci? Je n'ai rien trouvé à propos de faire des légendes dans le spectral API.Légende de l'étiquette spectrale (SPy)
Voici un exemple
img = np.array([111, 112, 113, 121, 122, 123, 131, 132, 133,
211, 212, 213, 221, 222, 223, 231, 232, 233,
311, 312, 313, 321, 322, 323, 331, 332, 333]).reshape((3,3,3))
labels = np.array([0, 1, 1, 2, 2, 2, 3, 3, 3]).reshape((3,3))
Je peux dessiner img
avec ce labels
comme ceci:
from spectral import imshow as spyShow
imageView = spyShow(data=img, bands=(0,1,2), classes=labels, fignum=1, interpolation='none')
imageView.set_display_mode('overlay')
Maintenant, je voudrais placer une légende sous l'image.
labelDictionary={0:'Unknown', 1:'Gravel', 2:'Aslphalt', 3:'Glass'}
À partir du code source, je vois que les couleurs de l'étiquette sont prises à partir de:
spectral.spy_colors
En outre, ils sont dessinés avec le code suivant:
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap, NoNorm
cm = ListedColormap(np.array(spectral.spy_colors)/255.)
plt.imshow(a, cmap=cm, vmin = 0, interpolation='none', norm=NoNorm())
Je pense que je pourrais extraire les couleurs et les mapper aux étiquettes et aux noms d'étiquettes en utilisant une fonction personnalisée. Est-ce la bonne façon de faire la légende, ou est-il un moyen tout prêt, pour le bien de ne pas réinventer la roue ...