Ich versuche ein interaktives Programm zu erstellen, das hauptsächlich matplotlib verwendet, um Scatter-Plots von ziemlich vielen Punkten (10k-100k oder so) zu erstellen. Momentan funktioniert es, aber die Änderungen dauern zu lange. Eine kleine Anzahl von Punkten ist in Ordnung, aber sobald die Zahl steigt, werden die Dinge in Eile frustrierend. Also arbeite ich an Möglichkeiten, die Streuung zu beschleunigen, aber ich habe nicht viel Glück
Es gibt den offensichtlichen Weg, etwas zu tun (so wie es jetzt implementiert wird) (Ich realisiere, dass der Plot ohne Aktualisierung neu gezeichnet wird. Ich wollte das fps-Ergebnis bei großen Aufrufen nicht zufällig ändern).
%Vor%Was eine schnelle 0,7 fps
ergibtAlternativ kann ich die von scatter zurückgegebene Sammlung bearbeiten. Dafür kann ich Farbe und Position ändern, weiß aber nicht, wie ich die Größe jedes Punktes ändern soll. Das würde ich in etwa so sehen.
%Vor%Dies führt zu langsameren 0,7 fps. Ich wollte versuchen, CircleCollection oder RegularPolygonCollection zu verwenden, da ich dadurch die Größe leicht ändern kann, und es ist mir egal, den Marker zu ändern. Aber ich kann nicht zeichnen, also habe ich keine Ahnung, ob sie schneller wären. Also, an dieser Stelle suche ich nach Ideen.
Ich habe das einige Male durchgespielt und versucht, Streudiagramme mit einer großen Anzahl von Punkten zu beschleunigen, indem ich es auf verschiedene Weise versuche:
Und keines dieser Dinge hat funktioniert. Matplotlib ist einfach nicht sehr leistungsfähig, wenn es um Streudiagramme geht. Meine einzige Empfehlung ist, eine andere Plot-Bibliothek zu verwenden, obwohl ich persönlich keine passende gefunden habe. Ich weiß, das hilft nicht viel, aber es kann dir einige Stunden fruchtloses Basteln ersparen.
Tags und Links python matplotlib scatter