Difference between revisions of "Google style chart - interactive"
From JSXGraph Wiki
Jump to navigationJump to searchA WASSERMANN (talk | contribs) |
A WASSERMANN (talk | contribs) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | By clicking on points one can set new values for the y-coordinates. | ||
<jsxgraph width="647" height="400"> | <jsxgraph width="647" height="400"> | ||
var graph1; | var graph1; | ||
Line 11: | Line 12: | ||
var start = 0; | var start = 0; | ||
var end = 20; | var end = 20; | ||
− | points.push(brd. | + | points.push(brd.create('point', [start,0], {visible:false, name:'', fixed:true})); |
for (i=start;i<=end;i++) { | for (i=start;i<=end;i++) { | ||
Line 19: | Line 20: | ||
// Plot it | // Plot it | ||
− | p = brd. | + | p = brd.create('point', [x1,y1], |
{strokeWidth:2, strokeColor:'#ffffff', | {strokeWidth:2, strokeColor:'#ffffff', | ||
highlightStrokeColor:'#0077cc', fillColor:'#0077cc', | highlightStrokeColor:'#0077cc', fillColor:'#0077cc', | ||
Line 39: | Line 40: | ||
} | } | ||
// Filled area. We need two additional points [start,0] and [end,0] | // Filled area. We need two additional points [start,0] and [end,0] | ||
− | points.push(brd. | + | points.push(brd.create('point', [end,0], {visible:false, name:'', fixed:true})); |
− | brd. | + | brd.create('polygon',points, {withLines:false,fillColor:'#e6f2fa'}); |
// Curve: | // Curve: | ||
− | brd. | + | brd.create('curve', [x,y], |
{strokeWidth:3, strokeColor:'#0077cc', | {strokeWidth:3, strokeColor:'#0077cc', | ||
highlightStrokeColor:'#0077cc'} | highlightStrokeColor:'#0077cc'} | ||
); | ); | ||
} | } | ||
− | |||
doIt(); | doIt(); | ||
− | |||
</jsxgraph> | </jsxgraph> | ||
+ | |||
+ | ===JavaScript code to produce this chart=== | ||
+ | <source lang="javascript"> | ||
+ | var graph1; | ||
+ | var brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-1,6,21,-1], axis: true}); | ||
+ | |||
+ | function doIt() { | ||
+ | var i, x1, y1; | ||
+ | var p; | ||
+ | var points = []; | ||
+ | var x = []; | ||
+ | var y = []; | ||
+ | var start = 0; | ||
+ | var end = 20; | ||
+ | points.push(brd.create('point', [start,0], {visible:false, name:'', fixed:true})); | ||
+ | for (i=start;i<=end;i++) { | ||
+ | |||
+ | // Generate random coordinates | ||
+ | x1 = i; | ||
+ | y1 = Math.random()*4+1; | ||
+ | |||
+ | // Plot it | ||
+ | p = brd.create('point', [x1,y1], | ||
+ | {strokeWidth:2, strokeColor:'#ffffff', | ||
+ | highlightStrokeColor:'#0077cc', fillColor:'#0077cc', | ||
+ | highlightFillColor:'#0077cc', style:6, name:'', fixed:true} | ||
+ | ); | ||
+ | points.push(p); | ||
+ | x.push(x1); | ||
+ | y.push(y1); | ||
+ | |||
+ | p.rendNode._num = i; // memorize the number of this point in the array | ||
+ | p.rendNode.onclick = function() { | ||
+ | var i = this._num; // Now we can access the number again | ||
+ | var p = points[i+1]; // The point number is one off | ||
+ | var v = prompt("New value:", p.Y())*1.0; | ||
+ | p.setPosition(JXG.COORDS_BY_USER, p.X(), v); // New coordinates for the point | ||
+ | y[i] = v; // New coordinates for the curve | ||
+ | brd.update(); | ||
+ | }; | ||
+ | } | ||
+ | // Filled area. We need two additional points [start,0] and [end,0] | ||
+ | points.push(brd.create('point', [end,0], {visible:false, name:'', fixed:true})); | ||
+ | brd.create('polygon',points, {withLines:false,fillColor:'#e6f2fa'}); | ||
+ | |||
+ | // Curve: | ||
+ | brd.create('curve', [x,y], | ||
+ | {strokeWidth:3, strokeColor:'#0077cc', | ||
+ | highlightStrokeColor:'#0077cc'} | ||
+ | ); | ||
+ | } | ||
+ | doIt(); | ||
+ | </source> | ||
+ | |||
+ | [[Category:Examples]] | ||
+ | [[Category:Charts]] |
Latest revision as of 15:12, 3 March 2021
By clicking on points one can set new values for the y-coordinates.
JavaScript code to produce this chart
var graph1;
var brd = JXG.JSXGraph.initBoard('jxgbox', {boundingbox:[-1,6,21,-1], axis: true});
function doIt() {
var i, x1, y1;
var p;
var points = [];
var x = [];
var y = [];
var start = 0;
var end = 20;
points.push(brd.create('point', [start,0], {visible:false, name:'', fixed:true}));
for (i=start;i<=end;i++) {
// Generate random coordinates
x1 = i;
y1 = Math.random()*4+1;
// Plot it
p = brd.create('point', [x1,y1],
{strokeWidth:2, strokeColor:'#ffffff',
highlightStrokeColor:'#0077cc', fillColor:'#0077cc',
highlightFillColor:'#0077cc', style:6, name:'', fixed:true}
);
points.push(p);
x.push(x1);
y.push(y1);
p.rendNode._num = i; // memorize the number of this point in the array
p.rendNode.onclick = function() {
var i = this._num; // Now we can access the number again
var p = points[i+1]; // The point number is one off
var v = prompt("New value:", p.Y())*1.0;
p.setPosition(JXG.COORDS_BY_USER, p.X(), v); // New coordinates for the point
y[i] = v; // New coordinates for the curve
brd.update();
};
}
// Filled area. We need two additional points [start,0] and [end,0]
points.push(brd.create('point', [end,0], {visible:false, name:'', fixed:true}));
brd.create('polygon',points, {withLines:false,fillColor:'#e6f2fa'});
// Curve:
brd.create('curve', [x,y],
{strokeWidth:3, strokeColor:'#0077cc',
highlightStrokeColor:'#0077cc'}
);
}
doIt();