我有一个项目,该项目应该使用Python重新创建下面的图形(用Excel制造)。 Col1和Col2共享左侧的Y轴,而Col3在右侧的另一个Y轴上。我得到了一个多索引数据帧,其中包含有关在四天内测试的三个频率的数据,我将在下面提供。
下面的数据框缩短为仅包括天,而不是如上图所示的天+小时。我只是没有包括完整的数据框,因为那将是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')
,我得到以下结果: 这看起来不太好,因为它只是几天而不是几小时的平均值,但这不是我的问题。我真的很想拥有与Excel图形相似的X轴格式,以便图形易于解释。
我尝试在此处寻找与我的主题相关的答案,以及一些有关解包数据框的内容,但我无法正常工作。非常感谢您的帮助。
PS:我无法使matplotlib的格式看起来像Seaborn图(请参见下图)。到目前为止,我已经使用Seaborn完成了所有图表(热图和散点图),因此我非常希望图表的颜色主题在完成后能够匹配。