在plotnine中使用Brewer定性调色板Set1时遇ValueError错误求助
解决plotnine中使用Set1调色板触发ValueError的问题
这个错误的原因很清晰:你想用的Set1是Brewer定性(Qualitative)调色板,但plotnine的scale_color_brewer()/scale_fill_brewer()默认的type参数是'Sequential'(连续渐变类),所以它会在连续调色板列表里查找Set1,自然找不到,就抛出了这个错误。
解决方案:明确指定调色板类型
只需要在调用scale_color_brewer()(或scale_fill_brewer())时,加上type='Qualitative'参数,告诉函数要使用定性类的调色板即可。
完整的可复现代例修改后如下:
from plotnine import * import pandas as pd df = pd.DataFrame({'a': [0,1,2,3,4], 'b': [0,-2,10,6,8], 'c': ['a', 'b', 'a', 'a', 'b']}) (ggplot(df, aes(x='a', y='b', color='c')) + geom_point(size=5) # 补充绘图几何对象 + scale_color_brewer(type='Qualitative', palette='Set1') # 指定调色板类型和名称 )
额外说明
Brewer调色板分为三大类:
- Sequential:连续渐变类,适合数值型数据的渐变展示,就是错误提示里列出的那些名称
- Qualitative:定性分类类,适合离散的分类数据,除了Set1,还有Set2、Set3、Pastel1等
- Diverging:发散型类,适合有中间基准值的数据(比如正负对比),比如BrBG、RdBu等
如果你需要使用其他类的调色板,只需要对应修改type参数即可。
内容的提问来源于stack exchange,提问作者jcp
相关产品推荐
相关产品推荐

