JavaScript图表工具FusionCharts Suite XT入门教程(九):使用API??切片数据图
FusionCharts Suite XT是全面的跨平台、跨浏览器JavaScript图表套包,其中包括FusionCharts XT、PowerCharts XT 、FusionWidgets XT 、FusionMaps XT。支持 ASP、 ASP.NET、 PHP、 JSP、 ColdFusion、 Ruby on Rails、 JavaScript、甚至简单的HTML页面。它是你值得信赖的JavaScript图表解决方案,目前在全球有45万用户选择Fusioncharts来制作专业的JavaScript图表。
JavaScript图表工具,为什么选择FusionCharts?点击了解!
点击下载FusionCharts Suite XT最新试用版
使用API切片数据图
FusionCharts Suite XT包含高级功能,可提供多种API,可在图表的ife周期的不同阶段或与图表进行交互时使用。这些功能包括完成图表渲染,在运行时处理单选按钮等。
本文重点介绍如何使用特定于图表的自定义API切片Pie 2D图表的数据图。
pie2d如下所示,配置为切出图表数据图的图表:

上面示例的完整代码如下:
import React, {Component} from 'react';import ReactDOM from 'react-dom';import FusionCharts from 'fusioncharts';import Charts from 'fusioncharts/fusioncharts.charts';import ReactFC from 'react-fusioncharts';import FusionTheme from 'fusioncharts/themes/fusioncharts.theme.fusion';ReactFC.fcRoot(FusionCharts, Charts, FusionTheme);const chartConfigs = {
type: 'Pie2D',
width: 450,
height: 250,
dataFormat: 'json',
dataSource: {
"chart": {
"caption": "Market Share of Web Servers",
"plottooltext": "<b>$percentValue</b> of web servers run on $label servers",
"showPercentValues": "1",
"useDataPlotColorForLabels": "1",
"enableMultiSlicing": "0",
"theme": "fusion"
},
"data": [{
"label": "Apache",
"value": "32647479"
}, {
"label": "Microsoft",
"value": "22100932"
}, {
"label": "Zeus",
"value": "14376"
}, {
"label": "Other",
"value": "18674221"
}]
}};class Chart extends Component {
constructor(props) {
super(props);
this.state = {
chart: {},
currentVal: 'none'
}
this.renderComplete = this.renderComplete.bind(this);
this.radioHandler = this.radioHandler.bind(this);
this.sliceClicked = this.sliceClicked.bind(this);
}
renderComplete(chart) {
this.setState({
chart
});
}
// Handler for radio buttons to slice data plot.
radioHandler(e) {
if (e.currentTarget.value === 'none') {
this.state.chart.options.dataSource.data.map((data, index) => {
this.state.chart.slicePlotItem(index, false);
});
} else {
this.state.chart.slicePlotItem(e.currentTarget.value, true);
}
this.setState({
currentVal: e.currentTarget.value });
}
// Event callback for 'dataplotClick'.
// Makes the relevant radio active when a plot is clicked.
sliceClicked(eventObj, dataObj) {
this.setState({
currentVal: eventObj.data.isSliced ? 'none' : eventObj.data.dataIndex });
}
render() {
return (
<div>
<ReactFC {...chartConfigs}
onRender={this.renderComplete}
fcEvent-dataplotClick={this.sliceClicked}
/>
<br />
<center>
<span>Slice out:</span>
<div className="change-type">
<div>
<input
type="radio"
value="none"
onChange={this.radioHandler}
checked={this.state.currentVal === 'none'}
/>
<label>None</label>
</div>
<div>
<input
type="radio"
value="0"
onChange={this.radioHandler}
checked={parseInt(this.state.currentVal) === 0}
/>
<label>Apache</label>
</div>
<div>
<input
type="radio"
value="1"
onChange={this.radioHandler}
checked={parseInt(this.state.currentVal) === 1}
/>
<label>Microsoft</label>
</div>
<div>
<input
type="radio"
value="2"
onChange={this.radioHandler}
checked={parseInt(this.state.currentVal) === 2}
/>
<label>Zeus</label>
</div>
<div>
<input
type="radio"
value="3"
onChange={this.radioHandler}
checked={parseInt(this.state.currentVal) === 3}
/>
<label>Other</label>
</div>
</div>
</center>
</div>
)
}}ReactDOM.render(
<Chart / > ,
document.getElementById('root'),);上图通过以下步骤呈现:
使用包括必要的库和组件import。例如fusioncharts图书馆等
将图表和主题添加为依赖项。
将图表配置存储在JSON对象中。在JSON对象中:
将图表类型设置为pie2d。
设置图表的宽度和高度(以像素为单位)。
将设置dataFormat为JSON。
将json数据嵌入为的值dataSource。
beforeRender 调用事件以切片图表的数据图。
在中创建单选按钮,<div>以选择要切出的数据图。
功能已添加到单选按钮,以在运行时更新图表类型。
想要了解或购买FusionCharts Suite XT正版授权的朋友欢迎咨询
关注“慧聚IT”微信公众号,及时获取产品最新消息和最新资讯



QQ交谈
在线咨询

渝公网安备
50010702500608号

客服热线