Bokeh 热力图使用

Bokeh 热力图使用

在本文中,我们将介绍如何使用Bokeh库创建热力图。热力图可以帮助我们直观地展示数据的分布情况和趋势,是数据可视化中常用的一种图表类型。

阅读更多:Bokeh 教程

简介

Bokeh是一个交互式的Python绘图库,用于创建漂亮且功能丰富的可视化图表。它提供了许多可视化工具和布局选项,适用于各类数据可视化任务。热力图是Bokeh库中的一种常用图表类型之一,可以用来展示两个维度的数据分布情况。

创建热力图

要创建一个热力图,我们需要先导入Bokeh库,并为热力图准备好数据。

from bokeh.io import output_file, show
from bokeh.models import BasicTicker, ColorBar, LinearColorMapper, PrintfTickFormatter
from bokeh.plotting import figure
from bokeh.transform import transform

# 准备数据
data = {
    'x': [1, 2, 3, 4, 5],
    'y': [1, 2, 3, 4, 5],
    'values': [
        [0.1, 0.2, 0.3, 0.4, 0.5],
        [0.2, 0.3, 0.4, 0.5, 0.6],
        [0.3, 0.4, 0.5, 0.6, 0.7],
        [0.4, 0.5, 0.6, 0.7, 0.8],
        [0.5, 0.6, 0.7, 0.8, 0.9]
    ]
}

# 创建热力图
p = figure(title="Bokeh Heatmap", x_range=[1, 5], y_range=[1, 5])

p.rect(x='x', y='y', width=1, height=1, source=data,
       fill_color=transform('values', mapper=LinearColorMapper(palette="Viridis256", low=0, high=1)),
       line_color=None)

color_bar = ColorBar(color_mapper=LinearColorMapper(palette="Viridis256", low=0, high=1),
                     ticker=BasicTicker(desired_num_ticks=5),
                     formatter=PrintfTickFormatter(format="%f"),
                     label_standoff=12, border_line_color=None, location=(0, 0))

p.add_layout(color_bar, 'right')

# 输出和展示图像
output_file("heatmap.html")
show(p)

以上代码中,我们首先导入所需的Bokeh库中的组件和函数,然后准备好数据。数据包括x坐标、y坐标以及对应的值。接下来,我们创建一个figure对象,在这个对象中设置热力图的标题和坐标范围。使用rect方法创建矩形,设置填充颜色和线条颜色,其中填充颜色通过LinearColorMapper转换数据集,并选择色板。我们还可以添加颜色条以更好地表示数据的值域范围。最后,使用output_file将图像保存到指定的HTML文件,并使用show函数展示图像。

自定义热力图

Bokeh库提供了许多自定义热力图的选项,例如修改颜色映射、调整坐标轴标签等。

from bokeh.io import output_file, show
from bokeh.models import BasicTicker, ColorBar, LinearColorMapper, PrintfTickFormatter
from bokeh.plotting import figure
from bokeh.transform import transform

# 准备数据
data = {
    'x': [1, 2, 3, 4, 5],
    'y': [1, 2, 3, 4, 5],
    'values': [
        [0.1, 0.2, 0.3, 0.4, 0.5],
        [0.2, 0.3, 0.4, 0.5, 0.6],
        [0.3, 0.4, 0.5, 0.6, 0.7],
        [0.4, 0.5, 0.6, 0.7, 0.8],
        [0.5, 0.6, 0.7, 0.8, 0.9]
    ]
}

# 创建热力图
p = figure(title="Customized Bokeh Heatmap", x_range=[1, 5], y_range=[1, 5],
           toolbar_location=None, tools="")

p.rect(x='x', y='y', width=1, height=1, source=data,
       fill_color=transform('values', mapper=LinearColorMapper(palette="RdBu11", low=0, high=1)),
       line_color=None)

color_bar = ColorBar(color_mapper=LinearColorMapper(palette="RdBu11", low=0, high=1),
                     ticker=BasicTicker(desired_num_ticks=11),
                     formatter=PrintfTickFormatter(format="%f"),
                     label_standoff=12, border_line_color=None, location=(0, 0),
                     title="Custom Colorbar Title")

p.add_layout(color_bar, 'right')

p.xaxis.axis_label = "Custom X Label"
p.yaxis.axis_label = "Custom Y Label"

# 输出和展示图像
output_file("custom_heatmap.html")
show(p)

这个示例中,我们在创建figure对象时加入了一些新的参数。我们通过toolbar_location将工具栏位置设为无,设置tools为空。这样可以隐藏工具栏。我们还自定义了热力图的填充颜色和颜色条的色板。在这个示例中,我们选择了RdBu11这个色板,并设置了lowhigh两个参数来调整颜色映射的范围。同时,我们在颜色条中设置了新的标题,通过title参数传入。

总结

在本文中,我们学习了如何使用Bokeh库创建热力图。通过导入必要的库和组件,准备数据,我们可以轻松地创建热力图,并自定义其外观。热力图是一种直观展示数据分布情况的图表类型,广泛应用于数据可视化领域。希望通过本文的介绍,你对Bokeh库的热力图使用有了更深入的了解。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

Bokeh 问答