Ich möchte eine Legende unter dem Bild von der spectral-Modul gezeichnet. Ich frage mich, ob es einen eingebauten Weg dafür gibt? Ich habe nichts über Legendenbildung in der spectral API gefunden.Spectral (SPy) Label-Legende
Hier ist ein Beispiel
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))
I img
mit labels
dieser wie folgt ziehen:
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')
Nun würde Ich mag eine Legende unter dem Bild platzieren.
labelDictionary={0:'Unknown', 1:'Gravel', 2:'Aslphalt', 3:'Glass'}
aus dem Quellcode sehe ich, dass die Etikettenfarben aus gesetzt werden:
spectral.spy_colors
Ferner sind sie mit dem folgenden Code erstellt:
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())
Ich glaube, ich diejenigen extrahieren könnte Farben und ordnen Sie sie den Beschriftungen und Beschriftungen mit einer benutzerdefinierten Funktion zu. Ist dies der richtige Weg, um die Legende zu machen, oder gibt es eine fertige Art und Weise, zum Zweck der nicht das Rad neu zu erfinden ...