项目正在快速迭代中,API 与视觉细节可能随版本调整,请勿用于生产环境。

交互与联动 ​

EvChart 的交互能力开箱即用:图例点选、tooltip、dataZoom 缩放、框选、多图联动、工具导出。绝大多数能力只在 options 里开字段,进阶控制走实例方法与事件。全部交互行为遵循一套统一规范:悬浮即时无动画、焦点淡化单一档位、光标语义分级。

统一手势约定 ​

  • Esc:随时清除悬浮、tooltip 与框选拖拽(随之派发 unhover);
  • 双击:重置缩放窗口到全量(未开启 dataZoom 时无操作);
  • 光标:绘图区十字(crosshair)、图例与工具箱手型(pointer)、缩放滑块抓取(grab / 拖拽中 grabbing)。

键盘巡历 ​

图表容器可聚焦(空态与错误态除外,聚焦有贴内缘焦点环),直角系类目图支持键盘巡历:

  • ← / →(横向条形图为 ↑ / ↓):在类目间步进悬浮,准线、tooltip 与读屏播报(aria-live)与指针悬浮走同一通道;
  • Home / End:跳到第一个 / 最后一个类目;
  • Enter / Space:在巡历落点触发数据点 click(与指针点击同一事件载荷);
  • Esc:清除键盘或指针产生的悬浮态。

图例:点选显隐与悬浮强调 ​

多系列图表自动出现图例。legend.interactive 控制点选显隐(默认开启),position 支持 top / bottom,hoverEmphasis 控制悬浮时强调对应系列。

tooltip:悬浮提示 ​

tooltip 控制 hover 提示框:trigger 支持 hover(默认)/ click,showAllSeries 让十字对齐的所有系列同时展示(默认行为),formatter 自定义文案。关闭则只看图形本身。

js
options.tooltip = {
  show: true,          // 默认开启
  trigger: 'hover',    // hover / click
  showAllSeries: true, // 展示对齐的所有系列
  formatter: (rows) => rows.map((r) => `${r.name}:${r.value}`).join('\n'),
}

dataZoom:大数据量缩放 ​

类目多、曲线密时开启 dataZoom:position 支持 bottom / top,start / end 设初始窗口(百分比),mouseWheel 开启滚轮缩放(以光标为锚点,双击复位)。拖动窗口或滚轮即可聚焦数据段。

框选 ​

在直角坐标系图表上按住拖动可以框选一段数据,松开后触发 brush-select 事件(返回 startIndex / endIndex),适合做"圈选一段再钻取"的交互。

多图联动 connectGroup ​

给多张图相同的 connectGroup 分组名,图例显隐与缩放范围自动同步——运营看板里"点一次图例,上下两张图一起切"就是它。

工具箱 toolbox ​

toolbox: { show: true, filename } 在图表右上角提供导出 PNG 与恢复复位按钮,做报表导出场景够用;更精细的导出走实例方法 toDataURL / exportSVG。

事件 ​

事件触发时机回调参数
ready首次渲染完成—
click点击图形元素{ seriesName, name, value, color, dataIndex, seriesIndex }
hover / unhover悬浮进入 / 离开图形元素同上
legend-click点击图例切换显隐(name, hidden)
zoomdataZoom 范围变化{ start, end }
brush-select框选完成{ startIndex, endIndex }
animation-end / data-update动画结束 / 数据补间更新完成—
scene-changescenes 分幕推进{ index, total }

点击事件可以做钻取:点击柱子跳转到对应明细页,是中后台图表最常见的进阶用法。

常用实例方法 ​

通过组件 ref 调用,完整列表见 API 参考:

方法用途
update(newOptions)增量合并配置并重绘(同结构数据自动补间)
toggleSeries(name) / getHiddenSeries()程序化切换系列显隐
highlightSeries(name) / clearHighlight()高亮某系列(跨图引导注意力)
setDataZoomRange(start, end)程序化缩放(配合 zoom 事件做播放器)
toDataURL() / exportSVG()导出位图 / 真矢量 SVG
setTheme(theme)运行时切换主题
destroy()销毁实例与监听