Python 如何在bokeh中组合多个条形图?

Python 如何在bokeh中组合多个条形图?,python,bar-chart,bokeh,Python,Bar Chart,Bokeh,我想在同一个图形上绘制两个条形图 一个只有正值,一个只有负值 我想要绿色的正极条(x轴上方)和红色的负极条(x轴下方) 问题: 1。是否可以使用bokeh.charts界面中现有的高级条形图方法执行此操作? 2。如果没有,如何使用较低级别的bokeh.plotting界面创建条形图?(而不是更高级别的bokeh.charts界面)编辑:下面的答案已经过时几年了。现在,各种条形图(堆叠、分组、颜色映射)都变得更简单、更容易。有关许多示例,请参见《用户指南》的本节: 1. 我尝试使用高级条形图方

我想在同一个图形上绘制两个条形图

一个只有正值,一个只有负值

我想要绿色的正极条(x轴上方)和红色的负极条(x轴下方)

问题:

1。是否可以使用bokeh.charts界面中现有的高级条形图方法执行此操作?


2。如果没有,如何使用较低级别的bokeh.plotting界面创建条形图?(而不是更高级别的bokeh.charts界面)

编辑:下面的答案已经过时几年了。现在,各种条形图(堆叠、分组、颜色映射)都变得更简单、更容易。有关许多示例,请参见《用户指南》的本节:


1. 我尝试使用高级条形图方法制作多个条形图,但是,我无法实现我想要的,因此我使用了绘图界面

2. 这就是你要找的吗

    from bokeh.plotting import figure, output_file, show

    plot = figure(width=600, height=600, x_range=(0,50), y_range=(-10,10))

    plot.quad(top=[10],bottom=[0],left=[1],right=[2], color='green', line_color='black', legend='positive')
    plot.quad(top=[12],bottom=[0],left=[2],right=[3], color='green', line_color='black', legend='positive')
    plot.quad(top=[1],bottom=[0],left=[3],right=[4], color='green', line_color='black', legend='positive')
    plot.quad(top=[2],bottom=[0],left=[4],right=[5], color='green', line_color='black', legend='positive')
    plot.quad(top=[3],bottom=[0],left=[5],right=[6], color='green', line_color='black', legend='positive')
    plot.quad(top=[4],bottom=[0],left=[6],right=[7], color='green', line_color='black', legend='positive')

    plot.quad(top=[-5],bottom=[0],left=[1],right=[2], color='red', line_color='black', legend='negative')
    plot.quad(top=[-6],bottom=[0],left=[2],right=[3], color='red', line_color='black', legend='negative')
    plot.quad(top=[-2],bottom=[0],left=[3],right=[4], color='red', line_color='black', legend='negative')
    plot.quad(top=[-8],bottom=[0],left=[4],right=[5], color='red', line_color='black', legend='negative')
    plot.quad(top=[-9],bottom=[0],left=[5],right=[6], color='red', line_color='black', legend='negative')
    plot.quad(top=[-10],bottom=[0],left=[6],right=[7], color='red', line_color='black', legend='negative')

    output_file('test.html')
    show(plot)

您可以使用两个
vbar\u堆栈
调用:

volume_figure.vbar_stack(["buys"], x='timestamp', width=1.0, color=[colors.turquoise], source=source)
volume_figure.vbar_stack(["sells"], x='timestamp', width=1.0, color=[colors.tomato], source=source)

通常情况下,条形图在“文档”部分中有详细描述,这就足够了。。特别是如果“顶部”、“左侧”和“右侧”输入可以获取一个数据帧,那么我可以用两个四元组来实现这一点。。。谢谢很高兴我能帮忙!谢谢你接受答案!现在事情比这容易多了,有关堆叠、分组或彩色映射条形图的许多示例,请参见用户指南: