用熊猫/ Seaborn绘制多级索引数据框

时间:2018-09-14 00:32:16

标签: pandas matplotlib seaborn multi-level

我有一个项目,该项目应该使用Python重新创建下面的图形(用Excel制造)。 Col1和Col2共享左侧的Y轴,而Col3在右侧的另一个Y轴上。我得到了一个多索引数据帧,其中包含有关在四天内测试的三个频率的数据,我将在下面提供。 enter image description here

下面的数据框缩短为仅包括天,而不是如上图所示的天+小时。我只是没有包括完整的数据框,因为那将是141行。

d = {'col1':[10.965867092294166,11.740605446907654,11.874630095282816,12.293252661642788,1.0550815232087125,1.2600652799903598,1.2287602539013704,1.5049839034547996,1.5017439425026908,1.857491967675137,2.004142472879474,2.238680621735559],'col2':[1.2,1.1590909090909092,1.0666666666666667,1.0294117647058822,8.48,7.454545454545454,8.483333333333333,6.588235294117647,3.72,3.0681818181818183,3.066666666666667,2.6470588235294117],'col3':[30.98667,30.40908977272727,30.049998333333335,30.352949999999996,87.36,89.5303,91.63333000000002,90.45097647058823,82.746664,79.47727727272728,78.97222166666667,78.09804705882352]}
    idx = pd.MultiIndex.from_product([['Freq1', 'Freq2', 'Freq3'], [21, 22, 23, 24]], names=['FrequencyNumber', 'DayofMonth'])
    df = pd.DataFrame(d, idx)

In[]: df
Out[]: 
                                 col1      col2       col3
FrequencyNumber DayofMonth                                
Freq1           21          10.965867  1.200000  30.986670
                22          11.740605  1.159091  30.409090
                23          11.874630  1.066667  30.049998
                24          12.293253  1.029412  30.352950
Freq2           21           1.055082  8.480000  87.360000
                22           1.260065  7.454545  89.530300
                23           1.228760  8.483333  91.633330
                24           1.504984  6.588235  90.450976
Freq3           21           1.501744  3.720000  82.746664
                22           1.857492  3.068182  79.477277
                23           2.004142  3.066667  78.972222
                24           2.238681  2.647059  78.098047

这就是我尝试绘制它的方式。

df.col1.plot(color = 'blue')
df.col2.plot(kind='bar', color = 'orange')
df.col3.plot(color= 'grey')

,我得到以下结果: enter image description here 这看起来不太好,因为它只是几天而不是几小时的平均值,但这不是我的问题。我真的很想拥有与Excel图形相似的X轴格式,以便图形易于解释。

我尝试在此处寻找与我的主题相关的答案,以及一些有关解包数据框的内容,但我无法正常工作。非常感谢您的帮助。

PS:我无法使matplotlib的格式看起来像Seaborn图(请参见下图)。到目前为止,我已经使用Seaborn完成了所有图表(热图和散点图),因此我非常希望图表的颜色主题在完成后能够匹配。 enter image description here

0 个答案:

没有答案