以下是一个使用Bokeh和Python的示例代码,演示了如何在数据来自pandas的情况下,悬停在vbar上:
import pandas as pd
from bokeh.plotting import figure, show
from bokeh.models import HoverTool
from bokeh.io import output_notebook
# 创建一个示例DataFrame
data = {'Category': ['A', 'B', 'C', 'D'],
'Value': [10, 20, 30, 40]}
df = pd.DataFrame(data)
# 设置输出Bokeh图表到Jupyter Notebook
output_notebook()
# 创建一个figure对象
p = figure(x_range=df['Category'], plot_height=350, title="Hover over the bars")
# 创建vbar对象,并添加到figure中
vbar = p.vbar(x='Category', top='Value', source=df, width=0.9)
# 添加HoverTool到figure中
hover = HoverTool(renderers=[vbar], tooltips=[("Category", "@Category"), ("Value", "@Value")])
p.add_tools(hover)
# 显示图表
show(p)
这个示例代码首先创建了一个示例的DataFrame,其中包含了两列数据:Category和Value。然后,使用Bokeh的figure对象创建一个图表,并使用vbar方法创建一个垂直条形图。将DataFrame作为source参数传递给vbar对象,以使用其中的数据。
接下来,使用HoverTool对象创建一个悬停工具,将其渲染器设置为vbar对象,并设置tooltips参数为悬停时要显示的内容。
最后,使用show方法显示图表。
运行这段代码将在输出中显示一个垂直条形图,当鼠标悬停在条形上时,将显示Category和Value的值。