Scatter Plotten von Pandas DataFrame mit kategorisierten Zeilen / Spalten

8

Ich möchte ein Streudiagramm von pandas DataFrame mit kategorischen Zeilen- und Spaltenbeschriftungen mit matplotlib erstellen. Ein Beispiel-DataFrame sieht folgendermaßen aus:

%Vor%

Die Markergröße ist die Funktion der jeweiligen DataFrame-Werte. Bisher habe ich eine schwierige Lösung gefunden, die die Zeilen und Spalten im Wesentlichen aufzählt, die Daten grafisch darstellt und dann die Beschriftungen rekonstruiert:

%Vor%

Welche Art von Arbeiten.

Nun, Frage: Gibt es eine intuitivere, besser integrierte Art, dieses Streudiagramm zu erstellen, idealerweise ohne die Daten und Metadaten zu teilen?

    
DyZ 02.06.2017, 03:17
quelle

3 Antworten

7

Vielleicht nicht die gesamte Antwort, die Sie suchen, sondern eine Idee, die Ihnen hilft, Zeit und Lesbarkeit mit der Codezeile flat= zu sparen.

Pandas Entstapelung Methode erzeugt eine Serie mit einem MultiIndex .

%Vor%

Der MultiIndex enthält die notwendigen x- und y-Punkte, um das Diagramm zu erstellen (in labels ). Hier weise ich levels und labels informativeren Variablennamen zu, die besser zum Plotten geeignet sind.

%Vor%

Plotting ist ziemlich einfach von hier.

%Vor%

Ich habe es auf ein paar verschiedenen DataFrame Shapes versucht und es schien zu halten.

    
Kevin 04.06.2017, 18:28
quelle
4

Es ist nicht genau das, wonach Sie gefragt haben, aber es hilft, Werte auf ähnliche Weise zu visualisieren:

%Vor%

Ergebnis:

    
MaxU 04.06.2017 12:22
quelle
3

Vielleicht können Sie mit numpy array und pd.melt das Streudiagramm wie unten gezeigt erstellen:

%Vor%

    
BChow 07.06.2017 17:26
quelle