我想从我的熊猫数据框中创建多个图,如下所示:
dataset.head()
trip_id duration distance avg_speed avg_acc travel_mode
0 303633 1.0 42.74 0.00 70.46 foot
1 303637 30.0 521.07 1.43 27.86 car
2 303638 13.0 339.58 0.65 26.30 car
3 303642 12.0 459.94 0.00 78.67 car
4 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 per的分布。
col = ['duration', 'distance', 'avg_speed', 'avg_acc', 'travel_mode']
dataset[col].groupby('travel_mode').hist(bins=50, figsize=(6, 4))

数字以一种你不能区分哪个数字是哪种交通工具的方式显示。然后我尝试了按偏度分布。
偏斜度的分布:
l = dataset.columns.values
n_cols=4
n_rows =5
plt.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的数字
发布于 2019-10-15 02:06:29
这不是一个漂亮的代码,但您可以识别组...标题是组名和列的串联。
groups = dataset.groupby('travel_mode')
for group in groups:
label = group[0]
data = group[1]
data.columns = label + " - " + data.columns
data.hist(bins=50)发布于 2019-10-15 00:09:55
这应该可以通过你的travel_mode来区分。请注意subplots=True。
dataset[col].groupby('travel_mode').plot(kind='hist', bins=50, subplots=True)如果你想要一个密度图叠加,我认为它将与海运工作:
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))https://stackoverflow.com/questions/58379701
复制相似问题