Rac*_*hel 5 python charts bokeh
作为尝试学习使用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)
Run Code Online (Sandbox Code Playgroud)
来自Bokeh项目维护者的注意事项:这个答案指的是一个不应该在任何新代码中使用的过时和弃用的API.有关使用现代和完全支持的Bokeh API创建条形图的信息,请参阅其他响应.
以下是使用Borts 0.11.1测试的Charts界面保留示例中标签的原始顺序的方法.
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)
Run Code Online (Sandbox Code Playgroud)
我不太喜欢条形图等高级图表。它们不太可定制。“手工”构建它们通常更容易,而且不需要太长时间。这就是我要做的:
from bokeh.plotting import figure
from bokeh.io import output_file, show
import calendar
values = [2,3,4,5,6,7,8]
days = [calendar.day_name[i-1] for i in range(1,8)]
p = figure(x_range=days)
p.vbar(x=days, width=0.5, top=values, color = "#ff1200")
output_file('foo.html')
show(p)
Run Code Online (Sandbox Code Playgroud)
产生:
| 归档时间: |
|
| 查看次数: |
4377 次 |
| 最近记录: |