情节 pandas.core.series.Series

如何绘制 a 线pandas.core.series.Series?


示例:


Id  Week

01       36      155

         37      145

         38      207

02       36      116

         37       98

         38       99

03       36       61

         37       29

04       36      162

         37      190

         38      190

05       36       26

         37       35

         38       20

06       36       57

         37       40

         38       15

Name: 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 pd

import matplotlib.pyplot as plt

import random

i = [1, 2, 3, 4, 5, 6]

w = [36, 37, 38]

n = 1

iD = []

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


一只斗牛犬
浏览 66回答 1
1回答

慕姐4208626

如果您实际上希望每个 id 在同一个图中绘制 4 个不同的线图,其中 x 轴为周,y 轴为数值:week.unstack(0).plot()如果您希望每一行位于不同的子图中,只需添加 subplots=True arg,如下所示:week.unstack(0).plot(subplots=True)在这里,unstack(0) 函数以给定级别 0 为最左边的索引 (Id) 来旋转我们的多索引系列。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python