Erstellen einer Matplotlib Scatter Legendengröße

9

Ich suche nach einer Möglichkeit, eine (Matplotlib-) Legende einzufügen, die die Größe von Punkten in einem Streudiagramm beschreibt, da dies mit einer anderen Variablen wie in diesem Basisbeispiel zusammenhängen könnte:

%Vor%

(inspiriert von: Ссылка )

In der Legende würde es also idealerweise wenige Punkte geben, die den Größen 0-400 entsprechen (die Variable a2 ), entsprechend% desc_de% deskriptors in s .

    
gluuke 11.06.2014, 13:54
quelle

4 Antworten

6

Die folgende Lösung verwendete pandas , um die Größen in Gruppen zusammenzufassen (mit groupby ). Er zeichnet jede Gruppe und weist ihr eine Bezeichnung und eine Größe für die Marker zu. Ich habe das Binning-Rezept von dieser Frage verwendet.

Hinweis Dies ist ein wenig anders als bei Ihrem angegebenen Problem, da die Marker-Größen im Binning liegen. Das bedeutet, dass zwei Elemente in a2 , also 36 und 38, die gleiche Größe haben das gleiche Binning. Sie können die Anzahl der Fächer immer erhöhen, um sie feiner zu gestalten.

Mit dieser Methode können Sie andere Parameter für jedes Fach ändern, z. B. die Form oder Farbe des Markers.

%Vor%

    
Ffisegydd 11.06.2014, 14:19
quelle
4

Das wird auch funktionieren, und ich denke, es ist ein bisschen einfacher:

%Vor%

Entnommen aus: Point Legendengröße in Matplotlib- und Grundkartenplots

    
mjp 25.04.2016 22:35
quelle
3

Ich mag fast die Antwort von mjp, aber es funktioniert nicht ganz, weil das Argument 'markersize' von plt.plot nicht dasselbe bedeutet wie das '' Argument 'von plt.scatter. Ihre Größen werden mit plt.plot falsch sein.

Verwenden Sie stattdessen:

%Vor%     
jpobst 09.03.2017 16:52
quelle
0

Ausgehend von den Antworten von mjp und jpobst können Sie, wenn Sie mehr als zwei diskrete Größen haben, eine Schleife erstellen und die Beschriftungen in den Aufruf von plt.scatter () einfügen:

%Vor%

Beachten Sie, dass Sie die Beschriftung mithilfe der standardmäßigen Zeichenfolgenformatierung formatieren können, z. B. label = ('M%d' %size) für die Beschriftungen in der Antwort von mjp.

    
Tiffany G. Wilson 29.03.2018 16:50
quelle