首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bokeh:圆环图上的控制颜色

Bokeh:圆环图上的控制颜色
EN

Stack Overflow用户
提问于 2016-09-17 17:41:21
回答 1查看 623关注 0票数 0

我正在使用Bokeh和bokeh.charts.Donut创建一系列饼图。这些图表基于相同DataFrame的子集,并且都具有相同的类别标签。我希望确保相同的类别在不同的图表中以相同的颜色显示,但我还无法找到控制颜色的一致方法。

目前,我正在按标签对输入DataFrames进行排序,并将相同的颜色数组传递给Donutpalette属性。这仍然不能达到预期的效果。代码如下:

代码语言:javascript
复制
main_colors = ['#10A400','#DB5E11','#C8C500','#CF102E','#00AFA8','#82BC00','#A40D7A','#FF7100','#1349BB']


#split out youth health problems
for_youth_health = detailed_assessment_safety.loc[detailed_assessment_safety.youth_health_prob.notnull()]
youth_health_issues = pd.DataFrame(for_youth_health.youth_health_prob.str.split(' ').tolist())

for col in youth_health_issues.columns:
    newcol = 'youth_health_prob_' + str(col)
    youth_health_issues = youth_health_issues.rename(columns={col:newcol})

youth_health_trans = pd.melt(youth_health_issues)
youth_health_trans = youth_health_trans.loc[youth_health_trans.value.notnull()]

youth_health_trans['issue_text'] = youth_health_trans.value.map(map_health_issues)
youth_health_trans.drop('value',axis=1,inplace=True)
youth_health_trans.sort_values(by='issue_text',ascending=True,inplace=True)

#pie of youth health issues

youth_health_issues = Donut(youth_health_trans,label='issue_text',
                           values='variable',agg='count',plot_width=plot_width,
                           plot_height=plot_height,title='Reported Youth Health Issues',
                           color=main_colors)

hover = HoverTool(point_policy='follow_mouse')
hover.tooltips = [('Number Reported','@values'),('Health Issue','@issue_text')]
youth_health_issues.add_tools(hover)

#split out adult health problems
for_adult_health = detailed_assessment_safety.loc[detailed_assessment_safety.adult_health_prob.notnull()]
adult_health_issues = pd.DataFrame(for_adult_health.adult_health_prob.str.split(' ').tolist())

for col in adult_health_issues.columns:
    newcol = 'adult_health_prob_' + str(col)
    adult_health_issues = adult_health_issues.rename(columns={col:newcol})

adult_health_trans = pd.melt(adult_health_issues)
adult_health_trans = adult_health_trans.loc[adult_health_trans.value.notnull()]

adult_health_trans['issue_text'] = adult_health_trans.value.map(map_health_issues)
adult_health_trans.drop('value',axis=1,inplace=True)
adult_health_trans.sort_values(by='issue_text',ascending=True,inplace=True)

#pie of adult health issues

adult_health_issues = Donut(adult_health_trans,label='issue_text',
                           values='variable',agg='count',plot_width=plot_width,
                           plot_height=plot_height,title='Reported Adult Health Issues',
                           palette=main_colors)

hover = HoverTool(point_policy='follow_mouse')
hover.tooltips = [('Number Reported','@values'),('Health Issue','@issue_text')]
adult_health_issues.add_tools(hover)

将相同类别的甜甜圈图表映射到多个图表中的颜色的正确方法是什么?我的另一个想法是在将标签值映射到颜色的DataFrame中插入一列,然后将该列作为参数传递给Donut,但我也无法实现这一点。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2016-10-26 20:05:13

经过一些实验后发现,当您将一个颜色数组传递给Donutpalette参数时,这些颜色根据切片名称的字母顺序与甜甜圈切片相关联。因此,palette颜色数组中的第一种颜色将与具有字母顺序名字的切片相关联,依此类推。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39545277

复制
相关文章

相似问题

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