{
    "doc": {
        "roots": {
            "references": [
                {
                    "attributes": {
                        "text": "<style>\nh1 {\n    margin: 2em 0 0 0;\n    color: #2e484c;\n    font-family: 'Julius Sans One', sans-serif;\n    font-size: 1.8em;\n    text-transform: uppercase;\n}\na:link {\n    font-weight: bold;\n    text-decoration: none;\n    color: #0d8ba1;\n}\na:visited {\n    font-weight: bold;\n    text-decoration: none;\n    color: #1a5952;\n}\na:hover, a:focus, a:active {\n    text-decoration: underline;\n    color: #9685BA;\n}\np {\n    font: \"Libre Baskerville\", sans-serif;\n    text-align: justify;\n    text-justify: inter-word;\n}\ncode {\n    color: #336699;\n}\n<\/style>\n\n<h1>3d plots with Bokeh<\/h1>\n\n<p>\nThis example shows how Bokeh custom extension models can be used with\nBokeh server applications. While there are many great features built\ninto Bokeh, with custom extensions, and the Bokeh server, it becomes\nsimple to connect powerful Python tools for data analytics to almost\nany web tool, widget, or framework, even if it is not built into\nBokeh natively.\n<\/p>\n\n<p>\nThis example demonstrates connecting a Bokeh <code>ColumnDataSource<\/code>\nto the <a href=\"http://visjs.org/graph3d_examples.html\">VisJS Graph3d<\/a>\nlibrary. The 3d plot below is being continuously updated by periodic\ncallbacks in a Bokeh server application. You can pan to rotate the figure,\nscroll or pinch to zoom.\n<\/p>",
                        "width": 600
                    },
                    "id": "4806d438-e2fd-42f6-9705-85b7ffa01cfd",
                    "type": "Div"
                },
                {
                    "attributes": {
                        "children": [
                            {
                                "id": "a167d499-2b10-4aea-a47e-021e0abb69aa",
                                "type": "WidgetBox"
                            },
                            {
                                "id": "ddb7a739-4ec4-4750-b485-8712c92f4519",
                                "type": "Surface3d"
                            }
                        ]
                    },
                    "id": "30c276a7-ec52-4f5b-a14a-178414f7ee22",
                    "type": "Column"
                },
                {
                    "attributes": {
                        "callback": null,
                        "column_names": [
                            "x",
                            "y",
                            "z",
                            "color"
                        ],
                        "data": {
                            "color": {
                                "__ndarray__": "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",
                                "dtype": "float64",
                                "shape": [
                                    225
                                ]
                            },
                            "x": [
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280,
                                0,
                                20,
                                40,
                                60,
                                80,
                                100,
                                120,
                                140,
                                160,
                                180,
                                200,
                                220,
                                240,
                                260,
                                280
                            ],
                            "y": [
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                0,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                20,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                40,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                60,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                80,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                100,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                120,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                140,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                160,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                180,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                200,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                220,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                240,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                260,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280,
                                280
                            ],
                            "z": {
                                "__ndarray__": "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",
                                "dtype": "float64",
                                "shape": [
                                    225
                                ]
                            }
                        }
                    },
                    "id": "afb36290-296b-4d24-bb61-26925d86d78e",
                    "type": "ColumnDataSource"
                },
                {
                    "attributes": {
                        "children": [
                            {
                                "id": "4806d438-e2fd-42f6-9705-85b7ffa01cfd",
                                "type": "Div"
                            }
                        ],
                        "width": 600
                    },
                    "id": "a167d499-2b10-4aea-a47e-021e0abb69aa",
                    "type": "WidgetBox"
                },
                {
                    "attributes": {
                        "color": "color",
                        "data_source": {
                            "id": "afb36290-296b-4d24-bb61-26925d86d78e",
                            "type": "ColumnDataSource"
                        },
                        "x": "x",
                        "y": "y",
                        "z": "z"
                    },
                    "id": "ddb7a739-4ec4-4750-b485-8712c92f4519",
                    "type": "Surface3d"
                }
            ],
            "root_ids": [
                "30c276a7-ec52-4f5b-a14a-178414f7ee22"
            ]
        },
        "title": "Surface3d",
        "version": "0.12.6"
    }
}

