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 条形图中的条的顺序方面有所帮助!