我想从我的 pandas Dataframe 创建多个图,如下所示:dataset.head() trip_id duration distance avg_speed avg_acc travel_mode0 303633 1.0 42.74 0.00 70.46 foot1 303637 30.0 521.07 1.43 27.86 car2 303638 13.0 339.58 0.65 26.30 car3 303642 12.0 459.94 0.00 78.67 car4 303657 4.0 71.3 0.00 72.94 foot该列travel_mode包含 5 种不同的运输方式:dataset.travel_mode.unique()array(['foot', 'car', 'bus', 'bike', 'metro'], dtype=object)我想绘制每种旅行模式的duration, distance, avg_speed分布avg_acc。col = ['duration', 'distance', 'avg_speed', 'avg_acc', 'travel_mode']dataset[col].groupby('travel_mode').hist(bins=50, figsize=(6, 4))在此处输入图像描述数字的显示方式您无法分辨哪个数字是什么类型的交通工具。然后我尝试按偏度分布。偏度分布:l = dataset.columns.valuesn_cols=4n_rows =5plt.figure(figsize=(3*n_cols,2*n_rows))for i in range(0,len(l)): plt.subplot(n_rows + 1,n_cols,i+1) sns.distplot(dataset[l[i]],kde=True)TypeError: unsupported operand type(s) for /: 'str' and 'int'如何显示每种出行模式的标记分布,使出行模式成行,列显示 和 的duration, distance, avg_speed,数字avg_acc?
2 回答
人到中年有点甜
TA贡献1895条经验 获得超7个赞
这不是一个漂亮的代码,但您可以识别组...标题是组名和列的串联。
groups = dataset.groupby('travel_mode')
for group in groups:
label = group[0]
data = group[1]
data.columns = label + " - " + data.columns
data.hist(bins=50)
www说
TA贡献1775条经验 获得超8个赞
这应该可以由您的travel_mode. 注意subplots=True.
dataset[col].groupby('travel_mode').plot(kind='hist', bins=50, subplots=True)
如果您想要覆盖密度图,我认为它适用于 seaborn:
df = dataset[col].melt(['travel_mode'], var_name='cols', value_name='vals')
g = sns.FacetGrid(df, col='cols', row="travel_mode")
g = (g.map(sns.distplot, "vals", kde=True, bins=50))
添加回答
举报
0/150
提交
取消