File: rpy.html

package info (click to toggle)
jsxgraph 1.10.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 24,804 kB
  • sloc: javascript: 82,299; xml: 5,869; java: 1,072; php: 281; makefile: 184; python: 174; cpp: 76; sh: 12
file content (84 lines) | stat: -rw-r--r-- 3,481 bytes parent folder | download | duplicates (2)
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
<html>
<head>
   <title>JSXGraph example: R</title>
   <link rel="stylesheet" type="text/css" href="../distrib/jsxgraph.css" />
   <script type="text/javascript" src="jquery-3.5.1.min.js"></script>
   <script type="text/javascript" src="../distrib/jsxgraphcore.js"></script>
</head>
<body>
<h2>Use R as a JXGServerModule</h2>
<div style="width:800px">
  <div id="jxgbox" class="jxgbox" style="width:600px; height:450px; float:left"></div>
</div>
<div id="debug" style="display:block;"></div>
<script type="text/javascript">
/* <![CDATA[ */

    var l = [], g = [], board, mean, sd, median, mad, hook;

    JXG.Server.loadModule('RStats');

    board = JXG.JSXGraph.initBoard('jxgbox', {boundingbox: [-2, 10, 12, -10], axis: true, grid: false});
    l[0] = board.create('segment', [[1, -8], [1, 8]], {visible: false});
    l[1] = board.create('segment', [[3, -8], [3, 8]], {visible: false});
    l[2] = board.create('segment', [[5, -8], [5, 8]], {visible: false});
    l[3] = board.create('segment', [[7, -8], [7, 8]], {visible: false});
    l[4] = board.create('segment', [[9, -8], [9, 8]], {visible: false});
    g[0] = board.create('glider', [1, -5, l[0]], {name: 'A'});
    g[1] = board.create('glider', [3, 3, l[1]], {name: 'B'});
    g[2] = board.create('glider', [5, -2, l[2]], {name: 'C'});
    g[3] = board.create('glider', [7, -4, l[3]], {name: 'D'});
    g[4] = board.create('glider', [9, 7, l[4]], {name: 'E'});

    mean = board.create('line', [[0, 0], [1, 0]], {name: 'mean', strokeColor: 'red'});
    sd = board.create('line', [[0, 0], [1, 0]], {name: 'sd', strokeColor: 'green'});
    median = board.create('line', [[0, 0], [1, 0]], {name: 'median', strokeColor: 'blue'});
    mad = board.create('line', [[0, 0], [1, 0]], {name: 'mad', strokeColor: 'black'});

    var cb = function (data) {
        try {
            if(data.mean) {
                mean.point1.setPositionDirectly(JXG.COORDS_BY_USER, [0, data.mean]);
                mean.point2.setPositionDirectly(JXG.COORDS_BY_USER, [1, data.mean]);
            }
            if(data.sd) {
                sd.point1.setPositionDirectly(JXG.COORDS_BY_USER, [0, data.sd]);
                sd.point2.setPositionDirectly(JXG.COORDS_BY_USER, [1, data.sd]);
            }
            if(data.median) {
                median.point1.setPositionDirectly(JXG.COORDS_BY_USER, [0, data.median]);
                median.point2.setPositionDirectly(JXG.COORDS_BY_USER, [1, data.median]);
            }
            if(data.mad) {
                mad.point1.setPositionDirectly(JXG.COORDS_BY_USER, [0, data.mad]);
                mad.point2.setPositionDirectly(JXG.COORDS_BY_USER, [1, data.mad]);
            }
        } catch (e) { $('#debug').html(e); }
        board.update();
    };

    updatedata = function () {
        var data = [g[0].Y(), g[1].Y(), g[2].Y(), g[3].Y(), g[4].Y()];
        JXG.Server.modules.RStats.all(data, cb, false);

        mean.setProperty({strokeColor: 'red'});
        sd.setProperty({strokeColor: 'green'});
        median.setProperty({strokeColor: 'blue'});
        mad.setProperty({strokeColor: 'black'});
    };
    board.addHook(updatedata, 'mouseup');

    preupdate = function () {
        mean.setProperty({strokeColor: 'grey'});
        sd.setProperty({strokeColor: 'grey'});
        median.setProperty({strokeColor: 'grey'});
        mad.setProperty({strokeColor: 'grey'});
    };
    board.addHook(preupdate, 'mousedown');

    updatedata();

  /* ]]> */
  </script>
</body>
</html>