Bokeh – 如果工具提示中有缺失值,则不显示工具提示
在本文中,我们将介绍如何在使用Bokeh绘图时处理包含缺失值的工具提示,并避免显示这些具有缺失值的工具提示。
阅读更多:Bokeh 教程
Bokeh简介
Bokeh是一个用于Python的交互式数据可视化库,它可以创建漂亮而且功能强大的交互式图表。它提供了丰富的绘图工具和交互能力,使得数据分析师和开发人员能够轻松地探索、分析和展示数据。
Bokeh工具提示介绍
Bokeh工具提示是鼠标悬停在图形上时出现的信息框,它显示了与鼠标指针所在位置相关的数据。在Bokeh中,我们可以通过添加tooltips参数来定义工具提示的内容。
Bokeh提供了灵活的方式来定义工具提示的内容,我们可以使用字段名、表达式或自定义函数来提供工具提示的值。在默认情况下,工具提示将显示所有列的值。然而,当某些列中存在缺失值时,Bokeh默认会将缺失值显示为”???”。对于一些情况,我们可能希望在工具提示中隐藏这些缺失值,以便更好地展示数据。
隐藏缺失值的工具提示
为了隐藏工具提示中的缺失值,在定义工具提示的时候,我们可以使用@
符号和??
表达式。通过使用@
符号,我们可以直接引用数据源中的字段,并使用??
表达式来判断字段是否为缺失值。下面是个例子:
from bokeh.models import HoverTool
from bokeh.plotting import figure, show
import pandas as pd
# 创建一个示例数据集
data = {'x': [1, 2, 3, 4, 5],
'y': [1, 2, None, 4, 5],
'label': ['A', 'B', 'C', 'D', 'E']}
df = pd.DataFrame(data)
# 创建一个图形对象
p = figure(plot_width=400, plot_height=400, tooltips=[('Label', '@label'), ('Value', '@y{0,0}')])
# 隐藏缺失值的工具提示
p.hover.tooltips = [('Label', '@label'), ('Value', '@y{0,0}', '@y{0,0} != "None"')]
# 添加散点图
p.circle('x', 'y', size=10, source=df)
# 显示图形
show(p)
在上面的代码中,我们创建了一个示例数据集,并使用Bokeh创建一个散点图。在定义工具提示时,我们使用了@y{0,0}
来引用’y’列的值,并使用@y{0,0} != "None"
来判断’y’列是否为缺失值。这样,只有在’y’列不是缺失值时,工具提示才会显示对应的值。
数字格式化
除了隐藏缺失值外,我们还可以使用Bokeh的格式化选项来对工具提示中的数字进行格式化。例如,我们可以使用{0,0}
表示数字使用千位分隔符进行格式化,并保留0位小数。
from bokeh.models import HoverTool
from bokeh.plotting import figure, show
import pandas as pd
# 创建一个示例数据集
data = {'x': [1, 2, 3, 4, 5],
'y': [1000, 2000, 3000, 4000, 5000]}
df = pd.DataFrame(data)
# 创建一个图形对象
p = figure(plot_width=400, plot_height=400, tooltips=[('Value', '@y{0,0}')])
# 添加散点图
p.circle('x', 'y', size=10, source=df)
# 显示图形
show(p)
在上面的代码中,我们创建了一个示例数据集,并使用Bokeh创建一个散点图。在定义工具提示时,我们使用了@y{0,0}
来引用’y’列的值,并对数字进行了格式化,使用了千位分隔符进行格式化并保留了0位小数。
总结
在本文中,我们介绍了如何在使用Bokeh绘图时处理包含缺失值的工具提示,并避免显示这些具有缺失值的工具提示。我们使用了@
符号和??
表达式来判断字段是否为缺失值,并使用了数字格式化选项来对工具提示中的数字进行格式化。通过隐藏缺失值和格式化数字,我们可以更好地展示数据,并提升数据可视化的效果。希望本文对你有所帮助!