首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Bokeh中使用分类y轴时,如何修复错误E-1019 (DUPLICATE_FACTORS)?

在Bokeh中使用分类y轴时,如何修复错误E-1019 (DUPLICATE_FACTORS)?
EN

Stack Overflow用户
提问于 2022-03-14 15:44:20
回答 1查看 80关注 0票数 0

我有一个,它的y轴的值分布在3列上。那些我想在范畴y轴上展示的。然后我有一个用于x的列和一个用于color的列。从这些值中,我想创建一个热图。

我创建了以下代码,它返回错误E-1019 (DUPLICATE_FACTORS): FactorRange must specify a unique list of categorical factors for an axis

代码语言:javascript
复制
from bokeh.io import show
from bokeh.models import ColumnDataSource, FactorRange, LinearColorMapper
from bokeh.plotting import figure
from bokeh.palettes import Greys256

mapper = LinearColorMapper(palette=Greys256, low=0, high=5, high_color = 'red')

df_in = pd.DataFrame([['cat1', 'ccat1', 'cccat1', 4, 20],['cat1', 'ccat1', 'cccat1', 5, 15],['cat1', 'ccat1', 'cccat1', 6, 10]], columns=['key1','key2', 'key3', 'x', 'color'])

factors = list(df_in[['key1', 'key2', 'key3']].astype(str).itertuples(index=False, name=None))

data = dict(
    y=factors,
    x=list(df_in['x'].astype(int)),
    color=list(df_in['color'].astype(int)),
)

source = ColumnDataSource(data=data)

p = figure(y_range=FactorRange(*factors))
p.rect(y='y', x='x', width=1, height=0.75, source = source, fill_color={'field': 'color', 'transform': mapper})

show(p)

当我通过硬编码在data中手工构造字典时(包括key1-3中的重复值),我不会得到这个错误。

我是不是把数据提取错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-21 08:04:54

我自己想出来的:

FactorRange需要是唯一的,而y轴中的因素应该为热图中的每个值保留一个条目。

使用list(set(factors)))可以使列表成为唯一

代码语言:javascript
复制
p = figure(y_range=FactorRange(*list(set(factors)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71470489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档