当这些数据没有“分类”标签时,我有点困惑如何使用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()
执行此操作?
答案 0 :(得分:3)
您可以melt
数据框并相应地命名参数以应用于stripplot
,如下所示:
df_strip = pd.melt(df, var_name='total_bill', value_name='price')
sns.stripplot(x="total_bill", y="price", data=df_strip)