[PYTHON] Hinweise, was zu tun ist, wenn das Löschen von Schatten nicht mit Scatter () / Scatter3d () von Matplotlib funktioniert

Beim Erstellen eines 3D-Streudiagramms und beim Übergeben einer Liste von Werten für das Farbschema an Scatter () geht die Beseitigung der verborgenen Oberfläche schief.

Erste Schlussfolgerung: Ich habe es aufgegeben, die Sprühdaten in Liste und Scatter () einzeln zu übergeben, um das Problem zu lösen.


Bei Verwendung der Streuzeichnungsmethode streuung () Normalerweise möchte ich die Markerposition und den Farbcodierungswert in einer Liste übergeben.

Liste xs,ys,zs,Beim Passieren vs.


ax.scatter(xs, ys, zs, c=vs, norm=norm, s=600, marker='o', alpha=1.0, zdir='z', depthshade=False )

Aus irgendeinem Grund wurde die Löschung der verborgenen Oberfläche jedoch verrückt, sobald ich das Farbschema mit c = vs bestanden hatte. Es kommt vor, dass der vorderste Marker hinter dem innersten Marker versteckt ist und nicht gesehen werden kann. (Vielleicht hängt es von der Version ab.)


Aktion: Als Ergebnis von allem, was mir einfällt Es war normal, wenn ich "zerstreue () jeweils einen Marker in der for-Anweisung" setze.

Streuung für jeden()


ax = fig.add_subplot( 122, projection='3d')
for x,y,z,v in zip(xs,ys,zs,vs):
    ax.scatter(x, y, z, c=(v,),norm=norm, s=600, marker='o', alpha=1.0, zdir='z', depthshade=False )

Das Folgende ist ein Beispiel:

Vergleich löschen


def plot():
    def randrange(n, vmin, vmax):
        return (vmax - vmin)*np.random.rand(n) + vmin

    n = 20
    xs = randrange(n, 0, 100)
    ys = randrange(n, 0, 100)
    zs = randrange(n, 0, 100)
    vs = xs
    norm = Normalize(vmin=min(vs), vmax=max(vs) )
    
    fig = plt.figure()
    ax = fig.add_subplot(121, projection='3d')
    ax.scatter(xs, ys, zs, c=vs, norm=norm, s=600, marker='o', alpha=1.0, zdir='z', depthshade=False )
    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')
    
    ax = fig.add_subplot( 122, projection='3d')
    for x,y,z,v in zip(xs,ys,zs,vs):
        ax.scatter(x, y, z, c=(v,),norm=norm, s=600, marker='o', alpha=1.0, zdir='z', depthshade=False )

    ax.set_xlabel('X')
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')

    plt.show()

Python3.8-Ausführungsergebnis ↓ 3DPlotColoring_compare.png

↑ Wenn die linke Figur als Liste übergeben wird und die rechte Figur einzeln übergeben wird. (Ich wollte in eine Richtung zeichnen, die leicht zu unterscheiden ist)

Die Abbildung rechts ist normal.

wichtiger Punkt:

    1. Wenn Sie Scatter () für jeden Marker aufrufen, um den Farbbereich zu vereinheitlichen Korrigieren Sie den Bereich mit norm = Normalize und übergeben Sie ihn mit norm = norm an dispers ().
  1. Die Scatter () Option "Tiefenschatten = Wahr" ist sehr langsam. Es scheint standardmäßig True zu sein, setzen Sie also unbedingt "Tiefenschatten = False".

Recommended Posts

