interactive_legend#

一个使用股票价格数据绘制的线图。有时,希望能够通过单击 Legend 中的条目来隐藏字形。这可以通过将图例 click_policy 属性设置为 "hide" 来实现。

详情

示例数据:

bokeh.sampledata.stocks

Bokeh APIs:

bokeh.palettes.Spectral4

更多信息:

交互式图例

关键词:

line, interactions, legend, hide, glyphs

import pandas as pd

from bokeh.palettes import Spectral4
from bokeh.plotting import figure, show
from bokeh.sampledata.stocks import AAPL, GOOG, IBM, MSFT

p = figure(width=800, height=250, x_axis_type='datetime')
p.title.text = 'Click on legend entries to hide lines'

for data, name, color in zip([AAPL, IBM, MSFT, GOOG], ["AAPL", "IBM", "MSFT", "GOOG"], Spectral4):
    df = pd.DataFrame(data)
    df['date'] = pd.to_datetime(df['date'])
    p.line(df['date'], df['close'], line_width=2, color=color, alpha=0.8, legend_label=name)

p.legend.location = 'top_left'
p.legend.click_policy = 'hide'
p.y_range.only_visible = True

show(p)