gpt4 book ai didi

python - 如何让悬停工具从 Bokeh 中绘制的数据框中显示另一个值?

转载 作者:行者123 更新时间:2023-12-01 09:13:57 25 4
gpt4 key购买 nike

我正在尝试在 Python Bokeh 中绘制抖动图,结果显示效果很好。我无法让悬停工具显示我想要的内容。该图在 y 轴上显示调用数量,在 x 轴上显示部门编号。我试图让悬停工具显示每个点的相关主题。这是我的代码:

p6 = figure(title = 'Number of Calls by Topic for Busiest Departments',
y_range=(0,600), tools="hover", tooltips="@Topic")

for i, d in enumerate(list(df_6['Dept'].unique())):
y = df_6[df_6['Dept'] == d][['Count', 'Topic']]
color = colors[i % len(colors)]
p6.circle(x={'value': i, 'transform': Jitter(width=0.4)}, y=y['Count'],
color=color)

因此,我迭代为每个部门创建子数据框,使“主题”与每个点相关联。当我显示绘图时,悬停工具只显示 ???而不是主题。如何让它显示与每个点相关的主题?谢谢!

最佳答案

您是否为非常单独的点绘制一个?即使点数很少,效率也会非常低。 Bokeh 字形(例如circle)旨在并优化为一次对整个数据列表/数组进行操作。

此外,如果您只是将文字值直接传递给circle,那么 Bokeh 就知道要发送到浏览器。如果您想发送额外的数据列,例如要驱动悬停工具提示,那么您必须告诉 Bokeh 需要发送这些列,方法是显式地将它们放入数据源中,并将该数据源作为 source 参数传递给 glyph 函数。为了方便起见,您还可以直接将 Pandas 数据帧作为传递,它们将自动转换为 Bokeh ColumnDataSource

由于您的代码不完整,无法为您提供直接的解决方案。但这里是一个带有悬停和抖动的完整示例,适用于 Bokeh >= 0.13.0,希望足够说明:

from bokeh.transform import jitter
from bokeh.plotting import figure, show
from bokeh.sampledata.autompg import autompg

p = figure(plot_width=600, plot_height=300, tooltips="MPG: @mpg")
p.circle(x=jitter('yr', width=0.6, range=p.x_range), y='mpg',
alpha=0.6, size=10, source=autompg)

show(p)

enter image description here

关于python - 如何让悬停工具从 Bokeh 中绘制的数据框中显示另一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51413888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com