标签: bokeh

一个图表在Bokeh中有两个不同的y轴范围?

我想在左侧y轴上显示数量信息的条形图,然后在右侧覆盖带有Yield%的散点图/线图.我可以单独创建这些图表,但不知道如何将它们组合成单个图表.

在matplotlib中,我们将使用twinx(),然后使用yaxis.tick_left()和创建第二个yaxis.tick_right()数字.

有没有办法与Bokeh做类似的事情?

python bokeh

38
推荐指数
2
解决办法
3万
查看次数

如何在Bokeh中完成`set_xlim`或`set_ylim`?

我在一个函数中创建一个数字,例如

import numpy
from bokeh.plotting import figure, show, output_notebook
output_notebook()

def make_fig():
    rows = cols = 16
    img = numpy.ones((rows, cols), dtype=numpy.uint32)
    view = img.view(dtype=numpy.uint8).reshape((rows, cols, 4))
    view[:, :, 0] = numpy.arange(256)
    view[:, :, 1] = 265 - numpy.arange(256)
    fig = figure(x_range=[0, c], y_range=[0, rows])
    fig.image_rgba(image=[img], x=[0], y=[0], dw=[cols], dh=[rows])
    return fig
Run Code Online (Sandbox Code Playgroud)

后来我想放大图:

fig = make_fig()
# <- zoom in on plot, like `set_xlim` from matplotlib
show(fig)
Run Code Online (Sandbox Code Playgroud)

如何在散景中进行程序化缩放?

python plot zoom axes bokeh

35
推荐指数
2
解决办法
2万
查看次数

面向对象的散景的多个问题[OBSOLETE]




注意:此问题涉及"第一代"Bokeh服务器,该服务器已被弃用和删除多年.此问题或其答案中的任何内容均与任何版本的Bokeh> = 0.11无关

有关使用现代支持的Bokeh服务器的详细信息,请参阅"用户指南"中的" 运行散热服务器"一章.




我正在尝试了解Bokeh是否正在构建一个交互式应用程序.我正在查看Bokeh示例,我发现大多数示例都是在全局命名空间中编写的,但是"app"子目录中的那些示例是以一种漂亮的,面向对象的方式编写的,其中主类是固有的来自像HBox这样的Property类.

这将是一个混乱的问题,因为我不认为这种编程Bokeh的方式有很好的记录.我遇到的第一件事是除非我包括,否则情节不会画出来extra_generated_classes.

  1. extra_generated_classes做什么?

    其次,看起来事件循环setup_events在启动之前调用,create并且随后每次触发事件时调用.

  2. 为什么每次触发事件时setup_events都需要注册回调?为什么它不会在第一次尝试注册之前等待创建完成?

    我不确定的最后一件事是如何在这里强制重绘一个雕文.滑块演示适用于我,我试图基本上做同样的事情,除了散点图而不是线.

    我在我的最后设置了一个pdb跟踪update_data,我可以保证self.source匹配,self.plot.renderers[-1].data_source并且它们都从一开始就进行了调整.但是,self.plot它本身并没有改变.

  3. 什么是面向对象的方法相当于调用store_objects来更新绘图?

    我对第三个问题特别困惑,因为它看起来不像sliders_app示例需要这样的东西.为了澄清,我正在尝试制作可变数量的小部件/滑块,所以这就是我的代码:

类属性:

extra_generated_classes = [['ScatterBias', 'ScatterBias', 'HBox']]
maxval = 100.0

inputs = Instance(bkw.VBoxForm)
outputs = Instance(bkw.VBoxForm)
plots = Dict(String, Instance(Plot))
source = Instance(ColumnDataSource)


cols = Dict(String, String)
widgets = Dict(String, Instance(bkw.Slider))
# unmodified source
df0 = Instance(ColumnDataSource)
Run Code Online (Sandbox Code Playgroud)

初始化方法

@classmethod
def create(cls):
    obj = cls()

    ##############################
    ## load DataFrame …
Run Code Online (Sandbox Code Playgroud)

python bokeh

31
推荐指数
1
解决办法
1830
查看次数

如何将独立散景图嵌入到django模板中

我想通过django框架在我的Web应用程序中显示散景库提供的图形,但我不想使用散景服务器可执行文件,因为它不是好方法.那有可能吗?如果是的话怎么做?

django django-templates python-2.7 bokeh

