Ich plane eine Oberfläche mit Matplotlib 1.1.0.
Die Z-Achse der Zeichnung ist wie folgt maskiert:
%Vor%Aber ich sehe die Maske nicht in der Handlung. Ich habe die Maske selbst als Subplot geplottet
%Vor%Was funktioniert hat, weiß ich, dass meine Maske tatsächlich True-Werte enthält.
Vollständiger Code:
%Vor%Das habe ich:
Das ist was ich will (von Matlab):
Was vermisse ich?
Sie können es tun, aber Sie müssen es tun, indem Sie die Oberflächenseiten manuell einfärben;
Die cmap-Funktion nimmt einen nubmer zwischen 0 und 1, also müssen wir nur die Werte normalisieren, bevor sie die cmap-Funktion aufrufen.
%Vor%
Ich sollte auch darauf hinweisen, dass matplotlib Ihr z-Array zu real macht - ob Sie dies absichtlich nutzen, obwohl ich es nicht weiß.
Fraxel erwähnte, dass surface_plot die Maskierung nicht unterstützt. Um das Problem zu umgehen, habe ich Folgendes gemacht:
Ich maskierte die z-Achsen-Daten im Grunde manuell, indem ich jeden maskierten Wert wie folgt auf numpy.nan setzte:
%Vor%
Allerdings hat es meine Colormap-Skalierung durcheinander gebracht. Um das zu beheben, habe ich Folgendes getan:
%Vor%
Nicht 100% was ich wollte, aber trotzdem ein guter Kompromiss.
Tags und Links python matplotlib numpy