当这些数据没有“分类”标签时,我对如何使用 seaborn.stripplot()
绘制多列数据点感到有些困惑。
例如,用户可以使用 tips
数据集绘制“分组”散点图,如下所示:
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
.... ..... ..... .....
有按类别
day
分组在一起的测量值,我们生成散点图如下:sns.stripplot(x="day", y="total_bill", data=tips)
现在,我想用非分类数据重新生成这个“分组散点图格式”图,每列中有数据:
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
.... ....
这里的 y 轴是
price
,x 轴应该是这些列中的每一列, total_bill_A
、 total_bill_B
、 total_bill_C
和 total_bill_D
,类似于上面的星期四、星期五、星期六、星期日。我怎么能绘制像这些
seaborn
这样的东西?可以用 seaborn.stripplot()
做到这一点吗? 最佳答案
您可以 melt
数据帧并相应地命名参数以应用于 stripplot
,如下所示:
df_strip = pd.melt(df, var_name='total_bill', value_name='price')
sns.stripplot(x="total_bill", y="price", data=df_strip)
关于python - 如何使用非分类数据绘制 "grouped scatterplot"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38958925/