2013-09-25 69 views
2

我试图在一个图中绘制大量的盒形图。我成功展示了9个箱子,我想获得更多的箱子。我使用了下面的代码。 从csv文件获取数据:boxplot:索引超出范围错误

a = getData("/home/abuabderrahmen/caidama.csv") 
a1 = a.ix[0:,['Conductance']] 

相同的过程允许获得阵列的任意数量。然后我使用创建我的框架对象:

e1 = concatenate((a1, b1, c1), 0) 
data1 = [e1, e1, e1[::3,0]] 

最后我用

bp = boxplot(data1, positions = [1.05, 1.35, 1.65], widths = 0.15) 

要获得12个箱线图绘制的箱子,我提出以下修改:

e1 = concatenate((a1, b1, c1, d1), 0) 
data1 = [e1, e1, e1[::4,0]] 
bp = boxplot(data1, positions = [1.05, 1.35, 1.65, 1.95], widths = 0.15) 

,我也得到一个列表索引超出范围错误。 这种方法出了什么问题?

+1

向我们显示错误消息。 – clstaudt

+0

'.ix'在熊猫中已弃用0.20 –

回答

0

看来你可能有IndexErrorboxplot,当您尝试绘制一个数组,其长度不等于你positions阵列的唯一案例。即:

>>> plt.boxplot([1,2,3], positions=[1.05, 1.35, 1.65, 1.95], widths = 0.15) 

Traceback (most recent call last): 
    File "<pyshell#66>", line 1, in <module> 
    plt.boxplot([1,2,3], positions=[1.05, 1.35, 1.65, 1.95], widths = 0.15) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib /pyplot.py", line 2442, in boxplot 
    usermedians=usermedians, conf_intervals=conf_intervals) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axes.py", line 5815, in boxplot 
    d = np.ravel(x[i]) 
IndexError: list index out of range 

我怀疑你的e1[::4,0]不够长。