Hinweise, was zu tun ist, wenn das Löschen von Schatten nicht mit Scatter () / Scatter3d () von Matplotlib funktioniert
Verfahren, die durchgeführt werden müssen, wenn Japanisch nicht in matplotlib angezeigt wird
Was tun, wenn python3 venv auf Raspberry Pi nicht gut funktioniert?
Beispiel, was zu tun ist, wenn das Beispielskript nicht funktioniert (OpenCV-Python)
Was tun, wenn das Diagramm nicht auf dem Jupyter-Notizbuch (Ipython) angezeigt wird?
[EC2] Was tun, wenn Selen festsitzt und die Verarbeitung nicht fortgesetzt wird?
Was tun, wenn sys / cdefs.h nicht vorhanden ist?
Was tun, wenn in GAE "Typfehler: muss _socket.socket sein, nicht Socket" angezeigt wird
Was tun, wenn `pip install matplot lib` auf dem Mac fehlschlägt?
Was tun, wenn Jupyter Notebook unter WSL nicht automatisch im Browser gestartet wird?
Was tun, wenn Ubuntu abstürzt?
LocateCenterOnScreen funktioniert nicht mit PyAutoGui
Was tun, wenn Python unter Git für Windows nicht funktioniert?
Was tun, wenn die Einstellungen der jupyterlab-Erweiterung nicht angezeigt werden?
Wenn das auf Mac / Marvericks installierte Programm pip nicht funktioniert
[Anfänger] Was tun, wenn "[Errno 2] Datei b'test.csv 'nicht vorhanden ist: b'test.csv" beim Lesen von csv von Pandas angezeigt wird
[virtualbox] Was tun, wenn [Spiegelliste nicht abgerufen werden konnte] angezeigt wird, wenn ein yum-Update unter CentOS7 durchgeführt wird?
Virtualenv funktioniert nicht unter Python 3.5 (Windows)
Was tun, wenn bei der Installation von pyenv kein Fehler auftritt?
Was tun, wenn bei der Installation von CentOS auf VirtualBox die Meldung "Die Sitzung konnte nicht geöffnet werden" angezeigt wird
[Mac OS] Was tun, wenn Python nicht als Framework installiert ist? Wird angezeigt, wenn der Import von matplot lib ausgeführt wird.
Was tun, wenn Sie wütend werden, wenn Sie nicht libxml / xmlversion.h haben, wenn Sie lxml in pip einfügen?
Ich habe es geschafft, die Situation zu lösen, in der Python auf dem Mac nicht funktioniert
Was tun, wenn CERTIFICATE_VERIFY_FAILED auftritt, wenn nltk.download () unter macOS pyhon ausgeführt wird?
Was tun, wenn bei Verwendung von strptime "TypeError: muss Zeichenfolge sein, nicht int ..." angezeigt wird
Was tun, wenn die Schienen nicht funktionieren?
Was tun, wenn Scrapy nach der Installation von Scrapy mit Pip auf dem Mac nicht funktioniert?
Jinja2 2.9.6 funktioniert nicht mit der Lambda Python 3-Serie
Was tun, wenn "TypeError: Datentyp nicht verstanden" in der Python-Datei numpy.zeros angezeigt wird?
Was tun, wenn die Autocomplete-Python von Atom nicht funktioniert?
Wenn die Platzhalterspezifikation mit Pylint nicht funktioniert
Was tun, wenn die japanische Unterstützung unter Ubuntu 16.04 nicht vollständig installiert ist?
Was tun, wenn matplotlib über CentOS wütend wird und sagt: "Ich verwende Agg, damit ich keine Zahl ausgeben kann."
Was tun, wenn bei der Installation von openCV 3 der Fehler "Fehler: opencv3: Unterstützt nicht das Erstellen von Python 2- und 3-Wrappern" angezeigt wird
[Python] Typ Fehler: 'WebElement'-Objekt ist nicht iterierbar Was tun, wenn ein Fehler auftritt?
Was zu tun ist, wenn es nicht in der Sudoers-Datei enthalten ist. Dieser Vorfall wird gemeldet.
Was tun, wenn beim Importieren von matplotlib in Python (Mac) eine Fehlermeldung angezeigt wird?
Was tun, wenn Pythons IntelliSense in VS Code unter Windows nicht angezeigt wird?
Was tun, wenn beim Importieren von matplotlib mit Jupyter ein Importfehler auftritt?
Was tun, wenn Python in pyenv nicht von der Systemversion wechselt?
Was tun, wenn bei Verwendung von ts-node-dev unter Linux der Fehler "ERR_FEATURE_UNAVAILABLE_ON_PLATFORM" angezeigt wird?
[Go 1.13] Was tun, wenn ein unerwartetes Verzeichnislayout angezeigt wird?
[openpyxl] Was tun, wenn IllegalCharacterError in pandas.DataFrame.to_excel angezeigt wird?
curl: (60) Was tun, wenn das Ausstellerzertifikat ungültig ist?
Was tun, wenn gdal_merge eine große Datei generiert?
Befehl, wenn das Herunterfahren von ACPI in VirtualBox nicht funktioniert
Was tun, wenn "Name xxx nicht importiert werden kann" [Python]
Was tun, wenn pyenv nicht aktiviert ist (zsh)
[Kleine Geschichte] Was tun, wenn "Fehler beim untergeordneten Prozess: Erstellen von resource'awsToolkitSamLocalResource '" nicht funktioniert, wenn Lambda lokal von SAM aus VS Code ausgeführt wird
Die parallele Verarbeitung der Python-Joblib funktioniert in der uWSGI-Umgebung nicht. Wie verarbeite ich parallel auf uWSGI?
Was tun, wenn unter Linux die Fehlermeldung "Namensauflösung vorübergehend fehlgeschlagen" ausgegeben wird?
Was tun, wenn das Bild nicht mit matplotlib usw. im Docker-Container angezeigt wird?
Was tun, wenn ein nicht in pom.xml definiertes Glas zu einem fehlenden Artefakt wird?
[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?