gpt4 book ai didi

bokeh - 如何最初使用 Bokeh 显示图表的分类轴的一部分?

转载 作者:行者123 更新时间:2023-12-01 06:06:51 25 4
gpt4 key购买 nike

我有一个分类数据文件,例如一百个国家及其人口。我使用它通过 Bokeh 在 jupyter notebook 中绘制条形图。
现在,乍一看,我只需要显示前十个城市。当我使用平移或滚轮缩放工具时,我可以看到其他城市的条形图。

当使用连续/数值轴时,我发现它很容易做到。可能是因为 Bokeh 知道连续/数值轴背后的逻辑,但不知道分类数据。

现在我只是用一个小例子来展示我的尝试。我尝试限制分类 y_range

from bokeh.plotting import figure, show, output_notebook

factors = ["a", "b", "c", "d", "e", "f", "g", "h"]
x = [50, 40, 65, 10, 25, 37, 80, 60]

p1 = figure(title="Dot Plot", tools="pan,reset", y_range=factors, x_range=[0,60])
p1.circle(x, factors, size=10, fill_color="orange", line_color="green", line_width=3, )
output_notebook()
show(p1);

你可以看到 max(x)为 80, x_range限制为 [0,60] .

向右平移图表时,我们可以看到 2 x(等于 65 和 80)看起来不错。

但是,当我限制 y_range如下;
p1 = figure(title="Dot Plot", tools="pan,reset", y_range=factors[0:4], x_range=[0,60])

看起来不错:
categorical_axis_limit

但是在平移时,我发现水平线上有几个点,没有对应的 y 值。
categorical_axis_limit_pan

欢迎任何想法。非常感谢你。
由于这是我第一次提问,如有不妥之处,请告诉我。

我在 https://gitter.im/bokeh/bokeh 上问过这个问题并在下面得到答案。如果你遇到同样的问题,让我们一起等待。非常感谢 Bokeh 的开发者。
gitter Q&A

最佳答案

如果您仍然感兴趣,我设法使用 Slider 小部件进行了解决:

from bokeh.models import ColumnDataSource
from bokeh.models.widgets import Slider
from bokeh.io import show
from bokeh.plotting import Figure, vplot, curdoc
from bokeh.models.layouts import VBox

factors = ["a", "b", "c", "d", "e", "f", "g", "h"]
x = [50, 40, 65, 10, 25, 37, 80, 60]

source = ColumnDataSource(data=dict(x=x[0:4],y=factors[0:4]))

p1 = Figure(title="Dot Plot", tools="pan,reset", y_range=factors[0:4], x_range=[0,100])
p1.circle(x='x', y='y', source=source, fill_color="orange", size=100, line_color="green", line_width=3)
slider = Slider(title='Scroll',start=0,value=0,end=len(factors)-4,step=1)

def update(attrname,old,new):
source.data = dict(x=x[0+slider.value:4+slider.value],y=factors[0+slider.value:4+slider.value])
print(source.data)
p1.y_range.factors = factors[0+slider.value:4+slider.value]

slider.on_change('value',update)

p = VBox(p1,slider,width=p1.plot_width)

curdoc().add_root(p)

show(p)

它基本上滚动浏览您的数据。不幸的是,现在有一个问题,如果边缘的字形太小,它们会被隐藏,但增加它们的大小是一个快速的解决方法。此外,遗憾的是,这不适用于缩放,但我确信在另一个 slider 上添加“缩放”并让它修改你想要显示的范围的变量(我只使用 4)会很容易。

关于bokeh - 如何最初使用 Bokeh 显示图表的分类轴的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37565632/

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