FusionCharts 教程:从零开始创建你的第一个交互式图表
什么是 FusionCharts?
FusionCharts 是一个功能强大、跨平台、响应式的 JavaScript 图表库,它可以帮助你在网页和移动应用中轻松创建超过 100 种 2D 和 3D 图表,包括常见的柱状图、折线图、饼图,以及复杂的组合图、热力图、漏斗图等。

核心特点:
- 图表类型丰富:满足几乎所有数据可视化需求。
- 易于集成:支持所有主流前端框架(原生 JavaScript, React, Angular, Vue)。
- 高度可定制:从颜色、字体到动画效果,几乎所有外观都可以自定义。
- 响应式设计:图表能自动适应不同屏幕尺寸。
- 强大的交互性:支持悬停提示、点击事件、缩放、平移等。
- 可靠的数据驱动:支持 JSON 和 XML 数据格式。
快速入门:创建你的第一个图表(原生 JS)
这是最基础、最核心的步骤,理解了它,再学习其他框架就非常容易。
第 1 步:准备工作
-
获取 FusionCharts
- 下载:你可以从 FusionCharts 官网 下载免费版或商业版。
- CDN 引入(推荐,最简单):直接在 HTML 中通过
<script>标签引入,免费版通过 CDN 使用会有 "FusionCharts Watermark" 水印。
<!-- 引入 FusionCharts 核心文件 --> <script src="https://cdn.fusioncharts.com/fusioncharts/latest/fusioncharts.js"></script> <!-- 引入所需图表的主题文件,这里以 Zune 为例 --> <script src="https://cdn.fusioncharts.com/fusioncharts/latest/themes/fusioncharts.theme.zune.js"></script>
第 2 步:准备一个容器
在 HTML 中创建一个 <div> 元素,作为图表的“画布”,必须给它一个 id。

<!-- 图表容器 --> <div id="chart-container">图表正在加载中...</div>
第 3 步:准备数据
FusionCharts 使用 JSON 格式的数据,你需要定义图表的数据源,包括图表的标题、X轴/Y轴的标签以及具体的数据点。
const dataSource = {
// 1. 图表配置
chart: {
caption: "2025年季度销售数据",
xAxisName: "季度",
yAxisName: "销售额 (万元)",
theme: "zune" // 使用 Zune 主题
},
// 2. 数据
data: [
{ label: "Q1", value: "12500" },
{ label: "Q2", value: "15200" },
{ label: "Q3", value: "14800" },
{ label: "Q4", value: "18900" }
]
};
chart对象:包含所有图表级别的配置,如标题、坐标轴名称、主题等。data数组:包含所有数据点,每个数据点是一个对象,label是标签(如Q1),value是数值(字符串格式更佳)。
第 4 步:初始化并渲染图表
这是最后一步,用 JavaScript 将数据绑定到容器中,并创建图表实例。
// 1. 初始化 FusionCharts
// 参数:图表类型, 图表ID, 宽度, 高度, 容器ID
const chartInstance = new FusionCharts({
type: 'column2d', // 指定图表类型为2D柱状图
id: 'my-first-chart', // 给图表一个唯一的ID
width: '600', // 宽度
height: '400', // 高度
renderAt: 'chart-container', // 绑定到之前创建的容器
dataFormat: 'json', // 指定数据格式为JSON
dataSource: dataSource // 传入准备好的数据
});
// 2. 渲染图表
chartInstance.render();
完整代码示例
将以上所有代码组合在一起,就是一个完整的 HTML 页面。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">FusionCharts 教程 - 第一个图表</title>
<!-- 1. 引入 FusionCharts 核心文件和主题 -->
<script src="https://cdn.fusioncharts.com/fusioncharts/latest/fusioncharts.js"></script>
<script src="https://cdn.fusioncharts.com/fusioncharts/latest/themes/fusioncharts.theme.zune.js"></script>
</head>
<body>
<!-- 2. 创建图表容器 -->
<h1>我的第一个 FusionCharts 图表</h1>
<div id="chart-container">图表正在加载中...</div>
<script>
// 3. 准备数据
const dataSource = {
chart: {
caption: "2025年季度销售数据",
xAxisName: "季度",
yAxisName: "销售额 (万元)",
theme: "zune"
},
data: [
{ label: "Q1", value: "12500" },
{ label: "Q2", value: "15200" },
{ label: "Q3", value: "14800" },
{ label: "Q4", value: "18900" }
]
};
// 4. 初始化并渲染图表
FusionCharts.ready(function() {
const chartInstance = new FusionCharts({
type: 'column2d',
id: 'my-first-chart',
width: '600',
height: '400',
renderAt: 'chart-container',
dataFormat: 'json',
dataSource: dataSource
});
chartInstance.render();
});
</script>
</body>
</html>
将这段代码保存为 .html 文件,用浏览器打开,你就能看到一个漂亮的柱状图了!

