jqPlot主要仰賴jQuery來實現功能,算是一個蠻好上手的js套件
可以看一下API在開始下手
先從官方範例的程式碼研究,以下是第一個範例程式碼
$(document).ready(function(){ var plot1 = $.jqplot ('chart1', [[3,7,9,1,4,6,8,2,5]]); });
我們先看一下jplot constructor
- 對象
- 資料
- 選項
再回去看上面的程式碼,就可以知道我們的目標是『chart1』,資料為[3,7,9,1,4,6,8,2,5],結果如下:
在看第二個範例程式碼
$(document).ready(function(){ var plot2 = $.jqplot ('chart2', [[3,7,9,1,4,6,8,2,5]], { // Give the plot a title. title: 'Plot With Options', // You can specify options for all axes on the plot at once with // the axesDefaults object. Here, we're using a canvas renderer // to draw the axis label which allows rotated text. axesDefaults: { labelRenderer: $.jqplot.CanvasAxisLabelRenderer }, // An axes object holds options for all axes. // Allowable axes are xaxis, x2axis, yaxis, y2axis, y3axis, ... // Up to 9 y axes are supported. axes: { // options for each axis are specified in seperate option objects. xaxis: { label: "X Axis", // Turn off "padding". This will allow data point to lie on the // edges of the grid. Default padding is 1.2 and will keep all // points inside the bounds of the grid. pad: 0 }, yaxis: { label: "Y Axis" } } }); });
將目標是『chart2』,資料為[[3,7,9,1,4,6,8,2,5]]
設定標題以及X與Y軸的標籤,並將間距設定為0,預設值為1.2,結果如下
比較一下上面X間距是0,而下面X間距是4
第三個範例程式碼如下:
$(document).ready(function(){ // Some simple loops to build up data arrays. var cosPoints = []; for (var i=0; i<2*Math.PI; i+=0.4){ cosPoints.push([i, Math.cos(i)]); } var sinPoints = []; for (var i=0; i<2*Math.PI; i+=0.4){ sinPoints.push([i, 2*Math.sin(i-.8)]); } var powPoints1 = []; for (var i=0; i<2*Math.PI; i+=0.4) { powPoints1.push([i, 2.5 + Math.pow(i/4, 2)]); } var powPoints2 = []; for (var i=0; i<2*Math.PI; i+=0.4) { powPoints2.push([i, -2.5 - Math.pow(i/4, 2)]); } var plot3 = $.jqplot('chart3', [cosPoints, sinPoints, powPoints1, powPoints2], { title:'Line Style Options', // Series options are specified as an array of objects, one object // for each series. series:[ { // Change our line width and use a diamond shaped marker. lineWidth:2, markerOptions: { style:'dimaond' } }, { // Don't show a line, just show markers. // Make the markers 7 pixels with an 'x' style showLine:false, markerOptions: { size: 7, style:"x" } }, { // Use (open) circlular markers. markerOptions: { style:"circle" } }, { // Use a thicker, 5 pixel line and 10 pixel // filled square markers. lineWidth:5, markerOptions: { style:"filledSquare", size:10 } } ] } ); });
目標是『chart3』,資料則是[cosPoints, sinPoints, powPoints1, powPoints2]陣列,將每條線設定成不一樣的形狀去表示,結果如下
全部程式碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf8"> <script language="javascript" type="text/javascript" src="jquery-2.0.3.min.js"></script> <script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script> <script language="javascript" type="text/javascript" src="jqplot.logAxisRenderer.js"></script> <link rel="stylesheet" type="text/css" href="jquery.jqplot.css" /> <title>test</title> </head> <body> <script type="text/javascript"> $(function () { $.jqplot ('test1', [[3,7,9,1,4,6,8,2,5]]); $.jqplot ('test2', [[3,7,9,1,4,6,8,2,5]], { title: 'Plot With Options', axesDefaults: { labelRenderer: $.jqplot.CanvasAxisLabelRenderer }, axes: { xaxis: { label: "X Axis", pad: 4 }, yaxis: { label: "Y Axis", } } }); // Some simple loops to build up data arrays. var cosPoints = []; for (var i=0; i<2*Math.PI; i+=0.4){ cosPoints.push([i, Math.cos(i)]); } var sinPoints = []; for (var i=0; i<2*Math.PI; i+=0.4){ sinPoints.push([i, 2*Math.sin(i-.8)]); } var powPoints1 = []; for (var i=0; i<2*Math.PI; i+=0.4) { powPoints1.push([i, 2.5 + Math.pow(i/4, 2)]); } var powPoints2 = []; for (var i=0; i<2*Math.PI; i+=0.4) { powPoints2.push([i, -2.5 - Math.pow(i/4, 2)]); } $.jqplot('test3', [cosPoints, sinPoints, powPoints1, powPoints2], { title:'Line Style Options', // Series options are specified as an array of objects, one object // for each series. series:[ { // Change our line width and use a diamond shaped marker. lineWidth:2, markerOptions: { style:'dimaond' } }, { // Don't show a line, just show markers. // Make the markers 7 pixels with an 'x' style showLine:false, markerOptions: { size: 7, style:"x" } }, { // Use (open) circlular markers. markerOptions: { style:"circle" } }, { // Use a thicker, 5 pixel line and 10 pixel // filled square markers. lineWidth:5, markerOptions: { style:"filledSquare", size:10 } } ] } ); }); </script> <div id="test1"></div> <div id="test2"></div> <div id="test3"></div> </body> </html>
結果如下:
參考資料:
http://www.jqplot.com/tests/line-charts.php
http://www.jqplot.com/docs/files/jqplot-core-js.html
http://www.jqplot.com/docs/files/jqplot-core-js.html#$.jqplot
http://www.jqplot.com/docs/files/jqplot-core-js.html#Title
http://www.jqplot.com/docs/files/jqplot-core-js.html#Axis.label
http://www.jqplot.com/docs/files/jqplot-core-js.html#Series
http://lamb-mei.com/284/jquery-min-map-404-not-found/