作为尝试学习使用 Bokeh 的一部分,我正在尝试制作一个简单的条形图。我按特定顺序(星期几)传递标签,而 Bokeh 似乎按字母顺序对它们进行排序。如何让条形按照原始列表的顺序显示?
from bokeh.plotting import show
from bokeh.io import output_notebook
from bokeh.charts import Bar
from collections import OrderedDict
import calendar
output_notebook()
data = OrderedDict()
data['values'] = [2,3,4,5,6,7,8] #values only ascending to make correct graph clear
data['days'] = [calendar.day_name[i-1] for i in range(7)]
p = Bar(data, label='days', values='values',
title='OrderedDict Input',xlabel="Day", ylabel="Value")
show(p)
最佳答案
来自 Bokeh 项目维护者的注释: 这个答案指的是不应在任何新代码中使用的过时和弃用的 API。有关使用现代且完全受支持的 Bokeh API 创建条形图的信息,请参阅其他回复。
以下是如何使用图表界面在您的示例中保留标签的原始顺序,并使用 Bokeh 0.11.1 进行了测试。
from bokeh.plotting import show
from bokeh.io import output_notebook
from bokeh.charts import Bar
from collections import OrderedDict
import calendar
from bokeh.charts.attributes import CatAttr
output_notebook()
data = OrderedDict()
data['values'] = [2,3,4,5,6,7,8] #values only ascending to make correct graph clear
data['days'] = [calendar.day_name[i-1] for i in range(7)]
p = Bar(data, label=CatAttr(columns=['days'], sort=False),
values='values',title='OrderedDict Input',xlabel="Day", ylabel="Value")
show(p)
关于python - 在 Bokeh 条形图中选择条形顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33135531/