Browse Source

made new graph2d docs, fixed graph2d examples, updated graph2d options

flowchartTest
Alex de Mulder 9 years ago
parent
commit
20ef9a15f9
15 changed files with 2471 additions and 1183 deletions
  1. +35
    -31
      dist/vis.js
  2. +0
    -1
      docs/css/newdocs.css
  3. +1212
    -1070
      docs/graph2d.html
  4. +1165
    -0
      docs/old_graph2d.html
  5. +4
    -4
      examples/graph2d/06_interpolation.html
  6. +5
    -5
      examples/graph2d/08_performance.html
  7. +0
    -4
      examples/graph2d/09_external_legend.html
  8. +1
    -1
      examples/graph2d/10_barsSideBySide.html
  9. +2
    -2
      examples/graph2d/11_barsSideBySideGroups.html
  10. +11
    -15
      examples/graph2d/12_customRange.html
  11. +6
    -20
      examples/graph2d/16_bothAxis_titles.html
  12. +2
    -2
      lib/timeline/component/DataAxis.js
  13. +11
    -11
      lib/timeline/component/GraphGroup.js
  14. +14
    -14
      lib/timeline/component/LineGraph.js
  15. +3
    -3
      lib/timeline/component/graph2d_types/line.js

+ 35
- 31
dist/vis.js View File

