自己制作直方图,每个条的总和为1.因此每个条小于1.为什么它们不适合绘图窗口?我怎样才能做到这一点?
yaxis().bounds = [0,1]
这仅设置轴,但不适合我的情节。没有适当的散文文档,我对这些简单的问题感到生气。
from bokeh.plotting import *
from __future__ import division
output_notebook()
from bokeh.plotting import rect
balkenbreite = 5
mitten = [10,20,30,40]
werte = [10,15,10,5]
anteil = []
sumVal = sum(werte)
for i in range(len(werte)):
anteil.append(0)
for i in range(len(anteil)):
anteil[i] = werte[i]/sumVal
print anteil
figure()
hold(False)
rect([mitten[0]],[anteil[0]/2], width=balkenbreite, height=anteil[0], plot_width=400, color = "#ff1200", plot_height=400, tools="pan")
hold(True)
for i in range(len(mitten)):
if i==0: continue
rect([mitten[i]],[anteil[i]/2], width=balkenbreite, height=anteil[i], plot_width=400, color = "#ff1200", plot_height=400)
xaxis()[0].axis_label="Areas"
yaxis()[0].axis_label="Frequency"
yaxis()[0].bounds = [0,1]
show()
答案 0 :(得分:4)
注意(2014年4月8日):Bokeh仍然处于早期但积极的发展阶段,因此暂时可以预期这些问题。我们希望在我们继续扩展文档时尽快回答这些问题,但在此期间您可能会发现tutorials会有所帮助。
对于手头的问题:可以使用Range1d
对象设置当前的绘图范围,该对象分配给x_range
或y_range
关键字参数。这些可以在figure()
实例中或在传递给绘图的第一个渲染器对象(即rect()
)中设置,甚至可以设置为curplot()
的属性(请参阅笔记本链接如下)。
这三行应解决问题:
from bokeh.objects import Range1d
yr = Range1d(start=0, end=1)
figure(y_range=yr)
我已将一个简单的笔记本上传到Wakari here,以便您更清楚地看到该过程。您还可以访问更新后的脚本here。
希望有所帮助!!
编辑:这里是我想象你想要的截图。
答案 1 :(得分:4)
kpsfire的上述答案回答了这个问题,但我确实想做一些补充说明。位于http://bokeh.pydata.org的Bokeh docs网站目前在实时图库中有许多完整的代码示例,python和javascript的广泛API参考,用户和开发人员指南,以及一个非常实用的教程。几个不同的会议。我认为我们至少有一个不错的开端。 :)
那说了!总是有改进和增加的空间,确保文档变得更好的最佳方法是听取用户的反馈,让我们知道缺少的领域。有时我们可以获得隧道视觉并忘记将Bokeh视为全新的方式。我们积极尝试监控SO以了解有关Bokeh的问题,但更直接的方式来提出这样的问题是向Bokeh邮件列表发送消息:bokeh@continuum.io或者,在GitHub问题跟踪器上提交问题可能是确保问题不被忽视的最佳方式。它位于
https://github.com/ContinuumIO/bokeh/issues
我在即将发布的版本之前打开了一个用于刷新文档的PR。我添加了有关情节范围的信息,还会添加其他一些其他主题。您可以通过以下方式监控进度:
https://github.com/ContinuumIO/bokeh/pull/510
预计这些更改会在本周晚些时候显示在http://bokeh.pydata.org上。感谢您的反馈,感谢您对Bokeh的关注!