Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 绘制堆叠数据帧_Python_Pandas_Dataframe_Plot_Stacked Chart - Fatal编程技术网

Python 绘制堆叠数据帧

Python 绘制堆叠数据帧,python,pandas,dataframe,plot,stacked-chart,Python,Pandas,Dataframe,Plot,Stacked Chart,我想使用pandas.DataFrame.plot.bar(stacked=True)功能来可视化我的数据帧(见下表) 选择1个周期,我希望每个“波”的“num”被叠加在“电极”上。理想情况下,每个周期将绘制在单独的子地块中。当前代码: one = df[df["Period"]=="1"] one.plot.bar(stacked=True); plt.show() 在下面的示例中,这意味着a、b、c、d代表不同的波,0-9代表不同的电极 我认为这是一个按照plot.bar的期望重新排序

我想使用pandas.DataFrame.plot.bar(stacked=True)功能来可视化我的数据帧(见下表)

选择1个周期,我希望每个“波”的“num”被叠加在“电极”上。理想情况下,每个周期将绘制在单独的子地块中。当前代码:

one = df[df["Period"]=="1"]
one.plot.bar(stacked=True);
plt.show()

在下面的示例中,这意味着a、b、c、d代表不同的波,0-9代表不同的电极

我认为这是一个按照plot.bar的期望重新排序数据帧的问题,但我不确定如何继续

下面是数据帧的前30行

    Electrode   Period  Wave    num
0   7   10  Beta    1
1   8   12  Beta    1
2   15  10  High gamma  1
3   4   10  Theta   1
4   11  4   High gamma  1
5   12  13  High gamma  3
6   11  4   Delta   3
7   11  4   Theta   0
8   14  0   Delta   2
9   14  1   Beta    0
10  11  6   Low gamma   1
11  1   9   Theta   0
12  8   1   Theta   0
13  5   8   Theta   0
14  10  0   Low gamma   2
15  13  12  Alpha   1
16  8   13  Alpha   1
17  10  0   Beta    1
18  7   5   Alpha   2
19  10  3   Theta   0
20  14  6   High gamma  2
21  4   11  Beta    1
22  4   5   Delta   1
23  4   10  High gamma  2
24  10  0   High gamma  3
25  12  4   Alpha   1
26  8   8   Theta   0
27  8   11  Beta    1
28  6   2   Delta   2
29  12  7   Low gamma   3
我认为需要和聚合
意味着
与重塑:

one = df[df["Period"]==10].groupby(['Electrode','Wave'])['num'].mean().unstack()
one.plot.bar(stacked=True)
对于所有子地块:

grouped = df.groupby('Period')
nrows = int(math.ceil(len(grouped)/2.))
fig, axs = plt.subplots(nrows,2, figsize=(12,30))

for (name, df), ax in zip(grouped, axs.flat):
    df.groupby(['Electrode','Wave'])['num'].mean().unstack().plot.bar(stacked=True, ax=ax)

根据jezrael提出的错误,我找到了以下解决方案:

df[df["Period"]=="1"].pivot_table(values="num", index=["Electrode"], columns="Wave", aggfunc='mean').plot.bar(stacked=True)

我收到了这个错误:“ValueError:索引包含重复的条目,无法重塑”。我的“df.index”生成“RangeIndex(start=0,stop=1344,step=1)”我正在处理问题的第二部分,之前已知的周期数是多少?它在不同组之间变化,但我们可以假设为6个周期,所以请测试我的解决方案,如果有问题,请告诉我。谢谢