Matplotlib: Vermeiden Sie überlappende Datenpunkte in einem "Streu / Punkt / Bienenwarm" -Plot

Beim zeichnen eines dot-plot mit matplotlib, ich möchte offset-überlappender Datenpunkte zu halten Sie alle sichtbar. Für Beispiele, wenn ich

CategoryA: 0,0,3,0,5  
CategoryB: 5,10,5,5,10  

Ich wollen, dass jeder die CategoryA "0" Datenpunkte festgelegt werden, Seite an Seite, anstatt direkt auf der jeweils anderen, während immer noch deutlich vom CategoryB.

In R (ggplot2) es ist ein "jitter" option, die dies tut. Gibt es eine ähnliche option in matplotlib, oder gibt es einen anderen Ansatz, der dazu führen würde, zu einem ähnlichen Ergebnis?

Edit: zu klären, die "beeswarm" plot in R ist im wesentlichen, was ich im Auge habe, und pybeeswarm ist ein Anfang, aber nützlich beginnen bei einem matplotlib/Python-version.

Edit: hinzufügen, die Seaborn ' s Swarmplot, eingeführt in version 0.7, ist eine hervorragende Umsetzung von dem, was ich wollte.

Kommentar zu dem Problem - Öffnen
In einem dot-plot diese Punkte sind bereits getrennt in Ihre Spalte Kommentarautor: joaquin
Die wiki-definition von "dot plot" ist nicht das, was ich versuche zu beschreiben, aber ich habe noch nie gehört, ein Begriff, der andere als "dot-plot". Es ist etwa ein scatter-plot, sondern mit beliebigen (nicht zwingend numerisch) x Etiketten. Also in dem Beispiel beschreibe ich in der Frage, es würde eine Spalte mit Werten für "CategoryA", eine zweite Spalte für "CategoryB", etc. (Edit: Die wikipedia-definition von "Cleveland dot plot" ist mehr ähnlich wie was ich Suche, aber nicht genau das gleiche.) Kommentarautor: iayork

InformationsquelleAutor der Frage iayork | 2011-12-29

Schreibe einen Kommentar