2016-08-15 7 views
0

Ich bin ein wenig verwirrt, wie man seaborn.stripplot() verwendet, um mehrere Spalten von Datenpunkten zu plotten, wenn diese Daten keine "kategorischen" Bezeichnungen haben.Wie zeichne ich ein "gruppiertes Streudiagramm" mit nicht-kategorischen Daten?

Zum Beispiel kann der Anwender zeichnen „gruppiert“ Scatterplots wie folgt, mit dem tips-Datensatz:

import numpy as np 
import pandas as pd 
import matplotlib 
import matplotlib.pyplot as plt 

import seaborn as sns 

tips = sns.load_dataset("tips") # internal dataset 

print(tips) 

    total_bill tip  sex smoker day time size 
0   16.99 1.01 Female  No Sun Dinner  2 
1   10.34 1.66 Male  No Sun Dinner  3 
2   21.01 3.50 Male  No Sun Dinner  3 
3   23.68 3.31 Male  No Sun Dinner  2 
4   24.59 3.61 Female  No Sun Dinner  4 
5   25.29 4.71 Male  No Sun Dinner  4 
....  .....  .....  ..... 

Es gibt Messungen zusammengefasst durch die Kategorie day, wobei wir Scatterplots produzieren wie folgt:

sns.stripplot(x="day", y="total_bill", data=tips) 

enter image description here

Nun würde Ich mag dieses „gruppiert scatterpl neu zu produzieren ot-Format“Handlung mit nicht-kategorischen Daten mit Daten in jeder Spalte:

df = pd.read_csv("my_data.csv") 

df 

     total_bill_A total_bill_B total_bill_C total_bill_D  
0  16.99   21.01   15.99   14.50 
1  10.34   21.66   12.99   16.50 
2  21.01   23.50   7.25   17.50 
3  23.68   23.31   9.99   12.50 
4  24.59   23.61   10.00   15.50 
5  25.29   24.71   11.00   19.50 
....    .... 

Die y-Achse ist hier price, und die x-Achse sollte jede dieser Säulen sein, total_bill_A, total_bill_B, total_bill_C und total_bill_D ähnlich wie oben für Donnerstag, Freitag, Samstag, Sonntag.

Wie könnte ich etwas wie diese seaborn plotten? Ist es möglich, dies mit seaborn.stripplot() zu tun?

Antwort

3

können Sie die Datenrahmen melt und die Parameter entsprechend der stripplot anzuwenden Namen wie folgt:

df_strip = pd.melt(df, var_name='total_bill', value_name='price') 
sns.stripplot(x="total_bill", y="price", data=df_strip) 

Image

+1

es Ihnen danken! Das funktioniert perfekt – ShanZhengYang

Verwandte Themen