Bokeh 选择 Bokeh 条形图中的条的顺序

Bokeh 选择 Bokeh 条形图中的条的顺序

在本文中,我们将介绍如何选择 Bokeh 条形图中条的顺序。Bokeh 是一个用于创建交互式可视化图表的 Python 库,它支持绘制各种类型的图表,包括条形图。当我们创建一个条形图时,通常会根据一些特定的顺序来排列条形。这可能是类别的顺序,也可能是数值的顺序。Bokeh 提供了几种方法来控制条形图中条的顺序,让我们一起来看看吧!

阅读更多:Bokeh 教程

默认顺序

首先,让我们来看一下默认情况下 Bokeh 中条形图的顺序。假设我们有一个数据集,其中包含几个城市的人口数据。我们希望根据每个城市的人口数量绘制条形图。下面是一个简单的示例代码:

from bokeh.plotting import figure, show
from bokeh.io import output_notebook

output_notebook()

cities = ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
population = [8537673, 3976322, 2704958, 2303482, 1615017]

p = figure(x_range=cities, plot_height=400, plot_width=600, toolbar_location=None, title="City Population")
p.vbar(x=cities, top=population, width=0.9)

show(p)

运行这段代码后,我们将得到一个条形图,显示了每个城市的人口数量。默认情况下,条形按照它们在数据中出现的顺序排列。

根据类别顺序排列

有时我们希望根据类别的顺序来排列条形。比如,我们要根据城市的人口数量从高到低来排列条形。Bokeh 提供了 factor_sort() 函数来实现这个目的。我们可以使用 factor_sort() 函数将城市名称和人口数量作为输入,并将其应用于条形图的 x 轴范围。

from bokeh.transform import factor_sort

p = figure(x_range=factor_sort(cities), plot_height=400, plot_width=600, toolbar_location=None, title="City Population")
p.vbar(x=cities, top=population, width=0.9)

show(p)

运行这段代码后,我们将得到一个按照城市人口数量从高到低排序的条形图。

根据数值顺序排列

另一种常见的需求是根据数值的顺序来排列条形。比如,我们要根据每个城市的人口数量从低到高来排列条形。Bokeh 提供了 sort() 函数来实现这个目的。我们可以使用 sort() 函数将人口数量作为输入,并将其应用于条形图的 x 轴范围。

p = figure(x_range=sorted(cities, key=lambda x: population[cities.index(x)]), plot_height=400, plot_width=600, toolbar_location=None, title="City Population")
p.vbar(x=cities, top=population, width=0.9)

show(p)

运行这段代码后,我们将得到一个按照城市人口数量从低到高排序的条形图。

自定义顺序

除了使用默认顺序、类别顺序或数值顺序外,我们还可以自定义条形图中条的顺序。这对于需要特定顺序的情况非常有用,比如按照字母顺序排列城市名称。我们可以创建一个自定义的顺序列表,并将其应用于条形图的 x 轴范围。

custom_order = ['Chicago', 'Houston', 'Los Angeles', 'New York', 'Phoenix']

p = figure(x_range=custom_order, plot_height=400, plot_width=600, toolbar_location=None, title="City Population")
p.vbar(x=cities, top=population, width=0.9)

show(p)

运行这段代码后,我们将得到一个按照自定义顺序排列的条形图。

总结

在本文中,我们探讨了如何选择 Bokeh 条形图中的条的顺序。我们了解到 Bokeh 提供了几种方法来控制条的顺序,包括默认顺序、类别顺序和数值顺序。此外,我们还学会了如何使用自定义顺序来排列条形图。根据实际需求,我们可以灵活地选择合适的顺序,以获得更清晰的可视化效果。无论是按类别、数值还是自定义顺序,Bokeh 提供了强大的功能来满足我们的需求。希望本文对您在选择 Bokeh 条形图中的条的顺序方面有所帮助!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Bokeh 问答