Visualisierung von Punktwolken mit überlappenden Punkte in matplotlib
Ich zu vertreten haben über 30.000 Punkte in einem scatterplot in matplotlib. Diese Punkte gehören zu zwei verschiedenen Klassen, so möchte ich, um darzustellen, Sie mit verschiedenen Farben.
Ich es dabei, aber es gibt ein Problem. Die Punkte überschneiden sich in vielen Regionen und die Klasse, die ich zeigen für die letzten visualisiert werden auf der Oberseite des anderen, es zu verbergen. Darüber hinaus, mit der scatter-plot nicht möglich ist, zu zeigen, wie viele Punkte liegen in der jeweiligen region.
Ich habe auch versucht ein 2d-Histogramm mit histogram2d und imshow, aber es ist schwer zu zeigen, die Punkte, die Zugehörigkeit zu beiden Klassen in einer klaren Art und Weise.
Können Sie vorschlagen, ein Weg, um sowohl die Verteilung der Klassen und die Konzentration der Punkte?
EDIT: um deutlicher Zu sein, das ist die
link auf meine Daten-Datei im format "x,y,Klasse"
InformationsquelleAutor der Frage markusian | 2013-09-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Ansatz, um eine Darstellung der Daten als scatter-plot mit einem niedrigen alpha -so können Sie die einzelnen Punkte sowie ein grobes Maß der Dichte. (Der Nachteil dabei ist, dass der Ansatz hat eine begrenzte Reichweite von überschneidungen kann es zeigen, D. H., eine maximale Dichte von ungefähr 1/alpha.)
Hier ein Beispiel:
Als Sie sich vorstellen können, aufgrund der begrenzten Palette von überschneidungen, die ausgedrückt werden kann, gibt es einen Kompromiss zwischen der Sichtbarkeit der einzelnen Punkte und der Ausdruck der überlappung (und die Größe der marker, Grundstück, etc).
(Ich gehe davon aus, dass hier gemeint 30e3 Punkte, nicht 30e6. Für 30e6, ich denke, manche geben der gemittelten Dichte Handlung notwendig wäre.)
InformationsquelleAutor der Antwort tom10
Könnte man auch die Farbe der Punkte, indem Sie zuerst die Berechnung einer kernel-Dichte-Schätzung der Verteilung der Streuung, und mit Hilfe der Dichte-Werte, die angeben, eine Farbe für jeden Punkt der Streuung. Ändern Sie den code in das frühere Beispiel :
Ich gelernt, diesen trick vor einer Weile, als ich bemerkte, wie die Dokumentation der scatter-Funktion -
InformationsquelleAutor der Antwort vishakad