我想创建一个箱线图,用于展示四个不同站点在过去20年中收集的数据(即每个站点将有20年的数据)。这将在图中产生80个箱子。为了使图表易读,我希望每个箱子都被偏移,并且每个站点有不同的颜色箱子。这将产生一系列重复的箱子(例如站点1、2、3、3、1、2、3的箱子......)。创建箱线图并不是问题;但偏移箱子似乎是个问题。例如:
import numpy as np
import pandas as pd
from pylab import *
first = pd.DataFrame(np.random.rand(10,5),columns=np.arange(0,5))
second = pd.DataFrame(np.random.rand(10,5),columns=np.arange(5,10))
fig = figure( figsize=(9,6.5) )
ax = fig.add_subplot(111)
box1 = first.boxplot(ax=ax,notch=False,widths=0.20,sym='',rot=-45)
setp(box1['caps'],color='r',linewidth=2)
setp(box1['boxes'],color='r',linewidth=2)
setp(box1['medians'],color='r',linewidth=2)
setp(box1['whiskers'],color='r',linewidth=2,linestyle='-')
box2 = second.boxplot(ax=ax,notch=False,widths=0.20,sym='',rot=-45)
setp(box2['caps'],color='k',linewidth=2)
setp(box2['boxes'],color='k',linewidth=2)
setp(box2['medians'],color='k',linewidth=2)
setp(box2['whiskers'],color='k',linewidth=2,linestyle='-')
最初我希望Pandas会按列名索引x轴,但是Pandas似乎根据列位置索引x轴,这令人沮丧。有人能推荐一种方法来偏移框,使它们不会彼此重叠吗?