2015-04-06 67 views
1

我一直在尝试使用Bokeh(v0.8.1)创建一个包含许多(〜1000s)boxlot的情节。我注意到,每当我尝试使用bokeh.charts.BoxPlot函数时,我都会遇到有超过6个盒子图的情节。图表的颜色周期

import numpy as np 
from bokeh.charts import BoxPlot 
test = {} 
for i in range(0,7): 
    test[str(i)] = np.random.normal(0,1,100) 
plot = BoxPlot(test) 
show(plot) 

堆栈跟踪:

ipython-input-321-6a3614410bf5> in <module>() 
     4 for i in range(0,7): 
     5  test[str(i)] = np.random.normal(0,1,100) 
----> 6 plot = BoxPlot(test) 
     7 show(plot) 
/opt/pkg/python27/lib/python2.7/site-packages/bokeh/charts/builder/boxplot_builder.pyc in BoxPlot(values, marker, outliers, xscale, yscale, xgrid, ygrid, **kw) 
    79  return create_and_build(
    80   BoxPlotBuilder, values, marker=marker, outliers=outliers, 
---> 81   xscale=xscale, yscale=yscale, xgrid=xgrid, ygrid=ygrid, **kw 
    82 ) 
    83 

/opt/pkg/python27/lib/python2.7/site-packages/bokeh/charts/_builder.pyc in create_and_build(builder_class, values, **kws) 
    38  chart_kws = { k:v for k,v in kws.items() if k not in builder_props} 
    39  chart = Chart(**chart_kws) 
---> 40  chart.add_builder(builder) 
    41 
    42  return chart 

/opt/pkg/python27/lib/python2.7/site-packages/bokeh/charts/_chart.pyc in add_builder(self, builder) 
    113  def add_builder(self, builder): 
    114   self._builders.append(builder) 
--> 115   builder.create(self) 
    116 
    117   # Add tools if supposed to 

/opt/pkg/python27/lib/python2.7/site-packages/bokeh/charts/_builder.pyc in create(self, chart) 
    161  def create(self, chart=None): 
    162   self._adapt_values() 
--> 163   self._process_data() 
    164   self._set_sources() 
    165   renderers = self._yield_renderers() 

/opt/pkg/python27/lib/python2.7/site-packages/bokeh/charts/builder/boxplot_builder.pyc in _process_data(self) 
    185     out_x.append(level) 
    186     out_y.append(o) 
--> 187     out_color.append(self.palette[i]) 
    188 
    189   # Store 

IndexError: list index out of range 

看来,无论预定义的颜色列表中箱线图功能已用完的颜色新的箱线图。

有没有办法定义一个新的颜色列表(理想情况下,一个循环,只会重复颜色,如果它用完了)或完全禁用着色?

回答

0

在最近的版本(IIRC 0.8)中添加了循环颜色实现以重复在bokeh.charts上的颜色。这似乎是一个错误。堆栈溢出实际上不是这种讨论和追踪问题的最佳场所。

我已经打开了一个与图表上的cycle_colors/palette错误相关的问题,这个问题也包含一个可以用来绕过问题的快速方法。你可以看到它here。基本上你可以明确地建立并传递给你足够大的调色板。如果您想提供帮助或提供其他反馈意见,请使用相关的GH问题,因为这对我们来说更容易跟踪。

谢谢!

+0

感谢您的回复!我应该把我在问题中使用的散焦版本,所以我很抱歉。我现在在0.8.1上,为了确保升级到0.8.2,导致我在尝试导入bokeh.charts时遇到了不同的错误。我将在github上报告这个新bug,一旦解决了这个问题,就会回到这个问题来看看新版本是否可以解决这个问题。 – schultzmattd

+0

我正面临的导入错误与我从0.8.1-> 0.8.2升级有关。在全新的Bokeh安装中,这个错误仍然存​​在于0.8.2中,所以我将这个特定问题发布到github上。 – schultzmattd

+0

@schultzmattd我已经用更好的细节和相关GH问题的链接更新了答案。 –