Python 图1.core.series.series
如何绘制熊猫.core.series.series 示例:Python 图1.core.series.series,python,pandas,matplotlib,Python,Pandas,Matplotlib,如何绘制熊猫.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
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都有一行,周是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()
情节是这样的:
我希望所有的
Id
s都有一条单独的线,每个周的值为num.count()
(Y)。如果您确实希望每个Id在同一个图形中有4个不同的线图,X轴为周,Y轴为数值:
week.unstack(0).plot()
如果希望每一行包含在不同的子地块中,只需添加子地块=True arg,如下所示:
week.unstack(0).plot(subplots=True)
在这里,unstack(0)函数旋转我们的多索引系列,给定的级别0是最左边的索引(Id)。有什么具体问题吗?请看,@AMC我现在已经编辑了我的帖子,是unstack做的。但是我不记得我以前用过unstack,但是我以前做过这种类型的绘图。也许该睡觉了……:)