将绘图拟合到绘图窗口中

时间:2014-04-08 12:05:34

标签: ipython ipython-notebook bokeh

自己制作直方图,每个条的总和为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()

enter image description here

2 个答案:

答案 0 :(得分:4)

注意(2014年4月8日):Bokeh仍然处于早期但积极的发展阶段,因此暂时可以预期这些问题。我们希望在我们继续扩展文档时尽快回答这些问题,但在此期间您可能会发现tutorials会有所帮助。

对于手头的问题:可以使用Range1d对象设置当前的绘图范围,该对象分配给x_rangey_range关键字参数。这些可以在figure()实例中或在传递给绘图的第一个渲染器对象(即rect())中设置,甚至可以设置为curplot()的属性(请参阅笔记本链接如下)。

这三行应解决问题:

from bokeh.objects import Range1d
yr = Range1d(start=0, end=1)
figure(y_range=yr)

我已将一个简单的笔记本上传到Wakari here,以便您更清楚地看到该过程。您还可以访问更新后的脚本here

希望有所帮助!!

编辑:这里是我想象你想要的截图。

Screenshot

答案 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的关注!