直接跳到内容

ECharts 图表

PnECharts 组件在 Panel 中渲染 Apache EChartspyecharts 图表。请注意,要在 notebook 中使用 PnECharts 组件,必须以 'echarts' 作为参数加载 Panel 扩展,以确保初始化 echarts.js。

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

基本用法

让我们尝试 PnECharts 组件对 ECharts 规范的原始形式(即字典)的支持,例如,这里我们声明一个柱状图:

与所有其他组件一样,PnECharts 组件的 object 可以更新,要么是就地更新并触发更新:

ECharts 规范也可以通过声明宽度或高度以匹配容器来进行响应式调整大小:

PyECharts 支持

ECharts 组件还支持 pyecharts。例如,我们可以直接将 pyecharts.charts.Bar 图表传递给 PnECharts 组件:

仪表盘示例

ECharts 库支持各种图表类型,由于图表使用 JSON 数据结构表示,我们可以轻松更新数据,然后发出更改事件以更新图表:

事件处理

PnECharts 组件允许您监听 JavaScript API 中定义的任何事件,方法是使用 on_event 方法在 Python 中监听事件,或者使用 js_on_event 方法触发 JavaScript 回调。

有关可以监听的事件的详细信息,请参阅 ECharts 事件文档

Python 事件处理

让我们从一个简单的点击事件开始,我们想从 Python 监听这个事件。要添加事件监听器,只需使用事件类型(在本例中为 'click')和 Python 处理程序调用 on_event 方法:

尝试单击折线上的点。点击后检查 event_data.value 时,您应该看到类似以下内容的数据。

要限制特定事件适用的对象类型,还可以向 on_event 方法提供 query 参数。query 的格式应该是 mainTypemainType.subType,例如:

  • 'series':单击数据系列时触发事件
  • 'series.line':仅当单击折线数据系列时才触发事件
  • 'dataZoom':单击缩放时触发事件
  • 'xAxis.category':单击 x 轴上的类别时触发事件

JavaScript 事件处理

相同的概念适用于 JavaScript,但这里我们传入 JavaScript 代码片段。命名空间允许您访问事件数据 cb_data 和 ECharts 图表本身作为 cb_obj。这样,您可以访问事件并自己操作图表:

API

属性

属性名说明类型默认值
object以 Python 字典表示的 ECharts 图表规范,然后转换为 JSON。或者是像 pyecharts.charts.Bar 这样的 pyecharts 图表。dict, object None
options传递给 Echarts.setOption 的可选字典选项。允许微调渲染行为。dict None
renderer是否使用 HTML 'canvas'(默认)或 'svg' 渲染str 'canvas'
theme应用于图表的主题('default'、'dark'、'light' 之一)str 'default'
sizing_mode尺寸调整模式str 'fixed'
width宽度int, str None
height高度int, str None
min_width最小宽度int None
min_height最小高度int None
max_width最大宽度int None
max_height最大高度int None

Events

事件名说明类型
click当元素被点击时触发的事件Callable 
jsclick当元素被点击时触发的js事件Callable 

Slots

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

方法

属性名说明类型
on_event添加事件监听器function  (event_type: str, callback: Callable, query: str = None) -> None
js_on_event添加 JavaScript 事件监听器function  (event_type: str, code: str, **args) -> None

Controls

src/examples/panel_vuepy/panes/ECharts

ECharts 图表已经加载完毕