gpt4 book ai didi

python-3.x - 影响主要 y 范围的 Bokeh 次要 y 范围

转载 作者:行者123 更新时间:2023-12-04 02:09:47 24 4
gpt4 key购买 nike

我正在使用 bokeh.plotting 构建 Bokeh 图。我有两个具有共享索引的系列,我想为其绘制两个垂直条。当我使用单个条时,一切正常,但是当我添加第二个 y 范围和第二个条时,它似乎影响了主要 y 范围(将值从 0 更改为 4),而我的第二个 vbar() 覆盖了第一个.任何关于为什么条重叠而不是并排以及为什么第二个系列/yaxis 尽管它们是分开的但似乎影响第一个的任何帮助将不胜感激。

import pandas as pd
import bokeh.plotting as bp
from bokeh.models import NumeralTickFormatter, HoverTool, Range1d, LinearAxis

df_x_series = ['a','b','c']
fig = bp.figure(title='WIP',x_range=df_x_series,plot_width=1200,plot_height=600,toolbar_location='below',toolbar_sticky=False,tools=['reset','save'],active_scroll=None,active_drag=None,active_tap=None)
fig.title.align= 'center'
fig.extra_y_ranges = {'c_count':Range1d(start=0, end=10)}
fig.add_layout(LinearAxis(y_range_name='c_count'), 'right')
fig.vbar(bottom=0, top=[1,2,3], x=['a','b','c'], color='blue', legend='Amt', width=0.3, alpha=0.5)
fig.vbar(bottom=0, top=[5,7,8], x=['a','b','c'], color='green', legend='Ct', width=0.3, alpha=0.8, y_range_name='c_count')
fig.yaxis[0].formatter = NumeralTickFormatter(format='0.0')
bp.output_file('bar.html')
bp.show(fig)

bokeh plot

最佳答案

这是我相信你想要的情节: enter image description here

代码如下:

import bokeh.plotting as bp
from bokeh.models import NumeralTickFormatter, Range1d, LinearAxis

df_x_series = ['a', 'b', 'c']
fig = bp.figure(
title='WIP',
x_range=df_x_series,
y_range=Range1d(start=0, end=4),
plot_width=1200, plot_height=600,
toolbar_location='below',
toolbar_sticky=False,
tools=['reset', 'save'],
active_scroll=None, active_drag=None, active_tap=None
)
fig.title.align = 'center'
fig.extra_y_ranges = {'c_count': Range1d(start=0, end=10)}
fig.add_layout(LinearAxis(y_range_name='c_count'), 'right')
fig.vbar(bottom=0, top=[1, 2, 3], x=['a:0.35', 'b:0.35', 'c:0.35'], color='blue', legend='Amt', width=0.3, alpha=0.5)
fig.vbar(bottom=0, top=[5, 7, 8], x=['a:0.65', 'b:0.65', 'c:0.65'], color='green', legend='Ct', width=0.3, alpha=0.8, y_range_name='c_count')
fig.yaxis[0].formatter = NumeralTickFormatter(format='0.0')
bp.output_file('bar.html')
bp.show(fig)

一些注意事项:

  • 分类轴目前在 Bokeh 中有点(咳咳)难看。我们希望在未来几个月内解决这个问题。每一个在冒号后都有一个 0 - 1 的比例,它允许你左右移动东西。因此,我将第一个条向左移动 0.3/2,将第二个条向右移动 0.3/2(0.3,因为这是您使用的宽度)
  • y_range 已更改,因为您使用默认 y_range 作为初始 y_range,即 DataRange1d。 DataRange 使用绘图的所有数据来选择其值并添加一些填充,这就是为什么它从低于 0 开始并上升到新数据的最大值。通过在图形调用中手动指定范围,您可以解决这个问题。

感谢您提供代码示例以供使用 :D

关于python-3.x - 影响主要 y 范围的 Bokeh 次要 y 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39712328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com