| @ -1,228 +0,0 @@ | |||
| html { | |||
| height:100%; | |||
| } | |||
| body { | |||
| font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important; | |||
| /*font-family: Lustria, Georgia, Times, "Times New Roman", serif !important;*/ | |||
| font-size:16px; | |||
| line-height: 1.5em; | |||
| background: url('../img/crosswordStrong.png') /* Background pattern from subtlepatterns.com */ | |||
| } | |||
| h1, h2, h3, h4, h5, h6 { | |||
| margin: 40px 0 20px 0; | |||
| } | |||
| ul { | |||
| margin-top: 0.7em; | |||
| margin-bottom: 0.7em; | |||
| } | |||
| p { | |||
| margin: 20px 0; | |||
| } | |||
| img.icon { | |||
| position:relative; | |||
| top:-2px; | |||
| } | |||
| div.navbar-wrapper { | |||
| background-color:#07508E; | |||
| border-bottom: 3px solid #ffffff; | |||
| font-size:16px; | |||
| } | |||
| div.blogHeader { | |||
| margin-left:auto; | |||
| margin-right:auto; | |||
| text-align:center; | |||
| width:910px; | |||
| padding: 0px 30px 0px 30px; | |||
| margin-top:-150px; | |||
| color:#ffffff; | |||
| text-shadow: 1px 1px 3px rgba(0, 0, 0, 1); | |||
| margin-bottom:60px; | |||
| } | |||
| div.full { | |||
| min-height:100%; | |||
| box-shadow:0 2px 10px rgba(0,0,0,0.4); | |||
| padding: 20px 10px 40px 10px; | |||
| background-color:#ffffff; | |||
| } | |||
| @media (min-width: 768px) { | |||
| div.full { | |||
| padding: 40px 40px 80px 40px; | |||
| } | |||
| } | |||
| @media (min-width: 992px) { | |||
| div.full { | |||
| padding: 80px 80px 160px 80px; | |||
| } | |||
| } | |||
| table.moduleTable { | |||
| } | |||
| table.moduleTable th, | |||
| table.moduleTable td { | |||
| padding: 5px 15px; | |||
| border: 1px solid #dddddd; | |||
| } | |||
| table.moduleTable th { | |||
| background-color: #f5f5f5; | |||
| } | |||
| table.moduleTable td { | |||
| vertical-align: top; | |||
| } | |||
| /* TODO: cleanup */ | |||
| /*tr.header {*/ | |||
| /*color: #1f3350;*/ | |||
| /*background-color: #cccccc;*/ | |||
| /*border-bottom:1px solid #999999 !important;*/ | |||
| /*font-size:16px;*/ | |||
| /*font-style:italic;*/ | |||
| /*}*/ | |||
| td.mid { | |||
| background-color: #f5f5f5; | |||
| font-style:italic; | |||
| } | |||
| /*td.properties {*/ | |||
| /*width:150px;*/ | |||
| /*}*/ | |||
| /*p {*/ | |||
| /*max-width:1000px;*/ | |||
| /*}*/ | |||
| /*pre.code {*/ | |||
| /*padding:2px 4px;*/ | |||
| /*font-size:90%;*/ | |||
| /*color: #444444;*/ | |||
| /*background-color:#f9f2f4;*/ | |||
| /*border-radius:4px;*/ | |||
| /*border:0;*/ | |||
| /*}*/ | |||
| pre { | |||
| margin: 20px 0; | |||
| } | |||
| /*pre.top {*/ | |||
| /*margin-left:20px;*/ | |||
| /*}*/ | |||
| tr.hidden { | |||
| max-height:0; | |||
| /*max-height: 0;*/ | |||
| overflow: hidden; | |||
| } | |||
| tr.visible { | |||
| /* Set our transitions up. */ | |||
| -webkit-animation: | |||
| fadeIn 250ms ease-in; | |||
| } | |||
| @-webkit-keyframes fadeIn { | |||
| 0% { | |||
| opacity: 0; | |||
| } | |||
| 100% { | |||
| opacity: 1; | |||
| } | |||
| } | |||
| span.caret { | |||
| opacity: 0.5; | |||
| } | |||
| span.right-caret { | |||
| border-bottom: 4px solid transparent; | |||
| border-top: 4px solid transparent; | |||
| border-left: 4px solid #000000; | |||
| display: inline-block; | |||
| height: 0; | |||
| opacity: 0.5; | |||
| vertical-align: top; | |||
| width: 0; | |||
| margin-left:5px; | |||
| margin-top:6px; | |||
| } | |||
| tr.toggle { | |||
| -webkit-touch-callout: none; | |||
| -webkit-user-select: none; | |||
| -khtml-user-select: none; | |||
| -moz-user-select: none; | |||
| -ms-user-select: none; | |||
| user-select: none; | |||
| cursor:pointer; | |||
| } | |||
| tr.toggle.collapsible { | |||
| background-color: #f5f5f5; | |||
| border-left: 3px solid #89b3ff; | |||
| } | |||
| td.indent { | |||
| padding-left:25px !important; | |||
| } | |||
| td.indent2 { | |||
| padding-left:50px !important; | |||
| } | |||
| /* TODO: cleanup */ | |||
| /*td.name {*/ | |||
| /*width:230px;*/ | |||
| /*}*/ | |||
| /*td.nameSmall {*/ | |||
| /*width:150px;*/ | |||
| /*}*/ | |||
| /*td.type {*/ | |||
| /*width: 110px;*/ | |||
| /*}*/ | |||
| /*td.default {*/ | |||
| /*width:60px;*/ | |||
| /*}*/ | |||
| /*td.eventProperties {*/ | |||
| /*width:150px;*/ | |||
| /*}*/ | |||
| /*td.methodName {*/ | |||
| /*width:250px;*/ | |||
| /*}*/ | |||
| pre.options { | |||
| max-width:600px; | |||
| } | |||
| pre.hidden { | |||
| display:none; | |||
| } | |||
| @ -0,0 +1,83 @@ | |||
| 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 { | |||
| position: relative; | |||
| margin: 0 auto; | |||
| padding: 10px 10px 50px 10px; | |||
| width: 970px; | |||
| max-width: 100%; | |||
| box-sizing: border-box; | |||
| } | |||
| 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 #e0e0e0; | |||
| color: #064880; | |||
| } | |||
| h3 { | |||
| font-size: 140%; | |||
| } | |||
| a > img { | |||
| border: none; | |||
| } | |||
| a { | |||
| color: #064880; | |||
| text-decoration: none; | |||
| } | |||
| a:visited { | |||
| color: #064880; | |||
| text-decoration: none; | |||
| } | |||
| 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; | |||
| } | |||
| p.important_note { | |||
| color: #3a6baa; | |||
| font-weight:bold; | |||
| } | |||
| @ -1,83 +1,193 @@ | |||
| html, body { | |||
| width: 100%; | |||
| height: 100%; | |||
| padding: 0; | |||
| margin: 0; | |||
| html { | |||
| height:100%; | |||
| } | |||
| body { | |||
| font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important; | |||
| /*font-family: Lustria, Georgia, Times, "Times New Roman", serif !important;*/ | |||
| font-size:16px; | |||
| line-height: 1.5em; | |||
| background: url('../img/crosswordStrong.png') /* Background pattern from subtlepatterns.com */ | |||
| } | |||
| body, td, th { | |||
| font-family: arial, sans-serif; | |||
| font-size: 11pt; | |||
| color: #4D4D4D; | |||
| line-height: 1.7em; | |||
| h1, h2, h3, h4, h5, h6 { | |||
| margin: 40px 0 20px 0; | |||
| } | |||
| #container { | |||
| position: relative; | |||
| margin: 0 auto; | |||
| padding: 10px 10px 50px 10px; | |||
| width: 970px; | |||
| max-width: 100%; | |||
| box-sizing: border-box; | |||
| ul { | |||
| margin-top: 0.7em; | |||
| margin-bottom: 0.7em; | |||
| } | |||
| h1 { | |||
| font-size: 180%; | |||
| font-weight: bold; | |||
| padding: 0; | |||
| margin: 1em 0 1em 0; | |||
| p { | |||
| margin: 20px 0; | |||
| } | |||
| h2 { | |||
| padding-top: 20px; | |||
| padding-bottom: 10px; | |||
| border-bottom: 1px solid #e0e0e0; | |||
| color: #064880; | |||
| img.icon { | |||
| position:relative; | |||
| top:-2px; | |||
| } | |||
| h3 { | |||
| font-size: 140%; | |||
| div.navbar-wrapper { | |||
| background-color:#07508E; | |||
| border-bottom: 3px solid #ffffff; | |||
| font-size:16px; | |||
| } | |||
| a > img { | |||
| border: none; | |||
| div.blogHeader { | |||
| margin-left:auto; | |||
| margin-right:auto; | |||
| text-align:center; | |||
| width:910px; | |||
| padding: 0px 30px 0px 30px; | |||
| margin-top:-150px; | |||
| color:#ffffff; | |||
| text-shadow: 1px 1px 3px rgba(0, 0, 0, 1); | |||
| margin-bottom:60px; | |||
| } | |||
| a { | |||
| color: #064880; | |||
| text-decoration: none; | |||
| div.full { | |||
| min-height:100%; | |||
| box-shadow:0 2px 10px rgba(0,0,0,0.4); | |||
| padding: 20px 10px 40px 10px; | |||
| background-color:#ffffff; | |||
| } | |||
| a:visited { | |||
| color: #064880; | |||
| text-decoration: none; | |||
| @media (min-width: 768px) { | |||
| div.full { | |||
| padding: 40px 40px 80px 40px; | |||
| } | |||
| } | |||
| a:hover { | |||
| color: red; | |||
| text-decoration: underline; | |||
| @media (min-width: 992px) { | |||
| div.full { | |||
| padding: 80px 80px 160px 80px; | |||
| } | |||
| } | |||
| table { | |||
| border-collapse: collapse; | |||
| } | |||
| th { | |||
| font-weight: bold; | |||
| border: 1px solid lightgray; | |||
| background-color: #E5E5E5; | |||
| text-align: left; | |||
| vertical-align: top; | |||
| padding: 5px; | |||
| table th, | |||
| table td { | |||
| padding: 5px 15px; | |||
| border: 1px solid #dddddd; | |||
| } | |||
| table th { | |||
| background-color: #f5f5f5; | |||
| } | |||
| table td { | |||
| vertical-align: top; | |||
| } | |||
| /* | |||
| The following tables are used: | |||
| - A table 'properties' with data properties. Columns: Name, Type, Required, Description | |||
| - A table 'options' with configuration options. Columns: Name, Type, Default, Description | |||
| - A table 'methods' with methods. Columns: Method, Return Type, Description | |||
| - A table 'events' with events. Columns: Name, Properties, Description | |||
| - A table 'styles' with styles. Columns: Description, Values | |||
| - A table 'datatypes' with data types. Columns: Name, Description, Examples | |||
| */ | |||
| table.properties td:nth-child(2), | |||
| table.properties td:nth-child(3), | |||
| table.options td:nth-child(2), | |||
| table.options td:nth-child(3), | |||
| table.methods td:nth-child(2), | |||
| table.methods td:nth-child(2), | |||
| table.events td:nth-child(2) { | |||
| background-color: #f5f5f5; | |||
| font-style: italic; | |||
| } | |||
| pre { | |||
| margin: 20px 0; | |||
| } | |||
| a code { | |||
| text-decoration: underline; | |||
| } | |||
| /*pre.top {*/ | |||
| /*margin-left:20px;*/ | |||
| /*}*/ | |||
| tr.hidden { | |||
| max-height:0; | |||
| /*max-height: 0;*/ | |||
| overflow: hidden; | |||
| } | |||
| tr.visible { | |||
| /* Set our transitions up. */ | |||
| -webkit-animation: | |||
| fadeIn 250ms ease-in; | |||
| } | |||
| @-webkit-keyframes fadeIn { | |||
| 0% { | |||
| opacity: 0; | |||
| } | |||
| 100% { | |||
| opacity: 1; | |||
| } | |||
| } | |||
| span.caret { | |||
| opacity: 0.5; | |||
| } | |||
| span.right-caret { | |||
| border-bottom: 4px solid transparent; | |||
| border-top: 4px solid transparent; | |||
| border-left: 4px solid #000000; | |||
| display: inline-block; | |||
| height: 0; | |||
| opacity: 0.5; | |||
| vertical-align: top; | |||
| width: 0; | |||
| margin-left:5px; | |||
| margin-top:6px; | |||
| } | |||
| tr.toggle { | |||
| -webkit-touch-callout: none; | |||
| -webkit-user-select: none; | |||
| -khtml-user-select: none; | |||
| -moz-user-select: none; | |||
| -ms-user-select: none; | |||
| user-select: none; | |||
| cursor:pointer; | |||
| } | |||
| tr.toggle.collapsible { | |||
| background-color: #f5f5f5; | |||
| border-left: 3px solid #89b3ff; | |||
| } | |||
| td.indent { | |||
| padding-left:25px !important; | |||
| } | |||
| td.indent2 { | |||
| padding-left:50px !important; | |||
| } | |||
| td { | |||
| border: 1px solid lightgray; | |||
| padding: 5px; | |||
| vertical-align: top; | |||
| pre.options { | |||
| max-width:600px; | |||
| } | |||
| p.important_note { | |||
| color: #3a6baa; | |||
| font-weight:bold; | |||
| pre.hidden { | |||
| display:none; | |||
| } | |||
| @ -0,0 +1,392 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="en"><head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="author" content=""> | |||
| <link rel="icon" HREF="favicon.ico"> | |||
| <title>DataView - vis.js - A dynamic, browser based visualization library.</title> | |||
| <!-- Bootstrap core CSS --> | |||
| <link href="../css/bootstrap.css" rel="stylesheet"> | |||
| <link href="../css/style.css" rel="stylesheet"> | |||
| <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> | |||
| <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <link href="../css/prettify.css" type="text/css" rel="stylesheet"/> | |||
| <script type="text/javascript" src="../js/googleAnalytics.js"></script> | |||
| <script type="text/javascript" src="../js/prettify/prettify.js"></script> | |||
| <script src="../js/smooth-scroll.min.js"></script> | |||
| <script language="JavaScript"> | |||
| smoothScroll.init(); | |||
| </script> | |||
| <script type="text/javascript" src="../js/toggleTable.js"></script> | |||
| </head> | |||
| <body onload="prettyPrint();"> | |||
| <div class="navbar-wrapper"> | |||
| <div class="container"> | |||
| <nav class="navbar navbar-inverse navbar-static-top" role="navigation"> | |||
| <div class="container"> | |||
| <div class="navbar-header"> | |||
| <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" | |||
| aria-expanded="false" aria-controls="navbar"> | |||
| <span class="sr-only">Toggle navigation</span> | |||
| <span class="icon-bar"></span> | |||
| <span class="icon-bar"></span> | |||
| <span class="icon-bar"></span> | |||
| </button> | |||
| <a class="navbar-brand hidden-sm" href="./index.html">vis.js</a> | |||
| </div> | |||
| <div id="navbar" class="navbar-collapse collapse"> | |||
| <ul class="nav navbar-nav"> | |||
| <li><a href="http://www.visjs.org/index.html#modules">Modules</a></li> | |||
| <li class="active"><a href="./docs/index.html" target="_blank">Documentation <img class="icon" | |||
| src="../img/external-link-icons/external-link-icon-white.png"></a> | |||
| </li> | |||
| <li><a href="http://www.visjs.org/blog.html">Blog</a></li> | |||
| <li><a href="http://www.visjs.org/index.html#download_install">Download</a></li> | |||
| <li><a href="http://www.visjs.org/showcase/index.html">Showcase</a></li> | |||
| <li><a href="http://www.visjs.org/index.html#contribute">Contribute</a></li> | |||
| <li><a href="http://www.visjs.org/featureRequests.html">Feature requests</a></li> | |||
| <li><a href="http://www.visjs.org/index.html#licenses">License</a></li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <a href="https://github.com/almende/vis" class="hidden-xs hidden-sm hidden-md"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a> | |||
| <div class="container full"> | |||
| <h1>DataView documentation</h1> | |||
| <h2 id="Contents">Contents</h2> | |||
| <ul> | |||
| <li><a href="#Overview">Overview</a></li> | |||
| <li><a href="#Example">Example</a></li> | |||
| <li><a href="#Construction">Construction</a></li> | |||
| <li><a href="#Methods">Methods</a></li> | |||
| <li><a href="#Properties">Properties</a></li> | |||
| <li><a href="#Getting_Data">Getting Data</a></li> | |||
| <li><a href="#Subscriptions">Subscriptions</a></li> | |||
| </ul> | |||
| <h2 id="Overview">Overview</h2> | |||
| <p> | |||
| A DataView offers a filtered and/or formatted view on a | |||
| <a href="dataset.html">DataSet</a>. | |||
| One can subscribe on changes in a DataView, and easily get filtered or | |||
| formatted data without having to specify filters and field types all | |||
| the time. | |||
| </p> | |||
| <h2 id="Example">Example</h2> | |||
| <p> | |||
| The following example shows how to use a DataView. | |||
| </p> | |||
| <pre class="prettyprint lang-js"> | |||
| // create a DataSet | |||
| var data = new vis.DataSet(); | |||
| data.add([ | |||
| {id: 1, text: 'item 1', date: new Date(2013, 6, 20), group: 1, first: true}, | |||
| {id: 2, text: 'item 2', date: '2013-06-23', group: 2}, | |||
| {id: 3, text: 'item 3', date: '2013-06-25', group: 2}, | |||
| {id: 4, text: 'item 4'} | |||
| ]); | |||
| // create a DataView | |||
| // the view will only contain items having a property group with value 1, | |||
| // and will only output fields id, text, and date. | |||
| var view = new vis.DataView(data, { | |||
| filter: function (item) { | |||
| return (item.group == 1); | |||
| }, | |||
| fields: ['id', 'text', 'date'] | |||
| }); | |||
| // subscribe to any change in the DataView | |||
| view.on('*', function (event, properties, senderId) { | |||
| console.log('event', event, properties); | |||
| }); | |||
| // update an item in the data set | |||
| data.update({id: 2, group: 1}); | |||
| // get all ids in the view | |||
| var ids = view.getIds(); | |||
| console.log('ids', ids); // will output [1, 2] | |||
| // get all items in the view | |||
| var items = view.get(); | |||
| </pre> | |||
| <h2 id="Construction">Construction</h2> | |||
| <p> | |||
| A DataView can be constructed as: | |||
| </p> | |||
| <pre class="prettyprint lang-js"> | |||
| var data = new vis.DataView(dataset, options) | |||
| </pre> | |||
| <p> | |||
| where: | |||
| </p> | |||
| <ul> | |||
| <li> | |||
| <code>dataset</code> is a DataSet or DataView. | |||
| </li> | |||
| <li> | |||
| <code>options</code> is an object which can | |||
| contain the following properties. Note that these properties | |||
| are exactly the same as the properties available in methods | |||
| <code>DataSet.get</code> and <code>DataView.get</code>. | |||
| <table class="options"> | |||
| <tr> | |||
| <th>Name</th> | |||
| <th>Type</th> | |||
| <th>Default</th> | |||
| <th>Description</th> | |||
| </tr> | |||
| <tr> | |||
| <td>convert</td> | |||
| <td>Object.<String, String></td> | |||
| <td>none</td> | |||
| <td> | |||
| An object containing field names as key, and data types as value. | |||
| By default, the type of the properties of an item are left | |||
| unchanged. When a field type is specified, this field in the | |||
| items will be converted to the specified type. This can be used | |||
| for example to convert ISO strings containing a date to a | |||
| JavaScript Date object, or convert strings to numbers or vice | |||
| versa. The available data types are listed in section | |||
| <a href="dataset.html#Data_Types">Data Types</a>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>fields</td> | |||
| <td>String[ ] | Object.<String, String></td> | |||
| <td>none</td> | |||
| <td> | |||
| An array with field names, or an object with current field name and | |||
| new field name that the field is returned as. | |||
| By default, all properties of the items are emitted. | |||
| When <code>fields</code> is defined, only the properties | |||
| whose name is specified in <code>fields</code> will be included | |||
| in the returned items. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>filter</td> | |||
| <td>function</td> | |||
| <td>none</td> | |||
| <td>Items can be filtered on specific properties by providing a filter | |||
| function. A filter function is executed for each of the items in the | |||
| DataSet, and is called with the item as parameter. The function must | |||
| return a boolean. All items for which the filter function returns | |||
| true will be emitted. | |||
| See also section <a href="dataset.html#Data_Filtering">Data Filtering</a>.</td> | |||
| </tr> | |||
| </table> | |||
| </li> | |||
| </ul> | |||
| <h2 id="Methods">Methods</h2> | |||
| <p>DataView contains the following methods.</p> | |||
| <table class="methods"> | |||
| <tr> | |||
| <th>Method</th> | |||
| <th>Return Type</th> | |||
| <th>Description</th> | |||
| </tr> | |||
| <tr> | |||
| <td> | |||
| get([options] [, data])<br> | |||
| get(id [,options] [, data])<br> | |||
| get(ids [, options] [, data]) | |||
| </td> | |||
| <td>Object | Array</td> | |||
| <td> | |||
| Get a single item, multiple items, or all items from the DataView. | |||
| Usage examples can be found in section <a href="#Getting_Data">Getting Data</a>, and the available <code>options</code> are described in section <a href="#Data_Selection">Data Selection</a>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td> | |||
| getDataSet() | |||
| </td> | |||
| <td>DataSet</td> | |||
| <td> | |||
| Get the DataSet to which the DataView is connected. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td> | |||
| getIds([options]) | |||
| </td> | |||
| <td>Number[]</td> | |||
| <td> | |||
| Get ids of all items or of a filtered set of items. | |||
| Available <code>options</code> are described in section <a href="dataset.html#Data_Selection">Data Selection</a>, except that options <code>fields</code> and <code>type</code> are not applicable in case of <code>getIds</code>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>off(event, callback)</td> | |||
| <td>none</td> | |||
| <td> | |||
| Unsubscribe from an event, remove an event listener. See section <a href="#Subscriptions">Subscriptions</a>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>on(event, callback)</td> | |||
| <td>none</td> | |||
| <td> | |||
| Subscribe to an event, add an event listener. See section <a href="#Subscriptions">Subscriptions</a>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>refresh()</td> | |||
| <td>none</td> | |||
| <td> | |||
| Refresh the filter results of a DataView. Useful when the filter function contains dynamic properties, like: | |||
| <pre class="prettyprint lang-js">var data = new vis.DataSet(...); | |||
| var view = new vis.DataView(data, { | |||
| filter: function (item) { | |||
| return item.value > threshold; | |||
| } | |||
| });</pre> | |||
| In this example, <code>threshold</code> is an external parameter. When the value of <code>threshold</code> changes, the DataView must be notified that the filter results may have changed by calling <code>DataView.refresh()</code>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td> | |||
| setDataSet(data) | |||
| </td> | |||
| <td>none</td> | |||
| <td> | |||
| Replace the DataSet of the DataView. Parameter <code>data</code> can be a DataSet or a DataView. | |||
| </td> | |||
| </tr> | |||
| </table> | |||
| <h2 id="Properties">Properties</h2> | |||
| <p>DataView contains the following properties.</p> | |||
| <table> | |||
| <colgroup> | |||
| <col width="200"> | |||
| </colgroup> | |||
| <tr> | |||
| <th>Property</th> | |||
| <th>Type</th> | |||
| <th>Description</th> | |||
| </tr> | |||
| <tr> | |||
| <td>length</td> | |||
| <td>Number</td> | |||
| <td>The number of items in the DataView.</td> | |||
| </tr> | |||
| </table> | |||
| <h2 id="Getting_Data">Getting Data</h2> | |||
| <p> | |||
| Data of the DataView can be retrieved using the method <code>get</code>. | |||
| </p> | |||
| <pre class="prettyprint lang-js"> | |||
| var items = view.get(); | |||
| </pre> | |||
| <p> | |||
| Data of a DataView can be filtered and formatted again, in exactly the | |||
| same way as in a DataSet. See sections | |||
| <a href="dataset.html#Data_Manipulation">Data Manipulation</a> and | |||
| <a href="dataset.html#Data_Selection">Data Selection</a> for more | |||
| information. | |||
| </p> | |||
| <pre class="prettyprint lang-js"> | |||
| var items = view.get({ | |||
| fields: ['id', 'score'], | |||
| filter: function (item) { | |||
| return (item.score > 50); | |||
| } | |||
| }); | |||
| </pre> | |||
| <h2 id="Subscriptions">Subscriptions</h2> | |||
| <p> | |||
| One can subscribe on changes in the DataView. Subscription works exactly | |||
| the same as for DataSets. See the documentation on | |||
| <a href="dataset.html#Subscriptions">subscriptions in a DataSet</a> | |||
| for more information. | |||
| </p> | |||
| <pre class="prettyprint lang-js"> | |||
| // create a DataSet and a view on the data set | |||
| var data = new vis.DataSet(); | |||
| var view = new vis.DataView({ | |||
| filter: function (item) { | |||
| return (item.group == 2); | |||
| } | |||
| }); | |||
| // subscribe to any change in the DataView | |||
| view.on('*', function (event, properties, senderId) { | |||
| console.log('event:', event, 'properties:', properties, 'senderId:', senderId); | |||
| }); | |||
| // add, update, and remove data in the DataSet... | |||
| </pre> | |||
| </div> | |||
| <!-- Bootstrap core JavaScript | |||
| ================================================== --> | |||
| <!-- Placed at the end of the document so the pages load faster --> | |||
| <script src="../js/jquery.min.js"></script> | |||
| <script src="../js/bootstrap.min.js"></script> | |||
| <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> | |||
| <script src="../js/ie10-viewport-bug-workaround.js"></script> | |||
| @ -0,0 +1,732 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="en"><head> | |||
| <meta charset="utf-8"> | |||
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> | |||
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |||
| <meta name="description" content=""> | |||
| <meta name="author" content=""> | |||
| <link rel="icon" HREF="favicon.ico"> | |||
| <title>graph3d - vis.js - A dynamic, browser based visualization library.</title> | |||
| <!-- Bootstrap core CSS --> | |||
| <link href="../css/bootstrap.css" rel="stylesheet"> | |||
| <link href="../css/style.css" rel="stylesheet"> | |||
| <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> | |||
| <!--[if lt IE 9]> | |||
| <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> | |||
| <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> | |||
| <![endif]--> | |||
| <link href="../css/prettify.css" type="text/css" rel="stylesheet"/> | |||
| <script type="text/javascript" src="../js/googleAnalytics.js"></script> | |||
| <script type="text/javascript" src="../js/prettify/prettify.js"></script> | |||
| <script src="../js/smooth-scroll.min.js"></script> | |||
| <script language="JavaScript"> | |||
| smoothScroll.init(); | |||
| </script> | |||
| <script type="text/javascript" src="../js/toggleTable.js"></script> | |||
| </head> | |||
| <body onload="prettyPrint();"> | |||
| <div class="navbar-wrapper"> | |||
| <div class="container"> | |||
| <nav class="navbar navbar-inverse navbar-static-top" role="navigation"> | |||
| <div class="container"> | |||
| <div class="navbar-header"> | |||
| <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" | |||
| aria-expanded="false" aria-controls="navbar"> | |||
| <span class="sr-only">Toggle navigation</span> | |||
| <span class="icon-bar"></span> | |||
| <span class="icon-bar"></span> | |||
| <span class="icon-bar"></span> | |||
| </button> | |||
| <a class="navbar-brand hidden-sm" href="./index.html">vis.js</a> | |||
| </div> | |||
| <div id="navbar" class="navbar-collapse collapse"> | |||
| <ul class="nav navbar-nav"> | |||
| <li><a href="http://www.visjs.org/index.html#modules">Modules</a></li> | |||
| <li class="active"><a href="./docs/index.html" target="_blank">Documentation <img class="icon" | |||
| src="../img/external-link-icons/external-link-icon-white.png"></a> | |||
| </li> | |||
| <li><a href="http://www.visjs.org/blog.html">Blog</a></li> | |||
| <li><a href="http://www.visjs.org/index.html#download_install">Download</a></li> | |||
| <li><a href="http://www.visjs.org/showcase/index.html">Showcase</a></li> | |||
| <li><a href="http://www.visjs.org/index.html#contribute">Contribute</a></li> | |||
| <li><a href="http://www.visjs.org/featureRequests.html">Feature requests</a></li> | |||
| <li><a href="http://www.visjs.org/index.html#licenses">License</a></li> | |||
| </ul> | |||
| </div> | |||
| </div> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| <a href="https://github.com/almende/vis" class="hidden-xs hidden-sm hidden-md"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a> | |||
| <div class="container full"> | |||
| <h1>Graph3d</h1> | |||
| <h2 id="Overview">Overview</h2> | |||
| <p> | |||
| Graph3d is an interactive visualization chart to draw data in a three dimensional | |||
| graph. You can freely move and zoom in the graph by dragging and scrolling in the | |||
| window. Graph3d also supports animation of a graph. | |||
| </p> | |||
| <p> | |||
| Graph3d uses <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Canvas">HTML canvas</a> | |||
| to render graphs, and can render up to a few thousands of data points smoothly. | |||
| </p> | |||
| <h2 id="Contents">Contents</h2> | |||
| <ul> | |||
| <li><a href="#Overview">Overview</a></li> | |||
| <li><a href="#Loading">Loading</a></li> | |||
| <li><a href="#Data_Format">Data Format</a></li> | |||
| <li><a href="#Configuration_Options">Configuration Options</a></li> | |||
| <li><a href="#Methods">Methods</a></li> | |||
| <li><a href="#Events">Events</a></li> | |||
| <li><a href="#Data_Policy">Data Policy</a></li> | |||
| </ul> | |||
| <h2 id="Example">Example</h2> | |||
| <p> | |||
| The following code shows how to create a Graph3d and provide it with data. | |||
| More examples can be found in the <a href="../examples">examples</a> directory. | |||
| </p> | |||
| <pre class="prettyprint lang-html"> | |||
| <!DOCTYPE HTML> | |||
| <html> | |||
| <head> | |||
| <title>Graph 3D demo</title> | |||
| <style> | |||
| body {font: 10pt arial;} | |||
| </style> | |||
| <script type="text/javascript" src="../../dist/vis.js"></script> | |||
| <script type="text/javascript"> | |||
| var data = null; | |||
| var graph = null; | |||
| function custom(x, y) { | |||
| return (Math.sin(x/50) * Math.cos(y/50) * 50 + 50); | |||
| } | |||
| // Called when the Visualization API is loaded. | |||
| function drawVisualization() { | |||
| // Create and populate a data table. | |||
| var data = new vis.DataSet(); | |||
| // create some nice looking data with sin/cos | |||
| var steps = 50; // number of datapoints will be steps*steps | |||
| var axisMax = 314; | |||
| var axisStep = axisMax / steps; | |||
| for (var x = 0; x < axisMax; x+=axisStep) { | |||
| for (var y = 0; y < axisMax; y+=axisStep) { | |||
| var value = custom(x, y); | |||
| data.add({ | |||
| x: x, | |||
| y: y, | |||
| z: value, | |||
| style: value | |||
| }); | |||
| } | |||
| } | |||
| // specify options | |||
| var options = { | |||
| width: '600px', | |||
| height: '600px', | |||
| style: 'surface', | |||
| showPerspective: true, | |||
| showGrid: true, | |||
| showShadow: false, | |||
| keepAspectRatio: true, | |||
| verticalRatio: 0.5 | |||
| }; | |||
| // create a graph3d | |||
| var container = document.getElementById('mygraph'); | |||
| graph3d = new vis.Graph3d(container, data, options); | |||
| } | |||
| </script> | |||
| </head> | |||
| <body onload="drawVisualization();"> | |||
| <div id="mygraph"></div> | |||
| </body> | |||
| </html> | |||
| </pre> | |||
| <h2 id="Loading">Loading</h2> | |||
| <p> | |||
| The class name of the Graph3d is <code>vis.Graph3d</code>. | |||
| When constructing a Graph3d, an HTML DOM container must be provided to attach | |||
| the graph to. Optionally, data an options can be provided. | |||
| Data is a vis <code>DataSet</code> or an <code>Array</code>, described in | |||
| section <a href="#Data_Format">Data Format</a>. | |||
| Options is a name-value map in the JSON format. The available options | |||
| are described in section <a href="#Configuration_Options">Configuration Options</a>. | |||
| </p> | |||
| <pre class="prettyprint lang-js">var graph = new vis.Graph3d(container [, data] [, options]);</pre> | |||
| <p> | |||
| Data and options can be set or changed later on using the functions | |||
| <code>Graph3d.setData(data)</code> and <code>Graph3d.setOptions(options)</code>. | |||
| </p> | |||
| <h2 id="Data_Format">Data Format</h2> | |||
| <p> | |||
| Graph3d can load data from an <code>Array</code>, a <code>DataSet</code> or a <code>DataView</code>. | |||
| JSON objects are added to this DataSet by using the <code>add()</code> function. | |||
| Data points must have properties <code>x</code>, <code>y</code>, and <code>z</code>, | |||
| and can optionally have a property <code>style</code> and <code>filter</code>. | |||
| <h3>Definition</h3> | |||
| <p> | |||
| The DataSet JSON objects are defined as: | |||
| </p> | |||
| <table class="properties"> | |||
| <tr> | |||
| <th>Name</th> | |||
| <th>Type</th> | |||
| <th>Required</th> | |||
| <th>Description</th> | |||
| </tr> | |||
| <tr> | |||
| <td>x</td> | |||
| <td>number</td> | |||
| <td>yes</td> | |||
| <td>Location on the x-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>y</td> | |||
| <td>number</td> | |||
| <td>yes</td> | |||
| <td>Location on the y-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>z</td> | |||
| <td>number</td> | |||
| <td>yes</td> | |||
| <td>Location on the z-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>style</td> | |||
| <td>number</td> | |||
| <td>no</td> | |||
| <td>The data value, required for graph styles <code>dot-color</code> and | |||
| <code>dot-size</code>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>filter</td> | |||
| <td>*</td> | |||
| <td>no</td> | |||
| <td>Filter values used for the animation. | |||
| This column may have any type, such as a number, string, or Date.</td> | |||
| </tr> | |||
| </table> | |||
| <h2 id="Configuration_Options">Configuration Options</h2> | |||
| <p> | |||
| Options can be used to customize the graph. Options are defined as a JSON object. | |||
| All options are optional. | |||
| </p> | |||
| <pre class="prettyprint lang-js"> | |||
| var options = { | |||
| width: '100%', | |||
| height: '400px', | |||
| style: 'surface' | |||
| }; | |||
| </pre> | |||
| <p> | |||
| The following options are available. | |||
| </p> | |||
| <table class="options"> | |||
| <tr> | |||
| <th>Name</th> | |||
| <th>Type</th> | |||
| <th>Default</th> | |||
| <th>Description</th> | |||
| </tr> | |||
| <tr> | |||
| <td>animationInterval</td> | |||
| <td>number</td> | |||
| <td>1000</td> | |||
| <td>The animation interval in milliseconds. This determines how fast | |||
| the animation runs.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>animationPreload</td> | |||
| <td>boolean</td> | |||
| <td>false</td> | |||
| <td>If false, the animation frames are loaded as soon as they are requested. | |||
| if <code>animationPreload</code> is true, the graph will automatically load | |||
| all frames in the background, resulting in a smoother animation as soon as | |||
| all frames are loaded. The load progress is shown on screen.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>animationAutoStart</td> | |||
| <td>boolean</td> | |||
| <td>false</td> | |||
| <td>If true, the animation starts playing automatically after the graph | |||
| is created.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>backgroundColor</td> | |||
| <td>string or Object</td> | |||
| <td>'white'</td> | |||
| <td>The background color for the main area of the chart. | |||
| Can be either a simple HTML color string, for example: 'red' or '#00cc00', | |||
| or an object with the following properties.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>backgroundColor.stroke</td> | |||
| <td>string</td> | |||
| <td>'gray'</td> | |||
| <td>The color of the chart border, as an HTML color string.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>backgroundColor.strokeWidth</td> | |||
| <td>number</td> | |||
| <td>1</td> | |||
| <td>The border width, in pixels.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>backgroundColor.fill</td> | |||
| <td>string</td> | |||
| <td>'white'</td> | |||
| <td>The chart fill color, as an HTML color string.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>cameraPosition</td> | |||
| <td>Object</td> | |||
| <td>{horizontal: 1.0, vertical: 0.5, distance: 1.7}</td> | |||
| <td>Set the initial rotation and position of the camera. | |||
| The object <code>cameraPosition</code> contains three parameters: | |||
| <code>horizontal</code>, <code>vertical</code>, and <code>distance</code>. | |||
| Parameter <code>horizontal</code> is a value in radians and can have any | |||
| value (but normally in the range of 0 and 2*Pi). | |||
| Parameter <code>vertical</code> is a value in radians between 0 and 0.5*Pi. | |||
| Parameter <code>distance</code> is the (normalized) distance from the | |||
| camera to the center of the graph, in the range of 0.71 to 5.0. A | |||
| larger distance puts the graph further away, making it smaller. | |||
| All parameters are optional. | |||
| </tr> | |||
| <tr> | |||
| <td>height</td> | |||
| <td>string</td> | |||
| <td>'400px'</td> | |||
| <td>The height of the graph in pixels or as a percentage.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>keepAspectRatio</td> | |||
| <td>boolean</td> | |||
| <td>true</td> | |||
| <td>If <code>keepAspectRatio</code> is true, the x-axis and the y-axis | |||
| keep their aspect ratio. If false, the axes are scaled such that they | |||
| both have the same, maximum with.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>showAnimationControls</td> | |||
| <td>boolean</td> | |||
| <td>true</td> | |||
| <td>If true, animation controls are created at the bottom of the Graph. | |||
| The animation controls consists of buttons previous, start/stop, next, | |||
| and a slider showing the current frame. | |||
| Only applicable when the provided data contains an animation.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>showGrid</td> | |||
| <td>boolean</td> | |||
| <td>true</td> | |||
| <td>If true, grid lines are draw in the x-y surface (the bottom of the 3d | |||
| graph).</td> | |||
| </tr> | |||
| <tr> | |||
| <td>showPerspective</td> | |||
| <td>boolean</td> | |||
| <td>true</td> | |||
| <td>If true, the graph is drawn in perspective: points and lines which | |||
| are further away are drawn smaller. | |||
| Note that the graph currently does not support a gray colored bottom side | |||
| when drawn in perspective. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>showShadow</td> | |||
| <td>boolean</td> | |||
| <td>false</td> | |||
| <td>Show shadow on the graph.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>style</td> | |||
| <td>string</td> | |||
| <td>'dot'</td> | |||
| <td>The style of the 3d graph. Available styles: | |||
| <code>bar</code>, | |||
| <code>bar-color</code>, | |||
| <code>bar-size</code>, | |||
| <code>dot</code>, | |||
| <code>dot-line</code>, | |||
| <code>dot-color</code>, | |||
| <code>dot-size</code>, | |||
| <code>line</code>, | |||
| <code>grid</code>, | |||
| or <code>surface</code></td> | |||
| </tr> | |||
| <tr> | |||
| <td>tooltip</td> | |||
| <td>boolean | function</td> | |||
| <td>false</td> | |||
| <td>Show a tooltip showing the values of the hovered data point. | |||
| The contents of the tooltip can be customized by providing a callback | |||
| function as <code>tooltip</code>. In this case the function is called | |||
| with an object containing parameters <code>x</code>, | |||
| <code>y</code>, and <code>z</code> argument, | |||
| and must return a string which may contain HTML. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>valueMax</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The maximum value for the value-axis. Only available in combination | |||
| with the styles <code>dot-color</code> and <code>dot-size</code>.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>valueMin</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The minimum value for the value-axis. Only available in combination | |||
| with the styles <code>dot-color</code> and <code>dot-size</code>.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>verticalRatio</td> | |||
| <td>number</td> | |||
| <td>0.5</td> | |||
| <td>A value between 0.1 and 1.0. This scales the vertical size of the graph | |||
| When keepAspectRatio is set to false, and verticalRatio is set to 1.0, | |||
| the graph will be a cube.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>width</td> | |||
| <td>string</td> | |||
| <td>'400px'</td> | |||
| <td>The width of the graph in pixels or as a percentage.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>xBarWidth</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The width of bars in x direction. By default, the width is equal to the distance | |||
| between the data points, such that bars adjoin each other. | |||
| Only applicable for styles <code>'bar'</code> and <code>'bar-color'</code>.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>xCenter</td> | |||
| <td>string</td> | |||
| <td>'55%'</td> | |||
| <td>The horizontal center position of the graph, as a percentage or in | |||
| pixels.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>xMax</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The maximum value for the x-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>xMin</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The minimum value for the x-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>xStep</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>Step size for the grid on the x-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>xValueLabel</td> | |||
| <td>function</td> | |||
| <td>none</td> | |||
| <td>A function for custom formatting of the labels along the x-axis, | |||
| for example <code>function (x) {return (x * 100) + '%'}</code>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>yBarWidth</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The width of bars in y direction. By default, the width is equal to the distance | |||
| between the data points, such that bars adjoin each other. | |||
| Only applicable for styles <code>'bar'</code> and <code>'bar-color'</code>.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>yCenter</td> | |||
| <td>string</td> | |||
| <td>'45%'</td> | |||
| <td>The vertical center position of the graph, as a percentage or in | |||
| pixels.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>yMax</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The maximum value for the y-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>yMin</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The minimum value for the y-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>yStep</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>Step size for the grid on the y-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>yValueLabel</td> | |||
| <td>function</td> | |||
| <td>none</td> | |||
| <td>A function for custom formatting of the labels along the y-axis, | |||
| for example <code>function (y) {return (y * 100) + '%'}</code>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>zMin</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The minimum value for the z-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>zMax</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>The maximum value for the z-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>zStep</td> | |||
| <td>number</td> | |||
| <td>none</td> | |||
| <td>Step size for the grid on the z-axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>zValueLabel</td> | |||
| <td>function</td> | |||
| <td>none</td> | |||
| <td>A function for custom formatting of the labels along the z-axis, | |||
| for example <code>function (z) {return (z * 100) + '%'}</code>. | |||
| </td> | |||
| </tr> | |||
| <tr> | |||
| <td>xLabel</td> | |||
| <td>String</td> | |||
| <td>x</td> | |||
| <td>Label on the X axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>yLabel</td> | |||
| <td>String</td> | |||
| <td>y</td> | |||
| <td>Label on the Y axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>zLabel</td> | |||
| <td>String</td> | |||
| <td>z</td> | |||
| <td>Label on the Z axis.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>filterLabel</td> | |||
| <td>String</td> | |||
| <td>time</td> | |||
| <td>Label for the filter column.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>legendLabel</td> | |||
| <td>String</td> | |||
| <td>value</td> | |||
| <td>Label for the style description.</td> | |||
| </tr> | |||
| </table> | |||
| <h2 id="Methods">Methods</h2> | |||
| <p> | |||
| Graph3d supports the following methods. | |||
| </p> | |||
| <table class="methods"> | |||
| <tr> | |||
| <th>Method</th> | |||
| <th>Return Type</th> | |||
| <th>Description</th> | |||
| </tr> | |||
| <tr> | |||
| <td>animationStart()</td> | |||
| <td>none</td> | |||
| <td>Start playing the animation. | |||
| Only applicable when animation data is available.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>animationStop()</td> | |||
| <td>none</td> | |||
| <td>Stop playing the animation. | |||
| Only applicable when animation data is available.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>getCameraPosition()</td> | |||
| <td>An object with parameters <code>horizontal</code>, | |||
| <code>vertical</code> and <code>distance</code></td> | |||
| <td>Returns an object with parameters <code>horizontal</code>, | |||
| <code>vertical</code> and <code>distance</code>, | |||
| which each one of them is a number, representing the rotation and position | |||
| of the camera.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>redraw()</td> | |||
| <td>none</td> | |||
| <td>Redraw the graph. Useful after the camera position is changed externally, | |||
| when data is changed, or when the layout of the webpage changed.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>setData(data)</td> | |||
| <td>none</td> | |||
| <td>Replace the data in the Graph3d.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>setOptions(options)</td> | |||
| <td>none</td> | |||
| <td>Update options of Graph3d. | |||
| The provided options will be merged with current options.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>setSize(width, height)</td> | |||
| <td>none</td> | |||
| <td>Parameters <code>width</code> and <code>height</code> are strings, | |||
| containing a new size for the graph. Size can be provided in pixels | |||
| or in percentages.</td> | |||
| </tr> | |||
| <tr> | |||
| <td>setCameraPosition (pos)</td> | |||
| <td>{horizontal: 1.0, vertical: 0.5, distance: 1.7}</td> | |||
| <td>Set the rotation and position of the camera. Parameter <code>pos</code> | |||
| is an object which contains three parameters: <code>horizontal</code>, | |||
| <code>vertical</code>, and <code>distance</code>. | |||
| Parameter <code>horizontal</code> is a value in radians and can have any | |||
| value (but normally in the range of 0 and 2*Pi). | |||
| Parameter <code>vertical</code> is a value in radians between 0 and 0.5*Pi. | |||
| Parameter <code>distance</code> is the (normalized) distance from the | |||
| camera to the center of the graph, in the range of 0.71 to 5.0. A | |||
| larger distance puts the graph further away, making it smaller. | |||
| All parameters are optional. | |||
| </td> | |||
| </tr> | |||
| </table> | |||
| <h2 id="Events">Events</h2> | |||
| <p> | |||
| Graph3d fires events after the camera position has been changed. | |||
| The event can be catched by creating a listener. | |||
| Here an example on how to catch a <code>cameraPositionChange</code> event. | |||
| </p> | |||
| <pre class="prettyprint lang-js"> | |||
| function onCameraPositionChange(event) { | |||
| alert('The camera position changed to:\n' + | |||
| 'Horizontal: ' + event.horizontal + '\n' + | |||
| 'Vertical: ' + event.vertical + '\n' + | |||
| 'Distance: ' + event.distance); | |||
| } | |||
| // assuming var graph3d = new vis.Graph3d(document.getElementById('mygraph')); | |||
| graph3d.on('cameraPositionChange', onCameraPositionChange); | |||
| </pre> | |||
| <p> | |||
| The following events are available. | |||
| </p> | |||
| <table class="events"> | |||
| <tr> | |||
| <th>name</th> | |||
| <th>Properties</th> | |||
| <th>Description</th> | |||
| </tr> | |||
| <tr> | |||
| <td>cameraPositionChange</td> | |||
| <td> | |||
| <ul> | |||
| <li><code>horizontal</code>: Number. The horizontal angle of the camera.</li> | |||
| <li><code>vertical</code>: Number. The vertical angle of the camera.</li> | |||
| <li><code>distance</code>: Number. The distance of the camera to the center of the graph.</li> | |||
| </ul> | |||
| </td> | |||
| <td>The camera position changed. Fired after the user modified the camera position | |||
| by moving (dragging) the graph, or by zooming (scrolling), | |||
| but not after a call to <code>setCameraPosition</code> method. | |||
| The new camera position can be retrieved by calling the method | |||
| <code>getCameraPosition</code>.</td> | |||
| </tr> | |||
| </table> | |||
| <h2 id="Data_Policy">Data Policy</h2> | |||
| <p> | |||
| All code and data are processed and rendered in the browser. No data is sent to any server. | |||
| </p> | |||
| </div> | |||
| <!-- Bootstrap core JavaScript | |||
| ================================================== --> | |||
| <!-- Placed at the end of the document so the pages load faster --> | |||
| <script src="../js/jquery.min.js"></script> | |||
| <script src="../js/bootstrap.min.js"></script> | |||
| <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> | |||
| <script src="../js/ie10-viewport-bug-workaround.js"></script> | |||
| @ -1,6 +1,6 @@ | |||
| let Hammer = require('../../../module/hammer'); | |||
| let hammerUtil = require('../../../hammerUtil'); | |||
| let util = require('../../../util'); | |||
| let Hammer = require('../module/hammer'); | |||
| let hammerUtil = require('../hammerUtil'); | |||
| let util = require('../util'); | |||
| class ColorPicker { | |||
| constructor(pixelRatio = 1) { | |||