mcpField
S
syncfusion-react-charts

syncfusion-react-charts

github.com/syncfusion开发3757 次安装6 天前更新
代码仓库

关于 syncfusion-react-charts

这是一份使用 Syncfusion React Charts 创建数据可视化的技能指南,涵盖图表配置、数据绑定、交互,以及供 AI Agent 检查和操作图表的 WebMCP 工具。

主要功能

  1. 0120 多种图表类型
  2. 02多种坐标轴类型与配置
  3. 03本地和远程数据绑定
  4. 04缩放、平移、选择与提示框
  5. 05WebMCP 工具与执行控制

适用场景

  1. 01创建销售和分析仪表板
  2. 02比较多个数据系列
  3. 03可视化金融或时间序列数据
  4. 04通过实时数据点更新图表

MCP 相关

指南介绍 WebMCP 集成,可向浏览器模型上下文和 AI Agent 暴露图表工具。工具注册可使用允许列表限制,执行过程也可接受验证或取消。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/react-ui-components-skills --skill syncfusion-react-charts

安装后在 Claude Code 中输入/syncfusion-react-charts确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
advanced-features.md
api-reference.md
appearance-and-styling.md
axes-and-customization.md
chart-types.md
getting-started.md
series-and-data.md
user-interaction.md
webmcp.md

详细介绍

实现 Syncfusion React 图表

何时使用此技能

在以下情况下使用此技能:

  • 创建和渲染图表(面积图、条形图、柱形图、折线图、散点图等)
  • 配置图表坐标轴并自定义其外观
  • 绑定本地数据、远程数据(DataManager),或使用 OData/WebAPI/自定义适配器
  • 动态添加、删除或替换数据点(addPoint、removePoint、setData)
  • 自定义图表外观(颜色、标签、图例、注释)
  • 配置数据标签(必须放在 marker.dataLabel 中,而非直接放在系列上)
  • 实现用户交互(选择、缩放、工具提示)
  • 启用 WebMCP,以便浏览器模型上下文和 AI Agent 检查并操作已渲染的图表
  • 添加金融指标和技术分析功能
  • 处理无障碍访问和国际化
  • 排查图表渲染或数据问题

组件概述

Syncfusion React Chart 是一款功能强大的数据可视化组件,支持 20 多种图表类型,并提供丰富的自定义选项。它专为构建专业仪表板、报表和分析应用而设计,支持缩放、选择和工具提示等交互功能。

主要功能:

  • 20 多种图表类型(笛卡尔坐标系、极坐标系、雷达图、饼图、圆环图等)
  • 多种坐标轴(类别、数值、日期时间、对数)
  • 金融指标和蜡烛图
  • 高级交互(缩放、平移、十字准线、工具提示)
  • 响应式设计和无障碍访问支持
  • 打印和导出功能
  • WebMCP 集成,支持自动注册工具、所选工具允许列表、执行控制和 AI Agent 访问

文档和导航指南

API 参考

📄 阅读: references/api-reference.md

  • 完整的 ChartComponent 属性参考
  • 所有方法和事件的文档
  • SeriesDirective 属性
  • 模型接口(AxisModel、ZoomSettingsModel 等)
  • 模块服务(系列类型、功能、指标)
  • 官方 API 文档链接
入门

📄 阅读: references/getting-started.md

  • 安装和软件包设置
  • 创建第一个图表
  • CSS 导入和主题配置
  • 基本图表示例的渲染
  • 软件包结构概述
图表类型

📄 阅读: references/chart-types.md

  • 20 多种受支持图表类型的概述
  • 各种图表类型的适用场景
  • 常见类型(折线图、条形图、柱形图、面积图、散点图)的基本示例
  • 特定类型的配置
  • 为数据选择合适的图表
坐标轴和自定义

📄 阅读: references/axes-and-customization.md

  • 类别、数值、日期时间和对数坐标轴
  • 坐标轴标签和格式
  • 多坐标轴配置
  • 范围和间隔设置
  • 坐标轴交叉和定位
系列和数据绑定

📄 阅读: references/series-and-data.md

  • 系列配置和属性
  • 本地数据绑定模式
  • 使用 DataManager 绑定远程数据
  • 数据适配器:ODataAdaptor、ODataV4Adaptor、WebApiAdaptor、自定义适配器
  • 离线模式和延迟加载
  • 通过 addPoint、removePoint、setData 或 React 状态动态更新数据
  • 多系列处理
  • 数据验证和边缘情况
外观和样式

📄 阅读: references/appearance-and-styling.md

  • 图例配置和定位
  • 数据标签和格式
  • 图表注释
  • 渐变和颜色自定义
  • 标题、副标题和说明的样式设置
用户交互

📄 阅读: references/user-interaction.md

  • 选择和高亮
  • 缩放和平移
  • 工具提示和十字准线配置
  • 同步图表
  • 事件处理模式
WebMCP 与 AI Agent 集成

📄 阅读:references/webmcp.md

  • 生成完整的 React Chart WebMCP 示例
  • 导入并注入 WebMcpChart
  • 设置 enableWebMcp={true} 并使用稳定的 ChartComponent ID
  • 配置 webMcpSettings.name、tools 和 exposedTo
  • 自动注册所有内置工具,或使用经过验证的工具名称允许列表限制注册范围
  • 仅将 getWebMcpTools() 用于诊断、测试或直接执行
  • 使用 beforeWebMcpToolExecute 进行验证、取消或控制确认
  • 保留 WebMCP 参考示例中定义的模块注入列表
  • 不要生成手动注册按钮,也不要调用 registerWebMcpTools()
  • 根据经过验证的内置工具列表验证生成的工具名称