常用图表类型
改变 type 参数即可创建不同类型的图表。
| 图表类型 | type 值 |
描述 |
|---|---|---|
| 柱状图 | column2d, column3d |
用于比较不同类别的数据。 |
| 条形图 | bar2d, bar3d |
柱状图的横向版本。 |
| 折线图 | line, area |
显示数据随时间或有序类别的变化趋势。 |
| 饼图 | pie2d, pie3d |
显示与整体相关的部分数据,占比较为重要。 |
| 组合图 | mscombi2d, mscombi3d |
结合两种或多种图表类型(如柱状图+折线图)。 |
| 仪表盘 | angulargauge, bulb |
显示单个值在某个范围内的状态。 |
| 地图 | maps/{country-code} |
如 maps/usa, maps/china。 |
核心概念与高级配置
主题
主题是一套预定义的样式(颜色、字体、边框等),能让你的图表在瞬间变得专业美观,FusionCharts 提供了多个内置主题,如 zune, goblue, fint 等。
- 如何使用:在
chart配置中设置theme属性。chart: { theme: "zune" }
事件处理
你可以为图表的各种交互行为(如点击、悬停)绑定 JavaScript 函数。
-
常用事件:
beforeRender: 图表渲染前触发。renderComplete: 图表渲染完成后触发。dataPlotClick: 数据点被点击时触发。entityMouseOver: 鼠标悬停在图表元素上时触发。
-
示例:为数据点添加点击事件
// 在初始化图表时添加事件配置 const chartConfig = { type: 'column2d', // ... 其他配置 events: { dataPlotClick: function(event, args) { // args.dataCategory 是标签 (如 Q1) // args.dataValue 是数值 (如 12500) alert(`你点击了 ${args.dataCategory},销售额为 ${args.dataValue} 万元!`); } } };
动态更新数据
你可以随时更新图表的数据,而不需要重新创建整个图表实例。
// 假设 chartInstance 已经创建
// 1. 准备新的数据
const newDataSource = {
chart: {
// ... 图表配置可以保持不变或更新
},
data: [
{ label: "Q1", value: "13500" },
{ label: "Q2", value: "16200" },
{ label: "Q3", value: "15800" },
{ label: "Q4", value: "19900" }
]
};
// 2. 使用 FusionCharts 的 updateData 方法更新
chartInstance.setChartData(newDataSource);
在现代前端框架中使用
原理和原生 JS 一样,只是将数据准备和图表渲染的过程“框架化”。
React
使用官方提供的 react-fusioncharts 组件库。
-
安装:
npm install react-fusioncharts fusioncharts
-
使用:
import React from 'react'; import FusionCharts from 'fusioncharts'; import Charts from 'fusioncharts/fusioncharts.charts'; // 引入图表模块 import ReactFC from 'react-fusioncharts'; import ZuneTheme from 'fusioncharts/themes/fusioncharts.theme.zune'; // 引入主题 // 注册图表和主题 Charts(FusionCharts); FusionCharts.theme = ZuneTheme; // 数据 const dataSource = { /* ... 和之前一样 ... */ }; function MyChartComponent() { return <ReactFC type="column2d" width="600" height="400" dataFormat="json" dataSource={dataSource} />; } export default MyChartComponent;
Vue
使用官方提供的 vue-fusioncharts 组件库。
-
安装:
npm install vue-fusioncharts fusioncharts
-
使用:
<template> <div> <fusioncharts :type="type" :width="width" :height="height" :dataformat="dataFormat" :dataSource="dataSource" /> </div> </template> <script> import Vue from 'vue'; import FusionCharts from 'fusioncharts'; import Charts from 'fusioncharts/fusioncharts.charts'; import VueFusionCharts from 'vue-fusioncharts'; import ZuneTheme from 'fusioncharts/themes/fusioncharts.theme.zune'; // 注册 Charts(FusionCharts); FusionCharts.theme = ZuneTheme; Vue.use(VueFusionCharts); export default { data() { return { type: 'column2d', width: '600', height: '400', dataFormat: 'json', dataSource: { /* ... 和之前一样 ... */ } }; } }; </script>
Angular
使用官方提供的 angular-fusioncharts 组件库。
-
安装:
npm install angular-fusioncharts fusioncharts
-
使用: 在你的 Angular 组件中:
import { Component } from '@angular/core'; import FusionCharts from 'fusioncharts'; import Charts from 'fusioncharts/fusioncharts.charts'; import ZuneTheme from 'fusioncharts/themes/fusioncharts.theme.zune'; // 在组件外部或 constructor 内部注册 Charts(FusionCharts); FusionCharts.theme = ZuneTheme; @Component({ selector: 'app-my-chart', template: `<fusioncharts [type]="type" [width]="width" [height]="height" [dataFormat]="dataFormat" [dataSource]="dataSource"></fusioncharts>` }) export class MyChartComponent { type = 'column2d'; width = '600'; height = '400'; dataFormat = 'json'; dataSource = { /* ... 和之前一样 ... */ }; }
官方资源与学习路径
- FusionCharts 官方文档:
- https://www.fusioncharts.com/dev/:这是最重要的资源,包含了所有 API 参考、属性列表、示例代码和教程。
- FusionCharts Playground:
- https://playground.fusioncharts.com/:一个在线代码编辑器,你可以直接在这里编写和测试图表代码,非常方便学习和调试。
- 示例中心:
- https://www.fusioncharts.com/explore/:浏览各种图表类型的实际应用示例,获取灵感。
学习 FusionCharts 的路径可以概括为:
- 入门:掌握原生 JS 的四步法(引入、容器、数据、渲染)。
- 实践:尝试更换图表类型、修改数据和配置项,熟悉各种图表。
- 进阶:学习使用事件处理、动态更新数据和高级配置,让图表“活”起来。
- 集成:将所学应用到你的前端项目(React/Vue/Angular)中。
- 探索:善用官方文档和 Playground,不断挖掘更高级的功能。
希望这份教程能帮助你顺利开启 FusionCharts 的数据可视化之旅!
