diff --git a/docs/css/prettify.css b/docs/css/prettify.css new file mode 100644 index 00000000..b4ec4ca0 --- /dev/null +++ b/docs/css/prettify.css @@ -0,0 +1,87 @@ +.com { + color: gray; +} + +.lit { + color: red; +} + +.pun { + color: gray; +} + +.pln { + color: #333333; +} + +pre.prettyprint { + border: 1px solid lightgray; + background-color: #fcfcfc; + padding: 5px; + + font-size: 10pt; + line-height: 1.5em; + font-family: monospace; +} + +ol.linenums { + margin-top:0; + margin-bottom:0; +} + +li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { + list-style:none; +} + +li.L1,li.L3,li.L5,li.L7,li.L9 { + background:#eee; +} + +.str,.atv { + color: green; +} + +.kwd,.tag { + color:#2B7CE9; +} + +.typ,.atn,.dec { + color: darkorange; +} + +@media print { + .com { + color:#600; + font-style:italic; + } + + .typ { + color:#404; + font-weight:700; + } + + .lit { + color:#044; + } + + .pun { + color:#440; + } + + .pln { + color:#000; + } + + .atn { + color:#404; + } + + .str,.atv { + color:#060; + } + + .kwd,.tag { + color:#006; + font-weight:700; + } +} \ No newline at end of file diff --git a/docs/css/style.css b/docs/css/style.css new file mode 100644 index 00000000..15554585 --- /dev/null +++ b/docs/css/style.css @@ -0,0 +1,69 @@ +html, body { + width: 100%; + height: 100%; + padding: 0; + margin: 0; +} + +body, td, th { + font-family: arial, sans-serif; + font-size: 11pt; + color: #4D4D4D; + line-height: 1.7em; +} + +#container { + margin: 0 auto; + padding-bottom: 50px; + width: 700px; +} + +h1 { + font-size: 180%; + font-weight: bold; + padding: 0; + margin: 1em 0 1em 0; +} + +h2 { + padding-top: 20px; + padding-bottom: 10px; + border-bottom: 1px solid #a0c0f0; + color: #2B7CE9; +} + +h3 { + font-size: 140%; +} + + +a { + color: #2B7CE9; + text-decoration: none; +} +a:visited { + color: #2E60A4; +} +a:hover { + color: red; + text-decoration: underline; +} + +table { + border-collapse: collapse; +} + +th { + font-weight: bold; + border: 1px solid lightgray; + background-color: #E5E5E5; + text-align: left; + vertical-align: top; + padding: 5px; +} + +td { + border: 1px solid lightgray; + padding: 5px; + vertical-align: top; +} diff --git a/docs/dataset.html b/docs/dataset.html new file mode 100644 index 00000000..201d6e5b --- /dev/null +++ b/docs/dataset.html @@ -0,0 +1,23 @@ + + + +
+coming soon...
+ +| Author | +Jos de Jong, Almende B.V. | +
| Webpage | +http://visjs.org | +
| License | +Apache License, Version 2.0 | +
+ Graph is a visualization to display graphs and networks consisting of nodes + and edges. The visualization is easy to use and supports custom shapes, + styles, colors, sizes, images, and more. +
+ ++ The graph visualization works smooth on any modern browser for up to a + few hundred nodes and edges. +
+ ++ To get started with Graph, install or download the + vis.js library. +
+ ++ Here a basic graph example. More examples can be found in the + examples directory. +
+ +<!doctype html>
+<html>
+<head>
+ <title>Graph | Basic usage</title>
+
+ <script type="text/javascript" src="../../vis.js"></script>
+</head>
+
+<body>
+
+<div id="mygraph"></div>
+
+<script type="text/javascript">
+ // create an array with nodes
+ var nodes = [
+ {id: 1, label: 'Node 1'},
+ {id: 2, label: 'Node 2'},
+ {id: 3, label: 'Node 3'},
+ {id: 4, label: 'Node 4'},
+ {id: 5, label: 'Node 5'}
+ ];
+
+ // create an array with edges
+ var edges = [
+ {from: 1, to: 2},
+ {from: 1, to: 3},
+ {from: 2, to: 4},
+ {from: 2, to: 5}
+ ];
+
+ // create a graph
+ var container = document.getElementById('mygraph');
+ var data= {
+ nodes: nodes,
+ edges: edges,
+ };
+ var options = {
+ width: '400px',
+ height: '400px'
+ };
+ var graph = new vis.Graph(container, data, options);
+</script>
+
+</body>
+</html>
+
+
+
++ Install or download the vis.js library. + in a subfolder of your project. Include the library script in the head of your html code: +
+ ++<script type="text/javascript" src="vis/vis.js"></script> ++ + +The constructor of the Graph is
vis.Graph.
+var graph = new vis.Graph(container, data, options);+ +The constructor accepts three parameters: +
container is the DOM element in which to create the graph.
+ data is an Object containing properties nodes and
+ edges, which both contain an array with objects.
+ Optionally, data may contain an options object.
+ The parameter data is optional, data can also be set using
+ the method setData. Section Data Format
+ describes the data object.
+ options is an optional Object containing a name-value map
+ with options. Options can also be set using the method
+ setOptions.
+ Section Configuration Options
+ describes the available options.
+
+ The data parameter of the Graph constructor is an object
+ which can contain different types of data.
+ The following properties are supported in the data object:
+
nodes and edges,
+ both containing an Array with objects. The data formats are described
+ in the sections Nodes and Edges.
+ Example:
+
+var data = {
+ nodes: [...],
+ edges: [...]
+};
+
+ dot,
+ containing a string with data in the
+ DOT language.
+ DOT support is described in section DOT_language.
+
+ Example:
+
+var data = {
+ dot: '...'
+};
+
+ options,
+ containing an object with global options.
+ Options can be provided as third parameter in the graph constructor
+ as well. Section Configuration Options
+ describes the available options.
+
+
+ Nodes typically have an id and label.
+ A node must contain at least a property id.
+ Nodes can have extra properties, used to define the shape and style of the
+ nodes.
+
+ A JavaScript Array with nodes is constructed like: +
+
+var nodes = [
+ {
+ id: 1,
+ label: 'Node 1'
+ },
+ // ... more nodes
+];
+
+
+
++ Nodes support the following properties: +
+ +| Name | +Type | +Required | +Description | +
|---|---|---|---|
| color | +String | Object | +no | +Color for the node. | +
| color.background | +String | +no | +Background color for the node. | +
| color.border | +String | +no | +Border color for the node. | +
| color.highlight | +String | Object | +no | +Color of the node when selected. | +
| color.highlight.background | +String | +no | +Background color of the node when selected. | +
| color.highlight.border | +String | +no | +Border color of the node when selected. | +
| group | +Number | String | +no | +A group number or name. The type can be number,
+ string, or an other type. All nodes with the same group get
+ the same color schema. |
+
| fontColor | +String | +no | +Font color for label in the node. | +
| fontFace | +String | +no | +Font face for label in the node, for example "verdana" or "arial". | +
| fontSize | +Number | +no | +Font size in pixels for label in the node. | +
| id | +Number | String | +yes | +A unique id for this node. + Nodes may not have duplicate id's. + Id's do not need to be consecutive. + An id is normally a number, but may be any type. | +
| image | +string | +no | +Url of an image. Only applicable when the shape of the node is
+ image. |
+
| radius | +number | +no | +Radius for the node. Applicable for all shapes except box,
+ circle, ellipse and database.
+ The value of radius will override a value in
+ property value. |
+
| shape | +string | +no | +Define the shape for the node.
+ Choose from
+ ellipse (default), circle, box,
+ database, image, label, dot,
+ star, triangle, triangleDown, and square.
+ + + In case of image, a property with name image must
+ be provided, containing image urls.
+ + + The shapes dot, star, triangle,
+ triangleDown, and square, are scalable.
+ The size is determined by the properties radius or
+ value.
+ + + When a property label is provided,
+ this label will be displayed inside the shape in case of shapes
+ box, circle, ellipse,
+ and database.
+ For all other shapes, the label will be displayed right below the shape.
+
+ |
+
| label | +string | +no | +Text label to be displayed in the node or under the image of the node.
+ Multiple lines can be separated by a newline character \n . |
+
| title | +string | +no | +Title to be displayed when the user hovers over the node. + The title can contain HTML code. | +
| value | +number | +no | +A value for the node.
+ The radius of the nodes will be scaled automatically from minimum to
+ maximum value.
+ Only applicable when the shape of the node is dot.
+ If a radius is provided for the node too, it will override the
+ radius calculated from the value. |
+
| x | +number | +no | +Horizontal position in pixels. + The horizontal position of the node will be fixed. + The vertical position y may remain undefined. | +
| y | +number | +no | +Vertical position in pixels. + The vertical position of the node will be fixed. + The horizontal position x may remain undefined. | +
+ Edges are connections between nodes.
+ An edge must at least contain properties from and
+ to, both referring to the id of a node.
+ Edges can have extra properties, used to define the type and style.
+
+ A JavaScript Array with edges is constructed as: +
+
+var edges = [
+ {
+ from: 1,
+ to: 3
+ },
+ // ... more edges
+];
+
+
++ Edges support the following properties: +
+ +| Name | +Type | +Required | +Description | +
|---|---|---|---|
| color | +string | +no | +A HTML color for the edge. | +
| dash | +Object | +no | +
+ Object containing properties for dashed lines.
+ Available properties: length, gap,
+ altLength.
+ |
+
| dash.altLength | +number | +no | +Length of the alternated dash in pixels on a dashed line.
+ Specifying dash.altLength allows for creating
+ a dashed line with a dash-dot style, for example when
+ dash.length=10 and dash.altLength=5.
+ See also the option dahs.length.
+ Only applicable when the line style is dash-line. |
+
| dash.length | +number | +no | +Length of a dash in pixels on a dashed line.
+ Only applicable when the line style is dash-line. |
+
| dash.gap | +number | +no | +Length of a gap in pixels on a dashed line.
+ Only applicable when the line style is dash-line. |
+
| fontColor | +String | +no | +Font color for the text label of the edge.
+ Only applicable when property label is defined. |
+
| fontFace | +String | +no | +Font face for the text label of the edge,
+ for example "verdana" or "arial".
+ Only applicable when property label is defined. |
+
| fontSize | +Number | +no | +Font size in pixels for the text label of the edge.
+ Only applicable when property label is defined. |
+
| from | +Number | String | +yes | +The id of a node where the edge starts. The type must correspond with + the type of the node id's. This is normally a number, but can be any + type. | +
| length | +number | +no | +The length of the edge in pixels. | +
| style | +string | +no | +Define a line style for the edge.
+ Choose from line (default), arrow,
+ arrow-center, or dash-line.
+ |
+
| label | +string | +no | +Text label to be displayed halfway the edge. | +
| title | +string | +no | +Title to be displayed when the user hovers over the edge. + The title can contain HTML code. | +
| to | +Number | String | +yes | +The id of a node where the edge ends. The type must correspond with + the type of the node id's. This is normally a number, but can be any + type. | +
| value | +number | +no | +A value for the edge.
+ The width of the edges will be scaled automatically from minimum to
+ maximum value.
+ If a width is provided for the edge too, it will override the
+ width calculated from the value. |
+
| width | +number | +no | +Width of the line in pixels. The width will
+ override a specified value, if a value is
+ specified too. |
+
+ Graph supports data in the
+ DOT language.
+ To provide data in the DOT language, the data object must contain
+ a property dot with a String containing the data.
+
+ Example usage: +
+ +
+// provide data in the DOT language
+var data = {
+ dot: 'digraph {1 -> 1 -> 2; 2 -> 3; 2 -- 4; 2 -> 1 }'
+};
+
+// create a graph
+var graph = new vis.Graph(container, data);
+
+
+
+
++ Options can be used to customize the graph. Options are defined as a JSON object. + All options are optional. +
+ +
+var options = {
+ width: '100%',
+ height: '400px',
+ edges: {
+ color: 'red',
+ width: 2
+ }
+};
+
+
++ The following options are available. +
+ +| Name | +Type | +Default | +Description | +
|---|---|---|---|
| edges.color | +String | +"#2B7CE9" | +The default color of a edge. | +
| edges.dash | +Object | +Object | +
+ Object containing default properties for dashed lines.
+ Available properties: length, gap,
+ altLength.
+ |
+
| edges.dash.altLength | +number | +none | +Default length of the alternated dash in pixels on a dashed line.
+ Specifying dash.altLength allows for creating
+ a dashed line with a dash-dot style, for example when
+ dash.length=10 and dash.altLength=5.
+ See also the option dahs.length.
+ Only applicable when the line style is dash-line. |
+
| edges.dash.length | +number | +10 | +Default length of a dash in pixels on a dashed line.
+ Only applicable when the line style is dash-line. |
+
| edges.dash.gap | +number | +5 | +Default length of a gap in pixels on a dashed line.
+ Only applicable when the line style is dash-line. |
+
| edges.length | +Number | +100 | +The default length of a edge. | +
| edges.style | +String | +"line" | +The default style of a edge.
+ Choose from line (default), arrow,
+ arrow-center, dash-line. |
+
| edges.width | +Number | +1 | +The default width of a edge. | +
| groups | +Object | +none | +It is possible to specify custom styles for groups. + Each node assigned a group gets the specified style. + See Groups for an overview of the available styles + and an example. + | +
| height | +String | +"400px" | +The height of the graph in pixels or as a percentage. | +
| nodes.color | +String | Object | +Object | +Default color of the nodes. When color is a string, the color is applied + to both background as well as the border of the node. | +
| nodes.color.background | +String | +"#97C2FC" | +Default background color of the nodes | +
| nodes.color.border | +String | +"#2B7CE9" | +Default border color of the nodes | +
| nodes.color.highlight | +String | Object | +Object | +Default color of the node when the node is selected. Applied to + both border and background of the node. | +
| nodes.color.highlight.background | +String | +"#D2E5FF" | +Default background color of the node when selected. | +
| nodes.color.highlight.border | +String | +"#2B7CE9" | +Default border color of the node when selected. | +
| nodes.fontColor | +String | +"black" | +Default font color for the text label in the nodes. | +
| nodes.fontFace | +String | +"sans" | +Default font face for the text label in the nodes, for example "verdana" or "arial". | +
| nodes.fontSize | +Number | +14 | +Default font size in pixels for the text label in the nodes. | +
| nodes.group | +String | +none | +Default group for the nodes. | +
| nodes.image | +String | +none | +Default image url for the nodes. only applicable with shape image. |
+
| nodes.widthMin | +Number | +16 | +The minimum width for a scaled image. Only applicable with shape image. |
+
| nodes.widthMax | +Number | +64 | +The maximum width for a scaled image. Only applicable with shape image. |
+
| nodes.shape | +String | +"ellipse" | +The default shape for all nodes.
+ Choose from
+ ellipse (default), circle, box,
+ database, image, label, dot,
+ star, triangle, triangleDown, and square.
+ This shape can be overridden by a group shape, or by a shape of an individual node. |
+
| nodes.radius | +Number | +5 | +The default radius for a node. Only applicable with shape dot. |
+
| nodes.radiusMin | +Number | +5 | +The minimum radius for a scaled node. Only applicable with shape dot. |
+
| nodes.radiusMax | +Number | +20 | +The maximum radius for a scaled node. Only applicable with shape dot. |
+
| selectable | +Boolean | +true | +If true, nodes in the graph can be selected by clicking them, or
+ by keeping the Shift key down and dragging a selection area around them.
+ When the Ctrl key is down, the new selection is appended to the
+ previous selection. If not, the new selection replaces the previous selection. |
+
| stabilize | +Boolean | +true | +If true, the graph is stabilized before displaying it. If false, + the nodes move to a stabe position visibly in an animated way. | +
| width | +String | +"400px" | +The width of the graph in pixels or as a percentage. | +
It is possible to specify custom styles for groups of nodes.
+ Each node having assigned to this group gets the specified style.
+ The options groups is an object containing one or multiple groups,
+ identified by a unique string, the groupname.
+
+ A group can have the following styles: +
+ +
+var options = {
+ // ...
+
+ groups: {
+ mygroup: {
+ shape: 'circle',
+ color: {
+ border: 'black',
+ background: 'white',
+ highlight: {
+ border: 'yellow',
+ background: 'orange'
+ }
+ }
+ fontColor: 'red',
+ fontSize: 18
+ }
+ // add more groups here
+ }
+};
+
+var nodes = [
+ {id: 1, label: 'Node 1'}, // will get the default style
+ {id: 2, label: 'Node 2', group: 'mygroup'}, // will get the style from 'mygroup'
+ // ... more nodes
+];
+
+
+
+The following styles are available for groups:
+| Name | +Type | +Default | +Description | +
|---|---|---|---|
| color | +String | Object | +Object | +Color of the node | +
| color.border | +String | +"#2B7CE9" | +Border color of the node | +
| color.background | +String | +"#97C2FC" | +Background color of the node | +
| color.highlight | +String | +"#D2E5FF" | +Color of the node when selected. | +
| color.highlight.background | +String | +"#D2E5FF" | +Background color of the node when selected. | +
| color.highlight.border | +String | +"#D2E5FF" | +Border color of the node when selected. | +
| image | +String | +none | +Default image for the nodes. Only applicable in combination with
+ shape image. |
+
| fontColor | +String | +"black" | +Font color of the node. | +
| fontFace | +String | +"sans" | +Font name of the node, for example "verdana" or "arial". | +
| fontSize | +Number | +14 | +Font size for the node in pixels. | +
| shape | +String | +"ellipse" | +Choose from
+ ellipse (default), circle, box,
+ database, image, label, dot,
+ star, triangle, triangleDown, and square.
+ In case of image, a property with name image must be provided, containing
+ image urls. |
+
| radius | +Number | +5 | +Default radius for the node. Only applicable in combination with
+ shapes box and dot. |
+
+ Graph supports the following methods. +
+ +| Method | +Return Type | +Description | +
|---|---|---|
| setData(data) | +none | +Loads data. Parameter data is an object containing
+ nodes, edges, and options. Parameters nodes, edges are an Array.
+ Options is a name-value map and is optional.
+ |
+
| setOptions(options) | +none | +Set options for the graph. The available options are described in + the section Configuration Options. + | +
| getSelection() | +Array of selection elements | +Standard getSelection() implementation.
+ Returns an array with one or multiple selections. Each selection contains
+ the property row. The selections are not ordered.
+ |
+
| redraw() | +none | +Redraw the graph. Useful when the layout of the webpage changed. | +
| setSelection(selection) | +none | +Standard setSelection(selection) implementation.
+ selection is an array with selection elements. The visualization
+ accepts one or multiple selection elements, which must have the property row.
+ Example usage: graph.setSelection([{"row": 3}]);.
+ |
+
| setSize(width, height) | +none | +Parameters width and height are strings,
+ containing a new size for the visualization. Size can be provided in pixels
+ or in percentages. |
+
+ Graph fires events after one or multiple nodes are selected. + The event can be catched by creating a listener. +
+ +
+ Here an example on how to catch a select event.
+
+function onselect() {
+ var sel = graph.getSelection();
+
+ var info = 'selected row(s): ';
+ for (var i = 0; i < sel.length; i++) {
+ info += sel[i].row + ' ';
+ }
+
+ alert(info);
+}
+
+vis.events.addListener(graph, 'select', onselect);
+
+
++ The following events are available. +
+ +| name | +Description | +Properties | +
|---|---|---|
| select | +Fired after the user selects or unselects a node by clicking it,
+ or when selecting a number of nodes by dragging a selection area
+ around them. Not fired when the method setSelection
+ is executed. The corresponding rows in the Array are selected.
+ + The selected rows can be retrieved via the method getSelection.
+ |
+ none | +
+ All code and data are processed and rendered in the browser. No data is sent to any server. +
+ +Vis.js contains the following components:
+ + + +items can be an Array with Objects,
+ a DataSet, or a DataView.
+ + All parts of the Timeline have a class name and a default css style. + The styles can be overwritten, which enables full customization of the layout + of the Timeline. +
+ +For example, to change the border and background color of all items, include the + following code inside the head of your html code or in a separate stylesheet.
+<style>
+ .graph .item {
+ border-color: orange;
+ background-color: yellow;
+ }
+</style>
+
+
+
++ All code and data are processed and rendered in the browser. No data is sent to any server. +
+ + +