Bokeh 图表中图例的位置
在本文中,我们将介绍如何在 Bokeh 图表中设置图例的位置。Bokeh 是一个强大的 Python 可视化库,用于创建交互式、动态和具有吸引力的数据可视化。
图例是指图表中标记不同元素的标签,它们可以帮助读者理解图表中不同组件的含义。Bokeh 提供了多种选项来设置图例的位置,以便更好地适应不同的需求。
阅读更多:Bokeh 教程
默认位置
首先,让我们来看一下 Bokeh 默认情况下图例的位置。当我们创建一个简单的折线图时,Bokeh 会将图例放置在图表的右上角。
from bokeh.plotting import figure, show
# 创建一个简单的折线图
p = figure()
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], legend_label="Line")
# 显示图表
show(p)
在上面的代码中,我们使用 figure
创建了一个简单的折线图,并使用 line
方法添加了一个数据系列。legend_label
参数用于设置图例中的标签。运行该代码,我们可以看到图例位于默认的右上角位置。
设置图例的位置
Bokeh 提供了多种方式来设置图例的位置。我们可以使用 legend.location
属性来指定图例的具体位置。
from bokeh.plotting import figure, show
from bokeh.models import Legend
# 创建一个简单的折线图
p = figure()
line = p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], legend_label="Line")
# 设置图例位置为右下角
legend = Legend(items=[("Line", [line])], location="bottom_right")
p.add_layout(legend, 'right')
# 显示图表
show(p)
在上面的代码中,我们首先创建了一个 Legend
对象,并使用 items
参数指定图例中的项。然后,我们使用 location
参数将图例位置设置为右下角。最后,我们使用 add_layout
将图例添加到图表中。
除了 bottom_right
,Bokeh 还提供了以下位置选项供我们自由选择:
top_left
top_center
top_right
center_right
bottom_right
bottom_center
bottom_left
center_left
center
我们可以根据需要选择适合的位置。
自定义图例的位置
除了使用预定义的位置选项之外,我们还可以通过设置 legend.location
为 (x, y)
元组的方式来自定义图例的位置。这种方式允许我们指定图例相对于图表的百分比位置。
from bokeh.plotting import figure, show
# 创建一个简单的折线图
p = figure()
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], legend_label="Line")
# 设置图例位置为图表右上角的 80% 垂直位置和 10% 水平位置
p.legend.location = (0.1, 0.8)
# 显示图表
show(p)
在上面的代码中,我们通过将 legend.location
设置为 (0.1, 0.8)
,将图例位置设置为图表右上角的 80% 垂直位置和 10% 水平位置。
图例位置相对于轴的反向
默认情况下,图例的位置是相对于轴的位置确定的。但是,我们可以通过设置 legend.on_axis
属性为 False
,使图例与轴的位置相反。
from bokeh.plotting import figure, show
# 创建一个简单的折线图
p = figure()
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], legend_label="Line")
# 将图例位置设置为与轴的位置相反
p.legend.location = (0.1, 0.8)
p.legend.on_axis = False
# 显示图表
show(p)
在上述代码中,通过将 legend.on_axis
设置为 False
,我们将图例的位置与轴的位置相反。
图例的其它属性
除了位置之外,我们还可以设置图例的其他属性,例如图例的宽度、高度、填充颜色等。这些属性可以通过 legend
对象的相应属性进行设置。
from bokeh.plotting import figure, show
# 创建一个简单的折线图
p = figure()
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], legend_label="Line")
# 设置图例的宽度、高度和填充颜色
p.legend.width = 200
p.legend.height = 100
p.legend.background_fill_color = "lightgray"
# 显示图表
show(p)
在上面的代码中,我们通过设置 legend.width
和 legend.height
来指定图例的宽度和高度,通过设置 legend.background_fill_color
来指定图例的填充颜色。
通过设置这些属性,我们可以进一步定制图例的外观,使之更符合我们的需求。
总结
在本文中,我们介绍了在 Bokeh 图表中设置图例位置的方法。我们可以使用 legend.location
属性设置预定义的位置选项,也可以使用 (x, y)
元组来自定义图例的位置。此外,我们还可以设置图例的其他属性,如宽度、高度和填充颜色等。通过灵活地设置图例的位置和属性,我们可以创建出更具吸引力和可读性的数据可视化图表。