gpt4 book ai didi

python - 我在 python 中使用 Bokeh 包时遇到问题

转载 作者:行者123 更新时间:2023-11-28 17:03:17 25 4
gpt4 key购买 nike

我正在尝试通过 Bokeh 包使用悬停工具。我有一个 pandas 数据框,其中包含名为“Wealth_Gap”、“Infant_Mortality”和“country”的列。我想用悬停工具中使用的国家/地区名称绘制 Infant_Mortality 和 Wealth_Gap 的值。

我的代码如下:

import pandas as pd
from bokeh.models import ColumnDataSource, HoverTool
from bokeh.plotting import figure, show

data = {
'Wealth_Gap': [30.5, 27.9, 34.2],
'Infant_Mortality': [3.0, 3.2, 2.3],
'country': ['Austria', 'Belgium', 'Cyprus']
}

infant_mort_wealth_gap = pd.DataFrame(data,
columns=['Wealth_Gap', 'Infant_Mortality', 'country'])

source = ColumnDataSource(data=dict(
x = infant_mort_wealth_gap['Wealth_Gap'],
y = infant_mort_wealth_gap['Infant_Mortality'],
desc = infant_mort_wealth_gap['country']
))

p = figure( title='Infant mortality vs wealth gap',
x_axis_label='Wealth gap', y_axis_label='Infant mortality')

hover = HoverTool()

hover.tooltips = [
("index", "$index"),
("(x,y)", "($x, $y)"),
("desc", "@desc")
]

p.circle('x', 'y', size=20, source=source)

p.tools.append(hover)

show(p)

这会产生以下错误:

TypeError: Object of type 'DataFrame' is not JSON serializable

我认为它只会将 x、y 和悬停值作为一个列表。所以我尝试了以下方法:

a = infant_mort_wealth_gap['Wealth_Gap'].tolist()
b = infant_mort_wealth_gap['Infant_Mortality'].tolist()

c = infant_mort_wealth_gap['country'].astype(str)
c = c.tolist()

并赋值如下:

x = a; y = b; desc = c

但这会返回相同的错误。

我也在网上看过并使用了这个:Solved: Python Bokeh Hover Tool giving: AttributeError: unexpected attribute 'tooltips' to Figure但仍然无法解决。

任何帮助都会很棒,干杯。

最佳答案

运行您的代码示例时我没有收到任何错误。对我来说,我的标准浏览器中的一个选项卡会弹出一个图像,如下所示。


编辑:值得一提的是,这是作者在代码示例中添加了一些虚拟数据和导入语句后的结果,这样问题就可以重现了。因此,正如 Daniel R. 的评论中提到的那样问题可能出在真实数据上。


The result

关于python - 我在 python 中使用 Bokeh 包时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52875174/

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