2017-10-30 7 views
0

私はbokehで棒グラフを作っています。そのために、いくつかの値をグループ化します。値はアンケートへの回答です(1〜非常に良い〜7-非常に悪い)。時々、誰も "とても良い"と答えた人はいません。私の棒グラフでは、答えが与えられていない人には空の棒が欲しいと思います。それ、どうやったら出来るの?私はそれがx_rangeパラメータだと思ったが、私がそれを指定すると、私のプロットは空になる。私のコードは次のようになります。bokeh vbarの手動x_rangeを指定する

df[answer] = df[answer].astype(str) 
group = df.groupby(answer) 
source = ColumnDataSource(group) 
# with x_range=group, I get a graph, but without empty bars 
p = figure(plot_height=350, x_range=[0, 7]) 
p.vbar(x=answer, top='SurveyId_count', width=0.9, source=source) 
p.y_range.start = 0 
save(p) 

私もx_range =(1,7)、またはそのようにしようとしたが、それは私が望む結果が得られていません。

答えて

0

カテゴリファクタは文字列です。さらに、カテゴリ範囲を作成する場合は、すべての要素を明示的に指定する必要があります。偶然にも、あなたの要素は数字の範囲に似ていますが、一般的にはカテゴリの要素は実際には任意の名前です.Bokehは、あなたがそれを話さない限り、彼らが何であるかを知る方法はありません。

あなたが実行することができ、完全な例を提供していないので、私は実際にテストされている答えを提供することが可能ではないのですが、あなたはおそらく何かしたい:

x_range = [str(x) for x in range(1,8)] 
関連する問題