直接跳到内容

DeckGL 可视化

Deck.gl 是一个功能强大的基于 WebGL 的框架,用于大型数据集的可视化探索性数据分析。PnDeckGL 组件可以渲染 Deck.gl JSON 规范以及 PyDeck 图表。如果数据被编码在 deck.gl 图层中,该组件将提取数据并通过二进制格式的 websocket 发送,加速渲染。

PyDeck 软件包提供 Python 绑定。请严格按照安装说明进行操作,以便在 Jupyter Notebook 中使用它。

底层实现为panel.pane.DeckGL,参数基本一致,参考文档:https://panel.holoviz.org/reference/panes/DeckGL.html

基本用法

要使用 Deck.gl,您需要一个 MAP BOX 密钥,可以在 mapbox.com 上免费获取(有限使用)。

现在我们可以定义一个 JSON 规范并将其与 Mapbox 密钥(如果有)一起传递给 DeckGL 组件:

如果您没有 Mapbox API 密钥,可以使用 Carto basemaps 之一。

与其他组件一样,DeckGL 对象可以被替换或更新。在此示例中,我们将更改 HexagonLayer 的 colorRange 然后触发更新:

工具提示

默认情况下,可以通过设置 tooltips=True/False 禁用和启用工具提示。为了更多的自定义,可以传入定义格式的字典。让我们首先声明具有两个图层的图:

PyDeck

除了编写原始的类 JSON 字典外,PnDeckGL 组件还可以接收 PyDeck 对象进行渲染:

注意,使用 pydeck 指定工具提示时,还必须使用 {properties.<DATA_FIELD_NAME>} 语法引用任何数据字段。

API

属性

属性名说明类型默认值
object要显示的 deck.GL JSON 或 PyDeck 对象object, dict, string None
mapbox_api_key如果 PyDeck 对象未提供,则为 MapBox API 密钥string None
tooltips是否启用工具提示或自定义工具提示格式化程序bool, dict True
throttle视图状态和悬停事件的节流超时(以毫秒为单位)dict 
click_state包含 DeckGL 图上最后一次点击事件的信息dict {}
hover_state包含有关 DeckGL 图上当前悬停位置的信息dict {}
view_state包含有关 DeckGL 图当前视口的信息dict {}
sizing_mode尺寸调整模式str 'fixed'
width宽度int, str None
height高度int, str None

Slots

插槽名说明
default自定义默认内容

Controls

src/examples/panel_vuepy/panes/DeckGL

DeckGL 可视化已经加载完毕