首页 > 解决方案 > 如何使用 Bokeh 制作热图或水平线(在地图上)?

问题描述

我找到了很多带有 Bokeh 的示例热图,但它包含三个变量(三个值,例如:x、y 和温度)。它不是为了地图。我想在我的地图上编写圆圈(不是第三个值)的级别(分布)行。

我知道其他库也可以,但我构建了一个 Bokeh 应用程序,但我看不出它是如何实现的。

首先,我在一个有几个点的图表上寻找一个小例子(使用 Bokeh)。

从那开始:

对此:

散景(没有曲线)可能带有图例。

非常感谢。

PS:我知道这个例子,但它对我的需求没有帮助。

标签: pythonbokehheatmap

解决方案


从 Bokeh 1.0.2 开始,这是可能的,但不容易做到。Bokeh 最近增加了对multi_polygons提供“带孔补丁”的新字形的支持。

p.multi_polygons(
    xs=[

        # first multi-polygon (blue)
        [[ [1, 1, 2, 2],
           [1.2, 1.6, 1.6],
           [1.8, 1.8, 1.6]], # sub-polygon with 2 holes

         [ [3, 3, 4] ], # sub-polygon with no holes

        # second multi-polygon (red)
        [[ [1, 2, 2, 1],
           [1.3, 1.3, 1.7, 1.7] ]], # sub-polygon with 1 hole
    ],
    ys=[
        [[ [4, 3, 3, 4], [3.2, 3.2, 3.6], [3.4, 3.8, 3.8] ], [ [1, 3, 1] ]],
        [[ [1, 1, 2, 2], [1.3, 1.7, 1.7, 1.3] ]]],
    color=['navy', 'crimson'])

在此处输入图像描述

这是能够渲染等高线图的必要先决条件,例如您在上面显示的那个。但是,Bokeh 没有任何用于计算等高线级别的内置功能,因此您必须以某种方式生成这些功能,或者使用其他轮廓功能的数值输出(例如,MPL 或 Seaborn 可能会为您提供原始轮廓数据),或者自己计算。


推荐阅读