Difference between revisions of "Different chart styles"

From JSXGraph Wiki
Jump to navigationJump to search
Line 1: Line 1:
 +
JSXGraph supports chart plotting.  Here are some examples of possible chart types.
 
<html>
 
<html>
 
<link rel="stylesheet" type="text/css" href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" />
 
<link rel="stylesheet" type="text/css" href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" />
Line 7: Line 8:
 
     <input type="button" value="Spline chart" onClick="splineChart()">
 
     <input type="button" value="Spline chart" onClick="splineChart()">
 
     <input type="button" value="Bar chart" onClick="barChart()">
 
     <input type="button" value="Bar chart" onClick="barChart()">
     <input type="button" value="Multiple styles" onClick="multiStyleChart()"><brr>
+
     <input type="button" value="Multiple styles" onClick="multiStyleChart()">
 
     <input type="button" value="Two bar charts" onClick="twoBarCharts()">
 
     <input type="button" value="Two bar charts" onClick="twoBarCharts()">
 
     <input type="button" value="Horizontal bars" onClick="horizontalBarChart()">
 
     <input type="button" value="Horizontal bars" onClick="horizontalBarChart()">
Line 117: Line 118:
  
 
<source lang="javascript">
 
<source lang="javascript">
 +
        var board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 400, unitX: 50, unitY: 50});
 +
 +
        var dataArr = [4,1,3,2,5,7,1.5,2];
 +
       
 +
        // Line chart
 +
        function lineChart() {
 +
            JXG.JSXGraph.freeBoard(board);
 +
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
 +
            board.suspendUpdate();
 +
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
 +
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
 +
            var a = board.createElement('chart', dataArr, {chartStyle:'line',strokeWidth:4,strokeColor:'#0000ff'});
 +
            board.unsuspendUpdate();
 +
        };
 +
 +
        function splineChart() {
 +
            JXG.JSXGraph.freeBoard(board);
 +
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
 +
            board.suspendUpdate();
 +
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
 +
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
 +
            var a = board.createElement('chart', dataArr, {chartStyle:'spline',strokeWidth:4,strokeColor:'#0000ff'});
 +
            board.unsuspendUpdate();
 +
        };
 +
 +
        // Bar chart
 +
        function barChart() {
 +
            JXG.JSXGraph.freeBoard(board);
 +
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
 +
            board.suspendUpdate();
 +
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
 +
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
 +
            var a = board.createElement('chart', dataArr, {chartStyle:'bar',width:0.6,labels:dataArr});
 +
            board.unsuspendUpdate();
 +
        };
 +
        //var s = board.createElement('chart', [4,1], {chartStyle:'bar',strokeWidth:8,width:0.4,strokeColor:'#ff0000'});  // strokeWidth in Polygon???
 +
       
 +
        // Single chart with multiple styles
 +
        function multiStyleChart() {
 +
            JXG.JSXGraph.freeBoard(board);
 +
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
 +
            board.suspendUpdate();
 +
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
 +
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
 +
            var a = board.createElement('chart', dataArr, {chartStyle:'bar,line,point',width:0.8,style:6,labels:dataArr});
 +
            board.unsuspendUpdate();
 +
        };
 +
       
 +
        // Two bar charts
 +
        function twoBarCharts() {
 +
            JXG.JSXGraph.freeBoard(board);
 +
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
 +
            board.suspendUpdate();
 +
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
 +
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
 +
            var a = board.createElement('chart', [[1,3,5,7],[4,-1,3,2]], {chartStyle:'bar',width:0.8});
 +
            var b = board.createElement('chart', [[2,4,6,8],[3,1,2,5]], {chartStyle:'bar',fillColor:'#C3D9FF',width:0.8});
 +
            board.unsuspendUpdate();
 +
        };
 +
 +
        // Bar chart with horizontal bars
 +
        function horizontalBarChart() {
 +
            JXG.JSXGraph.freeBoard(board);
 +
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
 +
            board.suspendUpdate();
 +
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
 +
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
 +
            var a = board.createElement('chart', dataArr, {chartStyle:'bar',labels:dataArr,width:0.8,dir:'horizontal'});
 +
            board.unsuspendUpdate();
 +
        };
 +
 +
        // Single chart with dynamic entries
 +
        function dynamicBarChart() {
 +
            JXG.JSXGraph.freeBoard(board);
 +
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 450, unitX: 50, unitY: 50});
 +
            board.suspendUpdate();
 +
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
 +
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
 +
 +
            var s = board.createElement('slider', [5,-1,3,1,2,1], {name:'S'});
 +
            var f = [function(){return this.board.round(s.X()*4,2);},
 +
                    function(){return this.board.round(s.X()*(-1),2);},
 +
                    function(){return this.board.round(s.X()*3,2);},
 +
                    function(){return this.board.round(s.X()*2,2);}];
 +
            var chart = board.createElement('chart', [f], {chartStyle:'bar',width:0.8,labels:f});
 +
            board.unsuspendUpdate();
 +
        };
 +
 +
        // Single pie chart
 +
        function pieChart() {
 +
            JXG.JSXGraph.freeBoard(board);
 +
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 450, unitX: 50, unitY: 50});
 +
            board.suspendUpdate();
 +
            var a = board.createElement('chart', dataArr,
 +
                {chartStyle:'pie', colorArray:['#B02B2C','#3F4C6B','#C79810','#D15600'],fillOpacity:0.9,center:[5,2]}
 +
            );
 +
            board.unsuspendUpdate();
 +
        }
 
