强大的Jquery图形报表绘制插件 —— jqPlot
jqPlot是一款基于jquery类库的图标绘制插件。通过jqPlot可以再网页中绘制线状、柱状、饼状等多种样式图表。而且,jqPlot具有插件可扩展性(Pluggability),你可以编写自己的图表样式。jqPlot在之前有人介绍过了,这里我主要介绍它的一些用法和示例。
在jqPlot主页的自我介绍中有这样一句话:“jqPlot is a plotting plugin for the jQuery Javascript framework.”。这里我并不认同他所说的jquery是一个javascript框架,jquery只能说是一个javascript库(javascript library),相信在jquery主页也找不到javascript framework的字眼。
jqPlot功能简介:
- 有多种图表样式可供选择
- 可以自定义日期轴线
- 可设置旋转轴文字
- 自动计算趋势线
- 工具条提示和高亮数据点
- 默认最优设置,非常易于使用
以上功能在jqPlot主页中的示例页面有很多直观的展示。这里是它详细使用文档。
使用方法及示例:
- 下载jqPlot压缩包后(目前是0.70版本),可以看到以下主要文件:jquery-1.3.2.js,jquery1.3.2类库文件;jquery.jqplot.js,功能主文件;jquery.jqplot.css,图表样式文件;excanvas.js,针对ie浏览器的修正文件;test*.html,一些示例文件;plugins文件夹中放置jqplot的各种图表插件。
最简单的,可在中做如下引用:
<!--[if IE]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]--><script language="javascript" type="text/javascript" src="jquery-1.3.2.min.js"></script><script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script><link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />
- 在页面中定义一个div用于放置图表,在div中声明id及高度和宽度,如:
<div id="chartdiv" style="height:400px;width:300px; "></div>
- 创建一个最简单的x轴、y轴趋势线(使用默认设置及默认样式):
$.jqplot('chartdiv', [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]]);
其中chartdiv为预定义的div的id,第二个参数是图表数据,例如[1,2]用来表示图表中x轴为1,y轴为2的一个点。示例效果( 示例由jqPlot真实生成,非图片):
0.02.44.87.29.612.0-19.832.584.8137.1189.4241.7 - 配置主要参数,创建自定义x轴、y轴趋势线:
$.jqplot('chartdiv', [[[1, 2],[3,5.12],[5,13.1],[7,33.6],[9,85.9],[11,219.9]]],{ title:'Exponential Line', //图表表头标题 axes:{yaxis:{min:-10, max:240}}, //准确控制y轴最大值及最小值 series:[{color:'#5FAB78'}] //定义趋势线颜色});
Exponential Line0.02.44.87.29.612.0-10.040.090.0140.0190.0240.0 - 通过引用jqplot插件绘制柱状图,并设置更多参数:
引用插件:
<script language="javascript" type="text/javascript" src="./plugins/jqplot.categoryAxisRenderer.js"></script><script language="javascript" type="text/javascript" src="./plugins/jqplot.barRenderer.js"></script>
生成图表:
line1 = [4, 2, 9, 16]; //子统计1数据 line2 = [3, 7, 6.25, 3.125]; //子统计2数据 plot1 = $.jqplot('chart3', [line1, line2], { stackSeries: true, //子统计数据叠加显示 legend: {show: true, location: 'nw'}, title: 'Unit Sales: Acme Explosive Division', //标题 seriesDefaults: { renderer: $.jqplot.BarRenderer, //使用柱状图表示 rendererOptions: { // barPadding: -15, barMargin: 30 //柱状体间隔 }}, series: [{label: '1st Qtr'}, {label: '2nd Qtr'}], //提示工具栏 axes: { xaxis: { renderer: $.jqplot.CategoryAxisRenderer //x轴绘制方式 }, yaxis: {min: 0, max: 20, numberTicks:5} //y轴最大值最小值及间隔值 } });
Unit Sales: Acme Explosive Division12340.05.010.015.020.01st Qtr 2nd Qtr
上面展示的三个示例是jqPlot众多用法中最简单的几个,但想必已经可以感受到它强大易用的优点。更多的使用方法参考jqPlot主页提供的参考文档。使用时遇到问题也可以在下面提出,一起探讨。
评论

React 18的并发渲染确实是个重大改进,我们在项目中已经升级使用,性能提升明显!