我正在尝试使用pandas数据帧中的数据绘制带有多个箱图的面板图。数据框的列如下所示:
data.columns
Index([u'SiteId', u'obs1', u'obs2', u'obs3', u'obs4', u'obs5', u'obs6', u'date', u'area']
我想创建一个由9个不同地块组成的小组(因为有9个不同的地理区域),每个小区每年有12个箱图。下面显示了一个示例,其中使用了用于创建绘图的片段:
df = data.ix[:, ['obs1','date', 'area']]
df = df.set_index('date')
colm = ['LOCATION 1']
for area in areas:
df2 = df.loc[(df.area== area)]
df2.boxplot(column=colm, by=df2.index.month, showmeans=True)
上面的代码只得到一个图(图中每个月对应的箱形图),但我想创建9个这样的图,每个图对应一个特定区域作为同一图中的子图。换句话说,我想首先按区域对数据进行分组,然后按年份分组,然后将结果绘制为boxplot。有什么想法,我怎么能得到所需的情节?任何帮助表示赞赏。
另外,我怎样才能摆脱“由[1 1 1 ... 12 12 12]分组的箱形图”和“1,1,1,1,1,1,1,1,1,... ......“在情节的顶部和底部都有?
我无法发布图片,因为stackoverflow规则不允许我这样做。 感谢。
答案 0 :(得分:2)
这样做你想要的吗?
fig, axs = plt.subplots(len(areas), 1, figsize=(5,45))
for ax,area in zip(axs,areas):
df2 = df.loc[(df.area==area)]
df2.boxplot(column=['obs1'], by=df2.index.month, showmeans=True, ax=ax)