</source>
 
</source>
  
 
[[Category:Examples]]
 
[[Category:Examples]]

Revision as of 20:08, 5 December 2008

JSXGraph supports chart plotting. Here are some examples of possible chart types.

        var board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 400, unitX: 50, unitY: 50});

        var dataArr = [4,1,3,2,5,7,1.5,2];
        
        // Line chart
        function lineChart() {
            JXG.JSXGraph.freeBoard(board);
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
            board.suspendUpdate();
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
            var a = board.createElement('chart', dataArr, {chartStyle:'line',strokeWidth:4,strokeColor:'#0000ff'});
            board.unsuspendUpdate();
        };

        function splineChart() {
            JXG.JSXGraph.freeBoard(board);
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
            board.suspendUpdate();
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
            var a = board.createElement('chart', dataArr, {chartStyle:'spline',strokeWidth:4,strokeColor:'#0000ff'});
            board.unsuspendUpdate();
        };

        // Bar chart
        function barChart() {
            JXG.JSXGraph.freeBoard(board);
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
            board.suspendUpdate();
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
            var a = board.createElement('chart', dataArr, {chartStyle:'bar',width:0.6,labels:dataArr});
            board.unsuspendUpdate();
        };
        //var s = board.createElement('chart', [4,1], {chartStyle:'bar',strokeWidth:8,width:0.4,strokeColor:'#ff0000'});   // strokeWidth in Polygon???
        
        // Single chart with multiple styles
        function multiStyleChart() {
            JXG.JSXGraph.freeBoard(board);
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
            board.suspendUpdate();
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
            var a = board.createElement('chart', dataArr, {chartStyle:'bar,line,point',width:0.8,style:6,labels:dataArr});
            board.unsuspendUpdate();
        };
        
        // Two bar charts
        function twoBarCharts() {
            JXG.JSXGraph.freeBoard(board);
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
            board.suspendUpdate();
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
            var a = board.createElement('chart', [[1,3,5,7],[4,-1,3,2]], {chartStyle:'bar',width:0.8});
            var b = board.createElement('chart', [[2,4,6,8],[3,1,2,5]], {chartStyle:'bar',fillColor:'#C3D9FF',width:0.8});
            board.unsuspendUpdate();
        };

        // Bar chart with horizontal bars
        function horizontalBarChart() {
            JXG.JSXGraph.freeBoard(board);
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 500, unitX: 50, unitY: 50});
            board.suspendUpdate();
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});
            var a = board.createElement('chart', dataArr, {chartStyle:'bar',labels:dataArr,width:0.8,dir:'horizontal'});
            board.unsuspendUpdate();
        };

        // Single chart with dynamic entries
        function dynamicBarChart() {
            JXG.JSXGraph.freeBoard(board);
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 450, unitX: 50, unitY: 50});
            board.suspendUpdate();
            var b1axisx = board.createElement('axis', [[0,0], [1,0]], {});
            var b1axisy = board.createElement('axis', [[0,0], [0,1]], {});

            var s = board.createElement('slider', [5,-1,3,1,2,1], {name:'S'});
            var f = [function(){return this.board.round(s.X()*4,2);},
                     function(){return this.board.round(s.X()*(-1),2);},
                     function(){return this.board.round(s.X()*3,2);},
                     function(){return this.board.round(s.X()*2,2);}];
            var chart = board.createElement('chart', [f], {chartStyle:'bar',width:0.8,labels:f});
            board.unsuspendUpdate();
        };

        // Single pie chart
        function pieChart() {
            JXG.JSXGraph.freeBoard(board);
            board = JXG.JSXGraph.initBoard('jxgbox', {originX: 50, originY: 450, unitX: 50, unitY: 50});
            board.suspendUpdate();
            var a = board.createElement('chart', dataArr, 
                {chartStyle:'pie', colorArray:['#B02B2C','#3F4C6B','#C79810','#D15600'],fillOpacity:0.9,center:[5,2]}
            );
            board.unsuspendUpdate();
        }