📜  Bokeh-自定义图例(1)

📅  最后修改于: 2023-12-03 15:13:40.585000             🧑  作者: Mango

Bokeh-自定义图例

Bokeh是一个用于交互式可视化的Python库,它可以用于构建各种类型的图形,例如:折线图、柱状图、散点图等等。

在绘制数据的时候,经常需要使用到图例,以帮助用户更好地理解图表中的数据。Bokeh可以通过以下几个步骤自定义图例:

步骤一:创建数据

首先,我们需要创建一些数据来展示。假设我们有一组电影数据,包括电影名称、上映年份和电影票房:

import pandas as pd

data = pd.DataFrame({
    'name': ['Avengers: Endgame', 'The Lion King', 'Frozen 2', 'Spider-Man: Far From Home'],
    'year': [2019, 2019, 2019, 2019],
    'box_office': [2797, 1656, 1450, 1131]
})
步骤二:创建绘图对象

接下来,我们需要创建一个绘图对象,并设置图表的基本属性:

from bokeh.plotting import figure

p = figure(x_axis_label='Year', y_axis_label='Box Office', title='Box Office of Movies in 2019')
步骤三:绘制图形

然后,我们可以使用p.circle()方法绘制圆形散点图:

p.circle(data.year, data.box_office, size=15, color=['blue', 'red', 'green', 'orange'], legend_label=data.name)

这里,我们使用了color参数来设置每个散点的颜色,legend_label参数来设置每个散点的标签。

步骤四:自定义图例

最后,我们可以使用p.legend方法来自定义图例:

p.legend.location = 'top_left'
p.legend.label_text_font_size = '12pt'
p.legend.title = 'Movies'
p.legend.title_text_font_size = '14pt'
p.legend.title_text_font_style = 'bold'

这里,我们设置了图例的位置,字体大小以及标题的样式。

完整代码
import pandas as pd
from bokeh.plotting import figure, show

data = pd.DataFrame({
    'name': ['Avengers: Endgame', 'The Lion King', 'Frozen 2', 'Spider-Man: Far From Home'],
    'year': [2019, 2019, 2019, 2019],
    'box_office': [2797, 1656, 1450, 1131]
})

p = figure(x_axis_label='Year', y_axis_label='Box Office', title='Box Office of Movies in 2019')
p.circle(data.year, data.box_office, size=15, color=['blue', 'red', 'green', 'orange'], legend_label=data.name)

p.legend.location = 'top_left'
p.legend.label_text_font_size = '12pt'
p.legend.title = 'Movies'
p.legend.title_text_font_size = '14pt'
p.legend.title_text_font_style = 'bold'

show(p)
结论

通过以上步骤,我们可以自定义Bokeh图表的图例,并帮助用户更好地理解数据。