如果选择了很多选项,散景会崩溃

时间:2017-02-06 21:14:07

标签: bokeh

我正在创建一些科学数据的可视化,我决定使用散景(顺便说一下,是否有任何替代方案,可以创建控件和绘图而不会像散景一样痛苦?)

我写了以下代码:

Select(value="Microtubule-associated protein 4",
        title="Protein name:", options=df['Protein Name'].values.tolist()[1:100],
        width=400))  # Sorting nexin-3

它工作正常,但是如果我尝试将整个列表作为选项参数传递,则会因错误而崩溃:

File "/home/my/.local/lib/python3.5/site-packages/bokeh/core/properties.py", line 1205, in validate
raise ValueError("expected an element of %s, got seq with invalid items %r" % (self, invalid))
ValueError: expected an element of List(Either(String, Tuple(String, String))), got seq with invalid items [nan, nan, nan, nan, nan, nan, nan]

print(df['Protein Name'].values.tolist() )  works fine

2 个答案:

答案 0 :(得分:2)

该消息不是Bokeh崩溃的情况。该消息是验证错误,告诉您传递的是无效数据。该消息相当直接地说:

expected an element of List(Either(String, Tuple(String, String)))

要为options窗口小部件配置Select属性,您必须传递:

  • 字符串列表:['foo', 'bar', 'baz']
  • 或字符串元组列表

您正尝试使用毫无意义的内容配置选项:

got seq with invalid items [nan, nan, nan, nan, nan, nan, nan]

也就是说,您尝试传递的任何内容列表都包含NaN值。在为Select小部件设置选项的上下文中,这不会也不会有意义。

如果您不同意此评估,则必须提供更多信息,例如: df['Protein Name'].values.tolist()

的全部内容

作为旁注:大多数python库只会在传递错误参数时随机出现异常,Bokeh有点独特,因为它提供了这样的特定,详细和可操作的验证错误。人们非常努力地为您免费提供开源软件。也许在贬低这项工作之前,你首先可能需要一些时间来确保它实际上不是用户错误的情况。

答案 1 :(得分:0)

抱歉,我的错,列表中有错误的数据。