
I want to be able to add a Hovertool when I create a Custom Legend. I have tried to do the following with no success:
- Create new Column Data Source within the for loop
- Change where I put the add_tools
Here is me trying to convert each dataframe to ColumnDataSource:
import pandas as pd
import bokeh
from bokeh.palettes import Spectral4
from bokeh.plotting import figure, output_file, show, ColumnDataSource
from bokeh.models.tools import HoverTool
bokeh.sampledata.download()
AAPL = pd.read_csv("C:/Users/chelsey.marie/.bokeh/data/AAPL.csv")
IBM = pd.read_csv("C:/Users/chelsey.marie/.bokeh/data/IBM.csv")
MSFT = pd.read_csv("C:/Users/chelsey.marie/.bokeh/data/MSFT.csv")
GOOG = pd.read_csv("C:/Users/chelsey.marie/.bokeh/data/GOOG.csv")
p = figure(plot_width=800, plot_height=250, x_axis_type="datetime")
p.title.text = 'Click on legend entries to hide the corresponding lines'
TOOLTIPS = [
("DATE: ", "@date"),
("VALUE: ", "@Close")
]
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('date', 'Close',source = sample, line_width=2, color=color, alpha=0.8, legend=name)
p.legend.location = "top_left"
p.legend.click_policy="hide"
output_file("interactive_legend.html", title="interactive_legend.py example")
show(p)
This results in the plot generating but no HoverTool


Thank you Bryan