You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter Bokeh报错E-1001:Glyph渲染器引用不存在的列名‘color’

解决Bokeh GlyphRenderer报错E-1001:color列不存在的问题

这个报错我太熟悉了——核心问题出在你设置Oval的fill_color时,直接写了"color",但Bokeh会把这个字符串当成字面量颜色值(比如"red"这类固定颜色),而不是去你的数据源里找名为color的列。

修正方法很直接,两种方式任选:

方式1:用field()函数明确指定数据源字段(推荐)

先导入field模块,再把fill_color的值换成field('color'),告诉Bokeh去数据源里读取对应列的颜色:

from bokeh.models import GlyphRenderer, Oval, ColumnDataSource, field

# 你的数据源
source = ColumnDataSource(data={
    'index': [0, 1, 2, 3, 4, 5, 6, 7],
    'color': ['#3288bd', '#66c2a5', '#abdda4', '#e6f598', '#fee08b', '#fdae61', '#f46d43', '#d53e4f']
})

# 修正后的Oval配置
oval = Oval(height=0.1, width=0.2, fill_color=field('color'))

# 创建渲染器并绑定数据源
renderer = GlyphRenderer(data_source=source, glyph=oval)

方式2:用字典格式指定字段

如果不想额外导入模块,也可以直接用字典来声明字段关联:

oval = Oval(height=0.1, width=0.2, fill_color={'field': 'color'})

最后再做两个小检查:

  • 确认你的GlyphRenderer确实绑定了包含color列的ColumnDataSource(别漏了数据源关联这一步)
  • 检查列名拼写是否完全一致——Bokeh对大小写敏感,Color和color会被当成两个不同的列

这样修改后,Bokeh就能正确读取你数据源里的颜色值,不会再报列不存在的错误了。

内容的提问来源于stack exchange,提问作者holdenweb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:09:46