如何绘制 a 线pandas.core.series.Series?示例:Id Week01 36 155 37 145 38 20702 36 116 37 98 38 9903 36 61 37 2904 36 162 37 190 38 19005 36 26 37 35 38 2006 36 57 37 40 38 15Name: num, dtype: int64那么所有 id 都有一行,Week 是 X,num 是 Y?我努力了:week.plot(x='Week', y='num')plt.show()但它只绘制了一条线,并(01, 36) (02, 38) (04, 38) (06, 37)在底部绘制了 X。为了制作这个系列,我使用了以下内容:week = df.groupby(['Id', 'Week']).num.count()下面的代码可以实现完全相同的功能:import pandas as pdimport matplotlib.pyplot as pltimport randomi = [1, 2, 3, 4, 5, 6]w = [36, 37, 38]n = 1iD = []wEek = []nUm = []for o in range(250): iD.append(random.choice(i)) wEek.append(random.choice(w)) nUm.append(n)df = pd.DataFrame({'Id': iD, 'Week': wEek, 'num': nUm})week = df.groupby(['Id', 'Week']).num.count()week.plot()plt.show()情节如下: 情节我希望所有s 都有一个单独的行,其中每个 (X) 都有 (Y)Id的值。num.count()Week
1 回答
慕姐4208626
TA贡献1852条经验 获得超7个赞
如果您实际上希望每个 id 在同一个图中绘制 4 个不同的线图,其中 x 轴为周,y 轴为数值:
week.unstack(0).plot()
如果您希望每一行位于不同的子图中,只需添加 subplots=True arg,如下所示:
week.unstack(0).plot(subplots=True)
在这里,unstack(0) 函数以给定级别 0 为最左边的索引 (Id) 来旋转我们的多索引系列。
添加回答
举报
0/150
提交
取消