summaryrefslogtreecommitdiff
path: root/www/lib/vis/examples/graph3d/12_custom_labels.html
blob: b6fe8176186ea6f378b98653277e233a6ecdd4e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<!doctype html>
<html>
<head>
  <title>Graph 3D Axis Ticks</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/Math.PI) * Math.cos(y/Math.PI) * 10 + 10) * 1000;
    }

    // Called when the Visualization API is loaded.
    function drawVisualization() {
      var style = document.getElementById('style').value;
      var withValue = ['bar-color', 'bar-size', 'dot-size', 'dot-color'].indexOf(style) != -1;

      // Create and populate a data table.
      data = new vis.DataSet();

      // create some nice looking data with sin/cos
      var steps = 5;  // number of datapoints will be steps*steps
      var axisMax = 10;
      var axisStep = axisMax / steps;
      for (var x = 0; x <= axisMax; x+=axisStep) {
        for (var y = 0; y <= axisMax; y+=axisStep) {
          var z = custom(x,y);
          if (withValue) {
            var value = (y - x);
            data.add({x:x, y:y, z: z, style:value});
          }
          else {
            data.add({x:x, y:y, z: z});
          }
        }
      }

      // specify options
      var options = {
        width:  '600px',
        height: '600px',
        style: style,
        showPerspective: true,
        showGrid: true,
        showShadow: false,

        // Option tooltip can be true, false, or a function returning a string with HTML contents
        //tooltip: true,
        tooltip: function (point) {
          // parameter point contains properties x, y, z
          return 'value: <b>' + point.z + '</b>';
        },
        
        xValueLabel: function(value) {
            return vis.moment().add(value, 'days').format('DD MMM');
        },
        
        yValueLabel: function(value) {
            return value * 10 + '%';
        },

        zValueLabel: function(value) {
            return value / 1000 + 'K';
        },

        keepAspectRatio: true,
        verticalRatio: 0.5
      };

      var camera = graph ? graph.getCameraPosition() : null;

      // create our graph
      var container = document.getElementById('mygraph');
      graph = new vis.Graph3d(container, data, options);

      if (camera) graph.setCameraPosition(camera); // restore camera position

      document.getElementById('style').onchange = drawVisualization;
    }
  </script>
  <script src="../googleAnalytics.js"></script>
</head>

<body onload="drawVisualization()">

<p>
  <label for="style"> Style:
    <select id="style">
      <option value="bar">bar</option>
      <option value="bar-color">bar-color</option>
      <option value="bar-size">bar-size</option>

      <option value="dot">dot</option>
      <option value="dot-line">dot-line</option>
      <option value="dot-color">dot-color</option>
      <option value="dot-size">dot-size</option>

      <option value="grid">grid</option>
      <option value="line">line</option>
      <option value="surface">surface</option>
    </select>
  </label>
</p>

<div id="mygraph"></div>

<div id="info"></div>
</body>
</html>