2016-09-17 15 views
0

私はbokeh.charts.Donutで一連の円グラフを作成するためにBokehを使用しています。チャートは、同じDataFrameのサブセットに基づいており、すべて同じカテゴリラベルを持ちます。同じカテゴリが同じ色で表示されるようにしたいのですが、色を統一する方法を理解できていません。Bokeh:ドーナツチャートの色を制御する

現在、私は入力したDataFramesをラベルでソートし、同じ色の配列をpaletteプロパティDonutに渡しています。これは意図したとおりには動作しません。コードは次のとおりです。

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) 

複数のチャートにわたる色にドーナツグラフの同じカテゴリをマッピングするための適切な方法は何ですか?私が持っていたもう1つのアイデアは、ラベル値を色にマップしたDataFrameに列を挿入し、その列をDonutの引数として渡していましたが、その作業を行うこともできませんでした。どんな助けでも大歓迎です。

答えて

1

引数の色の配列をDonutに渡すと、色はアルファベット順のスライス名に基づいてドーナツスライスに関連付けられていることがわかります。したがって、paletteの配列の最初の色は、アルファベット順の名前などのスライスに関連付けられます。

関連する問題