pandas 为多 class 列绘制 CDF
pandas plot CDF for multi-class column
我正在使用 python empyrical-dist 程序包来绘制 CDF
关于旅行模式(多 class)的速度分布。
data.head()
+---+---------+----------+----------+-------+--------------+------------+
| | trip_id | distance | duration | speed | acceleration | travelmode |
+---+---------+----------+----------+-------+--------------+------------+
| 0 | 303637 | 5.92 | 0.51 | 3.20 | 0.00173 | metro |
| 1 | 303638 | 3.54 | 0.22 | 4.44 | 0.00557 | bus |
| 2 | 303642 | 4.96 | 0.20 | 6.84 | 0.00944 | car |
| 3 | 303662 | 6.53 | 0.97 | 1.86 | 0.00053 | foot |
| 4 | 303663 | 40.23 | 0.94 | 11.85 | 0.00349 | car |
+---+---------+----------+----------+-------+--------------+------------+
现在如何为 travelmode
中的每个模式绘制 speed
列的 CDF
。所以,
from empiricaldist import Cdf
def decorate_cdf(title, x, y):
"""Labels the axes.
title: string
"""
plt.xlabel(x)
plt.ylabel(y)
plt.title(title)
for name, group in data.groupby('travelmode'):
Cdf.from_seq(group.speed).plot()
title, x, y = 'Speed by mode','speed (km/h)', 'CDF'
decorate_cdf(title,x,y)
然后如何为每个绘图添加图例,以便我可以分辨哪个绘图适用于哪种模式?
使用matplotlib的pyplot.legend
命令:
plt.legend(data.groupby('travelmode').groups.keys())
您可以简单地将参数 "label = " 添加到与 Cdf 关联的绘图方法中,如下所示:
Cdf.from_seq(group.speed).plot(label = 'metro')
或者在你的案例中传递一个列表而不是 'metro'
我正在使用 python empyrical-dist 程序包来绘制 CDF
关于旅行模式(多 class)的速度分布。
data.head()
+---+---------+----------+----------+-------+--------------+------------+
| | trip_id | distance | duration | speed | acceleration | travelmode |
+---+---------+----------+----------+-------+--------------+------------+
| 0 | 303637 | 5.92 | 0.51 | 3.20 | 0.00173 | metro |
| 1 | 303638 | 3.54 | 0.22 | 4.44 | 0.00557 | bus |
| 2 | 303642 | 4.96 | 0.20 | 6.84 | 0.00944 | car |
| 3 | 303662 | 6.53 | 0.97 | 1.86 | 0.00053 | foot |
| 4 | 303663 | 40.23 | 0.94 | 11.85 | 0.00349 | car |
+---+---------+----------+----------+-------+--------------+------------+
现在如何为 travelmode
中的每个模式绘制 speed
列的 CDF
。所以,
from empiricaldist import Cdf
def decorate_cdf(title, x, y):
"""Labels the axes.
title: string
"""
plt.xlabel(x)
plt.ylabel(y)
plt.title(title)
for name, group in data.groupby('travelmode'):
Cdf.from_seq(group.speed).plot()
title, x, y = 'Speed by mode','speed (km/h)', 'CDF'
decorate_cdf(title,x,y)
然后如何为每个绘图添加图例,以便我可以分辨哪个绘图适用于哪种模式?
使用matplotlib的pyplot.legend
命令:
plt.legend(data.groupby('travelmode').groups.keys())
您可以简单地将参数 "label = " 添加到与 Cdf 关联的绘图方法中,如下所示:
Cdf.from_seq(group.speed).plot(label = 'metro')
或者在你的案例中传递一个列表而不是 'metro'