31
推荐指数
2
解决办法
1万
查看次数

如何改变散景图的大小

我已经阅读了大部分有关散景和许多示例的文档.它们都包含默认的方形窗口.我看到的唯一例子是稍微不同的是这里有子图并在创建Plot对象时设置高度和宽度.

python plot bokeh

30
推荐指数
3
解决办法
3万
查看次数

在Bokeh中,如何将工具提示添加到时间序列图表(悬停工具)?

是否可以将工具提示添加到时间序列图表中?

在下面的简化代码示例中,当鼠标悬停在相关行上时,我希望看到单个列名称('a','b'或'c').

相反,一个"???" 显示并且所有三行都得到一个工具提示(而不仅仅是悬停在其上的一个)

在此输入图像描述

根据文档( http://bokeh.pydata.org/en/latest/docs/user_guide/tools.html#hovertool),以"@"开头的字段名称将被解释为数据源上的列.

  1. 如何在工具提示中显示pandas数据框中的"列"?

  2. 或者,如果高级TimeSeries接口不支持此功能,那么使用较低级别接口执行相同操作的任何线索?(line?multi_line?)或将DataFrame转换为不同的格式(ColumnDataSource?)

  3. 对于奖励积分,如何格式化"$ x"以将日期显示为日期?

提前致谢

    import pandas as pd
    import numpy as np
    from bokeh.charts import TimeSeries
    from bokeh.models import HoverTool
    from bokeh.plotting import show

    toy_df = pd.DataFrame(data=np.random.rand(5,3), columns = ('a', 'b' ,'c'), index = pd.DatetimeIndex(start='01-01-2015',periods=5, freq='d'))   

    p = TimeSeries(toy_df, tools='hover')  

    hover = p.select(dict(type=HoverTool))
    hover.tooltips = [
        ("Series", "@columns"),
        ("Date", "$x"),
        ("Value", "$y"),
        ]

    show(p)
Run Code Online (Sandbox Code Playgroud)

tooltip python-3.x pandas timeserieschart bokeh

30
推荐指数
2
解决办法
2万
查看次数

如何在散景图上将x轴设置为日期时间?

我正在使用带有ipython笔记本的散景.

我想使用包含日期时间的pandas DataFrame在散景中绘制折线图:

import pandas as pd
from datetime import datetime as dt
from bokeh.io import output_notebook
from bokeh.charts import Bar, Line, show

df = pd.DataFrame(data=[1,2,3],
                  index=[dt(2015, 1, 1), dt(2015, 1, 2), dt(2015, 1, 3)],
                  columns=['foo'])

output_notebook()
show(Line(df))
Run Code Online (Sandbox Code Playgroud)

但是,散景使用微秒!为什么是这样?我如何解决它?

线的散景图

python pandas ipython-notebook bokeh

26
推荐指数
3
解决办法
3万
查看次数

从Bokeh导出数字为svg或pdf?

是否可以从Bokeh输出个人数字作为pdf或svg图像?我觉得我错过了一些明显的东西,但是我已经检查了在线帮助页面并通过bokeh.objectsapi并且没有找到任何东西......

python bokeh

25
推荐指数
1
解决办法
1万
查看次数

Bokeh图的X和Y轴标签

有谁知道如何为散景图添加x和y轴标题/标签?例如X轴:时间,Y轴:股票价格.

非常感谢!

python bokeh

25
推荐指数
3
解决办法
3万
查看次数

Python Bokeh:从图表中删除工具栏

我似乎无法从散景条形图中删除工具栏.尽管将tools参数设置为None(或False''),我总是以bokeh徽标和灰色线结束,例如使用以下代码:

p = figure(toolbar_location=None)
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用散景图时,它工作得非常好,工具栏也不见了,例如使用以下代码:

from bokeh.charts import Bar, output_file, show

# prepare some data
data = {"y": [6, 7, 2, 4, 5], "z": [1, 5, 12, 4, 2]}

# output to static HTML file
output_file("bar.html")

# create a new line chat with a title and axis labels
p = Bar(data, cat=['C1', 'C2', 'C3', 'D1', 'D2'], title="Bar example",
                xlabel='categories', ylabel='values', width=400, height=400,
                tools=None)

# show the results
show(p)
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

python bokeh

24
推荐指数
2
解决办法
1万
查看次数