Setzen von Punkten ohne Daten auf Weiß mit Matplotlib imshow

8

Ich zeichne Daten aus einem numply-Array mit matplotlib imshow. Einige Punkte enthalten jedoch keine Daten. Ich habe das Array mit np.zeroes initialisiert, sodass diese Punkte die gesamte Map nach unten ziehen. Ich weiß, dass keines der Daten jemals einen Wert von 0,0 haben wird. Gibt es eine Möglichkeit für mich, der Imshow-Routine zu sagen, diese Punkte zu ignorieren (dh sie weiß zu lassen, damit klar ist, dass sie leer sind)?

    
Elliot 11.04.2012, 21:59
quelle

2 Antworten

10

Haben Sie versucht, Ihr Array mit NaNs anstelle von Nullen zu instanziieren, um zu sehen, ob der Standard von matplotlib die NaNs auf eine Weise ignoriert, die für Sie funktioniert? Sie können auch versuchen, einfach die logische Indizierung zu verwenden, um die Positionen von 0 gleich NaN vor dem Zeichnen zu machen:

%Vor%

Alternativ können Sie die NaN-Idee und folgen Sie den Hinweisen dieses Links und verwenden Sie NumPy maskierte Arrays, um die NaN-Einträge als eine Farbe darzustellen, die Sie bevorzugen.

Ich denke, du könntest auch die Idee dieses Links verwenden, um ein maskiertes Array an den Nullstellen zu erstellen, ohne die NaN-Option zu wählen, wenn es dir nicht gefällt.

    
ely 11.04.2012, 22:08
quelle
3

Füllen Sie das Array mit Python None für Punkte, die nicht angezeigt werden sollen.

%Vor%

In diesem Beispiel verschwindet die Zeile y_series_1 von der X-Achse am zweiten und dritten Punkt. Das Ergebnis sind Zeilenumbrüche (Zeile beginnt, verschwindet, geht dann am vierten Punkt weiter), was meiner Meinung nach das Verhalten ist, nach dem Sie suchen.

    
Devin Venable 19.12.2012 15:25
quelle

Tags und Links