pyecharts 返回框选的数据 demo
时间: 2023-12-10 10:09:08 浏览: 242
以下是一个使用 Pyecharts 实现框选并返回数据的简单示例:
```python
from pyecharts import options as opts
from pyecharts.charts import Line
from pyecharts.commons.utils import JsCode
# 构造数据
x_data = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
y_data = [820, 932, 901, 934, 1290, 1330, 1320]
# 构造图表
line_chart = Line()
# 添加 x 轴、y 轴数据
line_chart.add_xaxis(x_data)
line_chart.add_yaxis("", y_data)
# 设置全局配置项
line_chart.set_global_opts(
title_opts=opts.TitleOpts(title="演示框选功能"),
brush_opts=opts.BrushOpts(),
)
# 设置局部配置项
line_chart.set_series_opts(
label_opts=opts.LabelOpts(
is_show=False, position="top", color="white", font_size=16, font_weight="bold"
),
linestyle_opts=opts.LineStyleOpts(opacity=0.8, width=3),
)
# 定义回调函数
def on_brush_selected(params):
selected = params['selected']
if selected:
x_start = selected[0]['interval'][0]
x_end = selected[0]['interval'][1]
selected_data = [i for i in zip(x_data, y_data) if x_start <= i[0] <= x_end]
print(selected_data)
# 添加事件处理函数
line_chart.on(events.BrushSelected, on_brush_selected)
# 渲染图表
line_chart.render("brush-line-chart.html")
```
在上述代码中,通过创建一个 `Line` 类型的图表,然后通过 `add_xaxis` 和 `add_yaxis` 方法添加数据。接着,通过 `set_global_opts` 方法设置全局配置项,其中 `brush_opts` 参数开启了框选功能。然后,通过 `set_series_opts` 方法设置局部配置项,其中 `label_opts` 和 `linestyle_opts` 参数分别设置了折线的标签和样式。最后,定义了一个 `on_brush_selected` 回调函数来处理框选事件,并通过 `on` 方法将其绑定到 `BrushSelected` 事件上。在回调函数中,通过 `params` 参数获取框选的数据,然后根据此数据从原始数据中筛选出选中的数据,并将其打印输出。
阅读全文