高级功能

📄 阅读:references/advanced-features.md

  • 金融图表类型(蜡烛图、HLOC、最高价-最低价图)
  • 技术指标(移动平均线、趋势线等)
  • 多个窗格和指标窗格
  • 无障碍功能(符合 WCAG 标准、键盘导航)
  • 国际化和本地化

快速入门示例

import { ChartComponent, SeriesCollectionDirective, SeriesDirective, Inject, LineSeries, Category, Legend, Tooltip } from '@syncfusion/ej2-react-charts';

export default function BasicChart() {
  const data = [
    { x: 'Jan', y: 35 },
    { x: 'Feb', y: 28 },
    { x: 'Mar', y: 34 },
    { x: 'Apr', y: 32 },
    { x: 'May', y: 40 }
  ];

  return (
    <ChartComponent id='charts'>
      <Inject services={[LineSeries, Category, Legend, Tooltip]} />
      <SeriesCollectionDirective>
        <SeriesDirective dataSource={data} xName='x' yName='y' type='Line' />
      </SeriesCollectionDirective>
    </ChartComponent>
  );
}

常见模式

模式 1:多系列图表

显示共享相同坐标轴的多个数据集时,在 SeriesCollectionDirective 中添加多个 SeriesDirective 组件:

<SeriesCollectionDirective>
  <SeriesDirective dataSource={salesData} xName='month' yName='revenue' type='Column' />
  <SeriesDirective dataSource={profitData} xName='month' yName='profit' type='Column' />
</SeriesCollectionDirective>
模式 2:动态更新数据

根据使用场景选择以下三种方法:

a) React 状态(简单重新渲染):

const [data, setData] = useState(initialData);

const handleDataUpdate = () => {
  setData(prev => [...prev, { x: 'Jun', y: 45 }]);
};

<SeriesDirective dataSource={data} xName='x' yName='y' type='Line' />

b) addPoint / removePoint / setData(命令式操作,带动画):

const chartRef = useRef(null);

// Add a point
chartRef.current.series[0].addPoint({ x: 'Jun', y: 45 }, 300);

// Remove first point
chartRef.current.series[0].removePoint(0, 300);

// Replace all data
chartRef.current.series[0].setData(newDataArray, 500);

<ChartComponent ref={chartRef} ...>
  <SeriesDirective dataSource={data} xName='x' yName='y' type='Line' />
</ChartComponent>
模式 3:远程数据绑定

使用 DataManager 和适配器,从 REST API 或 OData 服务绑定数据:

import { DataManager, Query, WebApiAdaptor } from '@syncfusion/ej2-data';

const dataManager = new DataManager({
  url: 'your data source URL link',
  adaptor: new WebApiAdaptor()
});

<SeriesDirective dataSource={dataManager} xName='CustomerID' yName='Freight' type='Column' query={new Query()} />

其他适配器:ODataAdaptor(OData v3)、ODataV4Adaptor(OData v4),以及通过扩展 ODataAdaptor 创建的自定义适配器。

模式 4:数据标签(位于标记内)

数据标签必须放置在 marker.dataLabel 中,而不能直接放在系列上。注入 DataLabel 服务:

<Inject services={[LineSeries, Category, DataLabel]} />

<SeriesDirective
  dataSource={data}
  xName='x'
  yName='y'
  type='Line'
  marker={{
    visible: true,
    dataLabel: { visible: true, position: 'Top' }
  }}
/>
模式 5:自定义工具提示

使用格式化的工具提示模板提升用户体验:

<ChartComponent tooltip={{ enable: true, template: '<div>${point.x}: ${point.y}</div>' }}>
模式 6:响应式设计

使用容器样式使图表具有响应性:

<ChartComponent id='charts' width='100%' height='400px'>
  {/* chart content */}
</ChartComponent>

关键属性参考

ChartComponent
属性类型用途使用场景
idstring唯一标识符每个图表都必须设置
widthstring图表宽度(px 或 %)控制布局尺寸
heightstring图表高度设置明确的尺寸
titlestring图表标题显示主标题
tooltipobject工具提示配置交互式检查数据
primaryXAxisobject主 X 轴配置定义水平轴
primaryYAxisobject主 Y 轴配置定义垂直轴
SeriesDirective
属性类型用途使用场景
dataSourcearray | DataManager数据源绑定本地数组或远程 DataManager
xNamestringX 轴属性将数据字段映射到 X 轴
yNamestringY 轴属性将数据字段映射到 Y 轴
typestring图表类型选择可视化类型
fillstring系列颜色自定义系列颜色
markerobject标记和数据标签配置显示数据点标记和/或数据标签(marker.dataLabel)
namestring系列名称在图例中显示
queryQueryDataManager 查询筛选、排序或分页远程数据

常见用例

  1. 销售仪表板:结合使用收入柱形图和趋势折线图
  2. 时间序列分析:对时间数据使用日期时间轴和折线图
  3. 对比分析:使用多系列柱形图比较不同类别
  4. 财务分析:使用带移动平均指标的蜡烛图
  5. 分布分析:使用直方图或箱线图展示统计数据
  6. 实时监控:使用 addPoint/removePoint 配合平滑动画处理实时数据流
  7. REST API 远程数据:将 DataManager 与 WebApiAdaptor 或 ODataAdaptor 直接绑定到系列
  8. 服务端 OData:将 ODataV4Adaptor 与 Query 搭配使用,在服务端进行筛选和分页

后续步骤

选择符合当前需求的参考资料:

外部资源

评论

支持 Markdown