@ -5,7 +5,7 @@
* A dynamic, browser-based visualization library. * A dynamic, browser-based visualization library.
* *
* @version 4.0.0-SNAPSHOT * @version 4.0.0-SNAPSHOT
* @date 2015-05-07
* @date 2015-05-11
* *
* @license * @license
* Copyright (C) 2011-2014 Almende B.V, http://almende.com * Copyright (C) 2011-2014 Almende B.V, http://almende.com
@ -10931,14 +10931,14 @@ return /******/ (function(modules) { // webpackBootstrap
left: { left: {
range: { min: undefined, max: undefined }, range: { min: undefined, max: undefined },
format: function format(value) { format: function format(value) {
return '' + value.toPrecision(5);
return '' + value;
}, },
title: { text: undefined, style: undefined } title: { text: undefined, style: undefined }
}, },
right: { right: {
range: { min: undefined, max: undefined }, range: { min: undefined, max: undefined },
format: function format(value) { format: function format(value) {
return '' + value.toPrecision(5);
return '' + value;
}, },
title: { text: undefined, style: undefined } title: { text: undefined, style: undefined }
} }
@ -11520,7 +11520,7 @@ return /******/ (function(modules) { // webpackBootstrap
*/ */
function GraphGroup(group, groupId, options, groupsUsingDefaultStyles) { function GraphGroup(group, groupId, options, groupsUsingDefaultStyles) {
this.id = groupId; this.id = groupId;
var fields = ['sampling', 'style', 'sort', 'yAxisOrientation', 'barChart', 'drawPoints', 'shaded', 'catmullRom'];
var fields = ['sampling', 'style', 'sort', 'yAxisOrientation', 'barChart', 'drawPoints', 'shaded', 'interpolation'];
this.options = util.selectiveBridgeObject(fields, options); this.options = util.selectiveBridgeObject(fields, options);
this.usingDefaultStyle = group.className === undefined; this.usingDefaultStyle = group.className === undefined;
this.groupsUsingDefaultStyles = groupsUsingDefaultStyles; this.groupsUsingDefaultStyles = groupsUsingDefaultStyles;
@ -11567,20 +11567,20 @@ return /******/ (function(modules) { // webpackBootstrap
var fields = ['sampling', 'style', 'sort', 'yAxisOrientation', 'barChart']; var fields = ['sampling', 'style', 'sort', 'yAxisOrientation', 'barChart'];
util.selectiveDeepExtend(fields, this.options, options); util.selectiveDeepExtend(fields, this.options, options);
util.mergeOptions(this.options, options, 'catmullRom');
util.mergeOptions(this.options, options, 'interpolation');
util.mergeOptions(this.options, options, 'drawPoints'); util.mergeOptions(this.options, options, 'drawPoints');
util.mergeOptions(this.options, options, 'shaded'); util.mergeOptions(this.options, options, 'shaded');
if (options.catmullRom) {
if (typeof options.catmullRom == 'object') {
if (options.catmullRom.parametrization) {
if (options.catmullRom.parametrization == 'uniform') {
this.options.catmullRom.alpha = 0;
} else if (options.catmullRom.parametrization == 'chordal') {
this.options.catmullRom.alpha = 1;
if (options.interpolation) {
if (typeof options.interpolation == 'object') {
if (options.interpolation.parametrization) {
if (options.interpolation.parametrization == 'uniform') {
this.options.interpolation.alpha = 0;
} else if (options.interpolation.parametrization == 'chordal') {
this.options.interpolation.alpha = 1;
} else { } else {
this.options.catmullRom.parametrization = 'centripetal';
this.options.catmullRom.alpha = 0.5;
this.options.interpolation.parametrization = 'centripetal';
this.options.interpolation.alpha = 0.5;
} }
} }
} }
@ -14201,10 +14201,10 @@ return /******/ (function(modules) { // webpackBootstrap
style: 'line', // line, bar style: 'line', // line, bar
barChart: { barChart: {
width: 50, width: 50,
handleOverlap: 'overlap',
sideBySide: false,
align: 'center' // left, center, right align: 'center' // left, center, right
}, },
catmullRom: {
interpolation: {
enabled: true, enabled: true,
parametrization: 'centripetal', // uniform (alpha = 0.0), chordal (alpha = 1.0), centripetal (alpha = 0.5) parametrization: 'centripetal', // uniform (alpha = 0.0), chordal (alpha = 1.0), centripetal (alpha = 0.5)
alpha: 0.5 alpha: 0.5
@ -14223,12 +14223,16 @@ return /******/ (function(modules) { // webpackBootstrap
alignZeros: true, alignZeros: true,
left: { left: {
range: { min: undefined, max: undefined }, range: { min: undefined, max: undefined },
format: { decimals: undefined },
format: function format(value) {
return '' + value;
},
title: { text: undefined, style: undefined } title: { text: undefined, style: undefined }
}, },
right: { right: {
range: { min: undefined, max: undefined }, range: { min: undefined, max: undefined },
format: { decimals: undefined },
format: function format(value) {
return '' + value;
},
title: { text: undefined, style: undefined } title: { text: undefined, style: undefined }
} }
}, },
@ -14358,21 +14362,21 @@ return /******/ (function(modules) { // webpackBootstrap
} }
} }
util.selectiveDeepExtend(fields, this.options, options); util.selectiveDeepExtend(fields, this.options, options);
util.mergeOptions(this.options, options, 'catmullRom');
util.mergeOptions(this.options, options, 'interpolation');
util.mergeOptions(this.options, options, 'drawPoints'); util.mergeOptions(this.options, options, 'drawPoints');
util.mergeOptions(this.options, options, 'shaded'); util.mergeOptions(this.options, options, 'shaded');
util.mergeOptions(this.options, options, 'legend'); util.mergeOptions(this.options, options, 'legend');
if (options.catmullRom) {
if (typeof options.catmullRom == 'object') {
if (options.catmullRom.parametrization) {
if (options.catmullRom.parametrization == 'uniform') {
this.options.catmullRom.alpha = 0;
} else if (options.catmullRom.parametrization == 'chordal') {
this.options.catmullRom.alpha = 1;
if (options.interpolation) {
if (typeof options.interpolation == 'object') {
if (options.interpolation.parametrization) {
if (options.interpolation.parametrization == 'uniform') {
this.options.interpolation.alpha = 0;
} else if (options.interpolation.parametrization == 'chordal') {
this.options.interpolation.alpha = 1;
} else { } else {
this.options.catmullRom.parametrization = 'centripetal';
this.options.catmullRom.alpha = 0.5;
this.options.interpolation.parametrization = 'centripetal';
this.options.interpolation.alpha = 0.5;
} }
} }
} }
@ -19878,7 +19882,7 @@ return /******/ (function(modules) { // webpackBootstrap
} }
// construct path from dataset // construct path from dataset
if (group.options.catmullRom.enabled == true) {
if (group.options.interpolation.enabled == true) {
d = Line._catmullRom(dataset, group); d = Line._catmullRom(dataset, group);
} else { } else {
d = Line._linear(dataset); d = Line._linear(dataset);
@ -19911,7 +19915,7 @@ return /******/ (function(modules) { // webpackBootstrap
}; };
/** /**
* This uses an uniform parametrization of the CatmullRom algorithm:
* This uses an uniform parametrization of the interpolation algorithm:
* 'On the Parameterization of Catmull-Rom Curves' by Cem Yuksel et al. * 'On the Parameterization of Catmull-Rom Curves' by Cem Yuksel et al.
* @param data * @param data
* @returns {string} * @returns {string}
@ -19959,7 +19963,7 @@ return /******/ (function(modules) { // webpackBootstrap
* @private * @private
*/ */
Line._catmullRom = function (data, group) { Line._catmullRom = function (data, group) {
var alpha = group.options.catmullRom.alpha;
var alpha = group.options.interpolation.alpha;
if (alpha == 0 || alpha === undefined) { if (alpha == 0 || alpha === undefined) {
return this._catmullRomUniform(data); return this._catmullRomUniform(data);
} else { } else {

+ 0
- 1
docs/css/newdocs.css View File

@ -46,7 +46,6 @@ div.full {
table.moduleTable { table.moduleTable {
border:1px solid #eeeeee; border:1px solid #eeeeee;
font-size:14px; font-size:14px;
margin-left:20px;
max-width: 900px; max-width: 900px;
} }

+ 1212
- 1070
docs/graph2d.html
File diff suppressed because it is too large
View File


+ 1165
- 0
docs/old_graph2d.html
File diff suppressed because it is too large
View File


+ 4
- 4
examples/graph2d/06_interpolation.html View File

@ -36,7 +36,7 @@
content: names[0], content: names[0],
options: { options: {
drawPoints: false, drawPoints: false,
catmullRom: {
interpolation: {
parametrization: 'centripetal' parametrization: 'centripetal'
} }
}}); }});
@ -46,7 +46,7 @@
content: names[1], content: names[1],
options: { options: {
drawPoints: false, drawPoints: false,
catmullRom: {
interpolation: {
parametrization: 'chordal' parametrization: 'chordal'
} }
}}); }});
@ -56,7 +56,7 @@
content: names[2], content: names[2],
options: { options: {
drawPoints: false, drawPoints: false,
catmullRom: {
interpolation: {
parametrization: 'uniform' parametrization: 'uniform'
} }
} }
@ -67,7 +67,7 @@
content: names[3], content: names[3],
options: { options: {
drawPoints: { style: 'circle' }, drawPoints: { style: 'circle' },
catmullRom: false
interpolation: false
}}); }});
var container = document.getElementById('visualization'); var container = document.getElementById('visualization');

+ 5
- 5
examples/graph2d/08_performance.html View File

@ -74,19 +74,19 @@
var interpolationField = document.getElementById("interpolation"); var interpolationField = document.getElementById("interpolation");
if (interpolation == "linear") { if (interpolation == "linear") {
interpolation = 'centripetal'; interpolation = 'centripetal';
interpolationOptions = {catmullRom: {parametrization: interpolation}};
interpolationOptions = {interpolation: {parametrization: interpolation}};
} }
else if (interpolation == "centripetal") { else if (interpolation == "centripetal") {
interpolation = 'chordal'; interpolation = 'chordal';
interpolationOptions = {catmullRom: {parametrization: interpolation}};
interpolationOptions = {interpolation: {parametrization: interpolation}};
} }
else if (interpolation == "chordal") { else if (interpolation == "chordal") {
interpolation = 'uniform'; interpolation = 'uniform';
interpolationOptions = {catmullRom: {parametrization: interpolation}};
interpolationOptions = {interpolation: {parametrization: interpolation}};
} }
else if (interpolation == "uniform") { else if (interpolation == "uniform") {
interpolation = 'linear'; interpolation = 'linear';
interpolationOptions = {catmullRom: false};
interpolationOptions = {interpolation: false};
} }
interpolationField.value = interpolation; interpolationField.value = interpolation;
graph2d.setOptions(interpolationOptions); graph2d.setOptions(interpolationOptions);
@ -139,7 +139,7 @@
var options = { var options = {
sampling: true, sampling: true,
drawPoints: {enabled:false, size:3}, drawPoints: {enabled:false, size:3},
catmullRom: false,
interpolation: false,
start: startPoint, start: startPoint,
end: endPoint end: endPoint
}; };

+ 0
- 4
examples/graph2d/09_external_legend.html View File

@ -186,10 +186,6 @@
margin-left: -5px; margin-left: -5px;
width: 900px; width: 900px;
} }
</style> </style>
<script src="../../dist/vis.js"></script> <script src="../../dist/vis.js"></script>

+ 1
- 1
examples/graph2d/10_barsSideBySide.html View File

@ -66,7 +66,7 @@
dropdown.onchange = update; dropdown.onchange = update;
function update() { function update() {
var options = {barChart:{handleOverlap:dropdown.value}};
var options = {stack:dropdown.value === 'stack',barChart:{sideBySide:dropdown.value === 'sideBySide'}};
graph2d.setOptions(options); graph2d.setOptions(options);
} }

+ 2
- 2
examples/graph2d/11_barsSideBySideGroups.html View File

@ -62,7 +62,7 @@
var dataset = new vis.DataSet(items); var dataset = new vis.DataSet(items);
var options = { var options = {
style:'bar', style:'bar',
stack:true,
stack:false,
barChart: {width:50, align:'center', sideBySide:true}, // align: left, center, right barChart: {width:50, align:'center', sideBySide:true}, // align: left, center, right
drawPoints: false, drawPoints: false,
dataAxis: { dataAxis: {
@ -78,7 +78,7 @@
dropdown.onchange = update; dropdown.onchange = update;
function update() { function update() {
var options = {barChart:{handleOverlap:dropdown.value}};
var options = {stack:dropdown.value === 'stack',barChart:{sideBySide:dropdown.value === 'sideBySide'}};
graph2d.setOptions(options); graph2d.setOptions(options);
} }

+ 11
- 15
examples/graph2d/12_customRange.html View File

@ -23,13 +23,11 @@
<pre class="prettyprint lang-js"> <pre class="prettyprint lang-js">
var options = { var options = {
dataAxis: { dataAxis: {
customRange: {
left: {
min:-5, max:30
},
right: {
min:-5
}
left: {
range: {min:-5, max:30}
},
right: {
range: {min:-5}
} }
} }
}; };
@ -71,16 +69,14 @@ var options = {
var dataset = new vis.DataSet(items); var dataset = new vis.DataSet(items);
var options = { var options = {
style:'bar', style:'bar',
barChart: {width:50, align:'center', handleOverlap:"sideBySide"}, // align: left, center, right
barChart: {width:50, align:'center', sideBySide:true}, // align: left, center, right
drawPoints: true, drawPoints: true,
dataAxis: { dataAxis: {
customRange: {
left: {
min:-5, max:30
},
right: {
min:-5
}
left: {
range: {min:-5, max:30}
},
right: {
range: {min:-5}
}, },
icons:true icons:true
}, },

+ 6
- 20
examples/graph2d/16_bothAxis_titles.html View File

@ -64,15 +64,6 @@
<td><input type="button" onclick="styleTitle('left')" value="Color Left Title" /></td> <td><input type="button" onclick="styleTitle('left')" value="Color Left Title" /></td>
<td><input type="button" onclick="styleTitle('right')" value="Color Right Title" /></td> <td><input type="button" onclick="styleTitle('right')" value="Color Right Title" /></td>
</tr> </tr>
<tr>
<td>Left decimals</td>
<td><select id="decimals" onchange="styleDecimals()">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
</td>
</tr>
</table> </table>
</td> </td>
</tr> </tr>
@ -159,8 +150,8 @@
var options = { var options = {
dataAxis: { dataAxis: {
showMinorLabels: false, showMinorLabels: false,
title: {
right: {
right: {
title: {
text: 'Title (right axis)' text: 'Title (right axis)'
} }
} }
@ -185,10 +176,10 @@
} }
if(axis == 'left') { if(axis == 'left') {
graph2d.setOptions({dataAxis: {title: {left: title}}});
graph2d.setOptions({dataAxis: {left: {title: title}}});
} }
else { else {
graph2d.setOptions({dataAxis: {title: {right: title}}});
graph2d.setOptions({dataAxis: {right: {title: title}}});
} }
} }
@ -198,18 +189,13 @@
title = {style: "color: " + colors[Math.floor(Math.random() * colors.length) + 1]}; title = {style: "color: " + colors[Math.floor(Math.random() * colors.length) + 1]};
if(axis == 'left') { if(axis == 'left') {
graph2d.setOptions({dataAxis: {title: {left: title}}});
graph2d.setOptions({dataAxis: {left: {title: title}}});
} }
else { else {
graph2d.setOptions({dataAxis: {title: {right: title}}});
graph2d.setOptions({dataAxis: {right: {title: title}}});
} }
} }
function styleDecimals() {
var x = document.getElementById("decimals");
graph2d.setOptions({dataAxis: {format: {left: {decimals: Number(x.value)}}}});
}
</script> </script>
</body> </body>
</html> </html>

+ 2
- 2
lib/timeline/component/DataAxis.js View File

@ -30,12 +30,12 @@ function DataAxis (body, options, svg, linegraphOptions) {
alignZeros: true, alignZeros: true,
left:{ left:{
range: {min:undefined,max:undefined}, range: {min:undefined,max:undefined},
format: function (value) {return '' + value.toPrecision(5);},
format: function (value) {return ''+value;},
title: {text:undefined,style:undefined} title: {text:undefined,style:undefined}
}, },
right:{ right:{
range: {min:undefined,max:undefined}, range: {min:undefined,max:undefined},
format: function (value) {return '' + value.toPrecision(5);},
format: function (value) {return ''+value;},
title: {text:undefined,style:undefined} title: {text:undefined,style:undefined}
} }
}; };

+ 11
- 11
lib/timeline/component/GraphGroup.js View File

@ -16,7 +16,7 @@ var Points = require('./graph2d_types/points');
*/ */
function GraphGroup (group, groupId, options, groupsUsingDefaultStyles) { function GraphGroup (group, groupId, options, groupsUsingDefaultStyles) {
this.id = groupId; this.id = groupId;
var fields = ['sampling','style','sort','yAxisOrientation','barChart','drawPoints','shaded','catmullRom']
var fields = ['sampling','style','sort','yAxisOrientation','barChart','drawPoints','shaded','interpolation']
this.options = util.selectiveBridgeObject(fields,options); this.options = util.selectiveBridgeObject(fields,options);
this.usingDefaultStyle = group.className === undefined; this.usingDefaultStyle = group.className === undefined;
this.groupsUsingDefaultStyles = groupsUsingDefaultStyles; this.groupsUsingDefaultStyles = groupsUsingDefaultStyles;
@ -65,22 +65,22 @@ GraphGroup.prototype.setOptions = function(options) {
var fields = ['sampling','style','sort','yAxisOrientation','barChart']; var fields = ['sampling','style','sort','yAxisOrientation','barChart'];
util.selectiveDeepExtend(fields, this.options, options); util.selectiveDeepExtend(fields, this.options, options);
util.mergeOptions(this.options, options,'catmullRom');
util.mergeOptions(this.options, options,'interpolation');
util.mergeOptions(this.options, options,'drawPoints'); util.mergeOptions(this.options, options,'drawPoints');
util.mergeOptions(this.options, options,'shaded'); util.mergeOptions(this.options, options,'shaded');
if (options.catmullRom) {
if (typeof options.catmullRom == 'object') {
if (options.catmullRom.parametrization) {
if (options.catmullRom.parametrization == 'uniform') {
this.options.catmullRom.alpha = 0;
if (options.interpolation) {
if (typeof options.interpolation == 'object') {
if (options.interpolation.parametrization) {
if (options.interpolation.parametrization == 'uniform') {
this.options.interpolation.alpha = 0;
} }
else if (options.catmullRom.parametrization == 'chordal') {
this.options.catmullRom.alpha = 1.0;
else if (options.interpolation.parametrization == 'chordal') {
this.options.interpolation.alpha = 1.0;
} }
else { else {
this.options.catmullRom.parametrization = 'centripetal';
this.options.catmullRom.alpha = 0.5;
this.options.interpolation.parametrization = 'centripetal';
this.options.interpolation.alpha = 0.5;
} }
} }
} }

+ 14
- 14
lib/timeline/component/LineGraph.js View File

@ -36,10 +36,10 @@ function LineGraph(body, options) {
style: 'line', // line, bar style: 'line', // line, bar
barChart: { barChart: {
width: 50, width: 50,
handleOverlap: 'overlap',
sideBySide: false,
align: 'center' // left, center, right align: 'center' // left, center, right
}, },
catmullRom: {
interpolation: {
enabled: true, enabled: true,
parametrization: 'centripetal', // uniform (alpha = 0.0), chordal (alpha = 1.0), centripetal (alpha = 0.5) parametrization: 'centripetal', // uniform (alpha = 0.0), chordal (alpha = 1.0), centripetal (alpha = 0.5)
alpha: 0.5 alpha: 0.5
@ -58,12 +58,12 @@ function LineGraph(body, options) {
alignZeros: true, alignZeros: true,
left:{ left:{
range: {min:undefined,max:undefined}, range: {min:undefined,max:undefined},
format: {decimals:undefined},
format: function (value) {return '' + value;},
title: {text:undefined,style:undefined} title: {text:undefined,style:undefined}
}, },
right:{ right:{
range: {min:undefined,max:undefined}, range: {min:undefined,max:undefined},
format: {decimals:undefined},
format: function (value) {return '' + value;},
title: {text:undefined,style:undefined} title: {text:undefined,style:undefined}
} }
}, },
@ -195,23 +195,23 @@ LineGraph.prototype.setOptions = function(options) {
} }
} }
util.selectiveDeepExtend(fields, this.options, options); util.selectiveDeepExtend(fields, this.options, options);
util.mergeOptions(this.options, options,'catmullRom');
util.mergeOptions(this.options, options,'interpolation');
util.mergeOptions(this.options, options,'drawPoints'); util.mergeOptions(this.options, options,'drawPoints');
util.mergeOptions(this.options, options,'shaded'); util.mergeOptions(this.options, options,'shaded');
util.mergeOptions(this.options, options,'legend'); util.mergeOptions(this.options, options,'legend');
if (options.catmullRom) {
if (typeof options.catmullRom == 'object') {
if (options.catmullRom.parametrization) {
if (options.catmullRom.parametrization == 'uniform') {
this.options.catmullRom.alpha = 0;
if (options.interpolation) {
if (typeof options.interpolation == 'object') {
if (options.interpolation.parametrization) {
if (options.interpolation.parametrization == 'uniform') {
this.options.interpolation.alpha = 0;
} }
else if (options.catmullRom.parametrization == 'chordal') {
this.options.catmullRom.alpha = 1.0;
else if (options.interpolation.parametrization == 'chordal') {
this.options.interpolation.alpha = 1.0;
} }
else { else {
this.options.catmullRom.parametrization = 'centripetal';
this.options.catmullRom.alpha = 0.5;
this.options.interpolation.parametrization = 'centripetal';
this.options.interpolation.alpha = 0.5;
} }
} }
} }

+ 3
- 3
lib/timeline/component/graph2d_types/line.js View File

@ -123,7 +123,7 @@ Line.prototype.draw = function (dataset, group, framework) {
} }
// construct path from dataset // construct path from dataset
if (group.options.catmullRom.enabled == true) {
if (group.options.interpolation.enabled == true) {
d = Line._catmullRom(dataset, group); d = Line._catmullRom(dataset, group);
} }
else { else {
@ -160,7 +160,7 @@ Line.prototype.draw = function (dataset, group, framework) {
/** /**
* This uses an uniform parametrization of the CatmullRom algorithm:
* This uses an uniform parametrization of the interpolation algorithm:
* 'On the Parameterization of Catmull-Rom Curves' by Cem Yuksel et al. * 'On the Parameterization of Catmull-Rom Curves' by Cem Yuksel et al.
* @param data * @param data
* @returns {string} * @returns {string}
@ -215,7 +215,7 @@ Line._catmullRomUniform = function(data) {
* @private * @private
*/ */
Line._catmullRom = function(data, group) { Line._catmullRom = function(data, group) {
var alpha = group.options.catmullRom.alpha;
var alpha = group.options.interpolation.alpha;
if (alpha == 0 || alpha === undefined) { if (alpha == 0 || alpha === undefined) {
return this._catmullRomUniform(data); return this._catmullRomUniform(data);
} }

Loading…
Cancel
Save