MarcSkovMadsen
commited on
Commit
•
4ece8a6
1
Parent(s):
0480fcc
Upload 8 files
Browse files- crossfiltering_holoviews_bokeh.html +361 -0
- crossfiltering_holoviews_bokeh.js +190 -0
- crossfiltering_holoviews_bokeh.py +85 -0
- crossfiltering_holoviews_plotly.html +355 -0
- crossfiltering_holoviews_plotly.js +205 -0
- crossfiltering_holoviews_plotly.py +100 -0
- index.js +190 -0
- issue.html +355 -0
crossfiltering_holoviews_bokeh.html
ADDED
@@ -0,0 +1,361 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en" >
|
3 |
+
<head>
|
4 |
+
<meta charset="utf-8">
|
5 |
+
<title>Linked Brushing with HoloViews and Bokeh</title>
|
6 |
+
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/apple-touch-icon.png">
|
7 |
+
<link rel="icon" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/favicon.ico" type=""><meta name="name" content="Linked Brushing with HoloViews and Bokeh"> <style>
|
8 |
+
html, body {
|
9 |
+
display: flow-root;
|
10 |
+
box-sizing: border-box;
|
11 |
+
height: 100%;
|
12 |
+
margin: 0;
|
13 |
+
padding: 0;
|
14 |
+
}
|
15 |
+
</style>
|
16 |
+
<style>
|
17 |
+
|
18 |
+
.main .card-margin.stretch_both {
|
19 |
+
height: calc(50vh - 65px) !important;
|
20 |
+
}
|
21 |
+
|
22 |
+
</style>
|
23 |
+
|
24 |
+
<style type="text/css">
|
25 |
+
:host(.pn-loading),
|
26 |
+
.pn-loading {
|
27 |
+
overflow: hidden;
|
28 |
+
}
|
29 |
+
|
30 |
+
:host(.pn-loading):before,
|
31 |
+
.pn-loading:before {
|
32 |
+
position: absolute;
|
33 |
+
height: 100%;
|
34 |
+
width: 100%;
|
35 |
+
content: '';
|
36 |
+
z-index: 1000;
|
37 |
+
background-color: rgb(255, 255, 255, 0.5);
|
38 |
+
border-color: lightgray;
|
39 |
+
background-repeat: no-repeat;
|
40 |
+
background-position: center;
|
41 |
+
background-size: auto 50%;
|
42 |
+
border-width: 1px;
|
43 |
+
cursor: progress;
|
44 |
+
}
|
45 |
+
|
46 |
+
:host(.pn-loading) .pn-loading-msg,
|
47 |
+
.pn-loading .pn-loading-msg {
|
48 |
+
position: absolute;
|
49 |
+
top: 72%;
|
50 |
+
font-size: 2em;
|
51 |
+
color: black;
|
52 |
+
width: 100%;
|
53 |
+
text-align: center;
|
54 |
+
}
|
55 |
+
|
56 |
+
|
57 |
+
:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
|
58 |
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
|
59 |
+
background-size: auto calc(min(50%, 400px));
|
60 |
+
}
|
61 |
+
</style><script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-3.3.2.min.js"></script>
|
62 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.2.min.js"></script>
|
63 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.2.min.js"></script>
|
64 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.2.min.js"></script>
|
65 |
+
<script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/panel.min.js"></script>
|
66 |
+
|
67 |
+
<script type="text/javascript">
|
68 |
+
Bokeh.set_log_level("info");
|
69 |
+
</script><!-- Template CSS -->
|
70 |
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans">
|
71 |
+
<link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/default.css">
|
72 |
+
<link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast.css">
|
73 |
+
<link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastlisttemplate/fast_list_template.css">
|
74 |
+
<style type="text/css">
|
75 |
+
|
76 |
+
:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
|
77 |
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
|
78 |
+
background-size: auto calc(min(50%, 400px));
|
79 |
+
}
|
80 |
+
</style>
|
81 |
+
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" />
|
82 |
+
|
83 |
+
<style>
|
84 |
+
:root {
|
85 |
+
--background-color: #ffffff;
|
86 |
+
--body-font: Open Sans, sans-serif;
|
87 |
+
--corner-radius: 3;
|
88 |
+
--header-background: #F08080;
|
89 |
+
--header-color: #ffffff;
|
90 |
+
--sidebar-width: 330px;
|
91 |
+
}
|
92 |
+
body {
|
93 |
+
color: #2B2B2B;
|
94 |
+
background-color: var(--background-color);
|
95 |
+
font-family: var(--body-font);
|
96 |
+
}
|
97 |
+
#header a {
|
98 |
+
color: currentColor;
|
99 |
+
}
|
100 |
+
#header-design-provider {
|
101 |
+
--neutral-fill-hover: var(--header-background);
|
102 |
+
--neutral-fill-rest: var(--header-background);
|
103 |
+
--neutral-foreground-rest: var(--header-color);
|
104 |
+
background: var(--header-background);
|
105 |
+
color: var(--header-color);
|
106 |
+
}
|
107 |
+
#sidebar {
|
108 |
+
min-width: var(--sidebar-width);
|
109 |
+
max-width: var(--sidebar-width);
|
110 |
+
}
|
111 |
+
</style>
|
112 |
+
|
113 |
+
<!-- Template JS -->
|
114 |
+
<script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast_template.js"></script>
|
115 |
+
<script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/@microsoft/[email protected]/dist/fast-components.js" type="module"></script>
|
116 |
+
<script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fast/js/fast_design.js" type="module"></script>
|
117 |
+
|
118 |
+
<!-- Fast Script -->
|
119 |
+
<script type="text/javascript">
|
120 |
+
document.addEventListener('DOMContentLoaded', (event) => {
|
121 |
+
const header_design = new window.fastDesignProvider("#header-design-provider");
|
122 |
+
const body_design = window.bodyDesign = new window.fastDesignProvider("#body-design-provider");
|
123 |
+
body_design.setLuminance(1.0);
|
124 |
+
body_design.setAccentColor("#F08080")
|
125 |
+
body_design.setNeutralColor("#000000");
|
126 |
+
header_design.setLuminance(1.0);
|
127 |
+
header_design.setAccentColor("#ffffff");
|
128 |
+
header_design.setNeutralColor("#ffffff");
|
129 |
+
});
|
130 |
+
</script>
|
131 |
+
</head>
|
132 |
+
<body class="pn-loading pn-arc">
|
133 |
+
<fast-design-system-provider id="body-design-provider" use-defaults>
|
134 |
+
<div id="container">
|
135 |
+
<fast-design-system-provider id="header-design-provider">
|
136 |
+
<nav id="header" class="shadow" >
|
137 |
+
<div class="app-header">
|
138 |
+
<a class="title" href="https://awesome-panel.org" > Awesome Panel</a>
|
139 |
+
<span class="title">-</span>
|
140 |
+
<a class="title" href="" >Linked Brushing with HoloViews and Bokeh</a>
|
141 |
+
</div>
|
142 |
+
<div id="header-items">
|
143 |
+
</div>
|
144 |
+
<div class="pn-toggle-theme">
|
145 |
+
<fast-switch id="theme-switch" style="float: right;" onChange="toggleLightDarkTheme('default')" checked>
|
146 |
+
<span slot="checked-message">
|
147 |
+
<svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/></svg>
|
148 |
+
</span>
|
149 |
+
<span slot="unchecked-message">
|
150 |
+
<svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></svg>
|
151 |
+
</span>
|
152 |
+
</fast-switch>
|
153 |
+
<fast-tooltip anchor="theme-switch" position="bottom">
|
154 |
+
Toggle the Theme
|
155 |
+
</fast-tooltip>
|
156 |
+
</div>
|
157 |
+
<div class="pn-busy-container" id="busy-container">
|
158 |
+
<div id="dc61fe4c-8fdd-4524-96d3-a3f35d5781ae" data-root-id="p1016" style="display: contents;"></div>
|
159 |
+
</div>
|
160 |
+
<fast-tooltip anchor="busy-container" position="left">
|
161 |
+
Busy Indicator
|
162 |
+
</fast-tooltip>
|
163 |
+
</nav>
|
164 |
+
</fast-design-system-provider>
|
165 |
+
|
166 |
+
<div class="row" id="content">
|
167 |
+
|
168 |
+
<div class="main" id="main">
|
169 |
+
<div class="card-margin stretch_both">
|
170 |
+
<fast-card class="pn-wrapper">
|
171 |
+
<span class="fullscreen-button" onclick="toggleFullScreen(this)">
|
172 |
+
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 18">
|
173 |
+
<path d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z"/>
|
174 |
+
</svg>
|
175 |
+
</span>
|
176 |
+
<div id="add04605-0627-4b50-86bb-65ced26ec51e" data-root-id="p1017" style="display: contents;"></div>
|
177 |
+
</fast-card>
|
178 |
+
</div>
|
179 |
+
<div class="card-margin stretch_both">
|
180 |
+
<fast-card class="pn-wrapper">
|
181 |
+
<span class="fullscreen-button" onclick="toggleFullScreen(this)">
|
182 |
+
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 18">
|
183 |
+
<path d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z"/>
|
184 |
+
</svg>
|
185 |
+
</span>
|
186 |
+
<div id="e838e2a8-4055-4e77-b73a-6915f363fd82" data-root-id="p1125" style="display: contents;"></div>
|
187 |
+
</fast-card>
|
188 |
+
</div>
|
189 |
+
</div>
|
190 |
+
<fast-dialog id="pn-Modal" hidden>
|
191 |
+
<fast-button class="pn-modal-close" id="pn-closeModal">×</fast-button>
|
192 |
+
<div>
|
193 |
+
</div>
|
194 |
+
</fast-dialog>
|
195 |
+
</div>
|
196 |
+
</div>
|
197 |
+
</fast-design-system-provider>
|
198 |
+
|
199 |
+
<script type="text/javascript">
|
200 |
+
|
201 |
+
</script>
|
202 |
+
|
203 |
+
<script type="text/javascript">
|
204 |
+
function openNav() {
|
205 |
+
document.getElementById("sidebar").classList.remove("hidden");
|
206 |
+
document.getElementById("sidebar-button").onclick = closeNav;
|
207 |
+
}
|
208 |
+
|
209 |
+
function closeNav() {
|
210 |
+
document.getElementById("sidebar").classList.add("hidden");
|
211 |
+
document.getElementById("sidebar-button").onclick = openNav;
|
212 |
+
}
|
213 |
+
|
214 |
+
var modal = document.getElementById("pn-Modal");
|
215 |
+
var span = document.getElementById("pn-closeModal");
|
216 |
+
|
217 |
+
span.onclick = function() {
|
218 |
+
modal.style.display = "none";
|
219 |
+
}
|
220 |
+
|
221 |
+
window.onclick = function(event) {
|
222 |
+
if (event.target == modal) {
|
223 |
+
modal.style.display = "none";
|
224 |
+
}
|
225 |
+
}
|
226 |
+
</script>
|
227 |
+
|
228 |
+
<div id="bbc1b4af-1fa6-45fd-9e80-691b823dc4f1" data-root-id="p1009" style="display: contents;"></div>
|
229 |
+
<div id="c3c73736-69e6-4f43-82ff-dc138844764d" data-root-id="p1012" style="display: contents;"></div>
|
230 |
+
<div id="d0a56b2a-f0e6-40d1-8b8f-3f3a6b1db1cf" data-root-id="p1002" style="display: contents;"></div>
|
231 |
+
<div id="becc99cc-5b2d-4904-9c08-9476a8cc030d" data-root-id="p1013" style="display: contents;"></div>
|
232 |
+
|
233 |
+
|
234 |
+
<script type="text/javascript">
|
235 |
+
const pyodideWorker = new Worker("./crossfiltering_holoviews_bokeh.js");
|
236 |
+
pyodideWorker.busy = false
|
237 |
+
pyodideWorker.queue = []
|
238 |
+
|
239 |
+
function send_change(jsdoc, event) {
|
240 |
+
if (event.setter_id != null && event.setter_id == 'py') {
|
241 |
+
return
|
242 |
+
} else if (pyodideWorker.busy && event.model && event.attr) {
|
243 |
+
let events = []
|
244 |
+
for (const old_event of pyodideWorker.queue) {
|
245 |
+
if (!(old_event.model === event.model && old_event.attr === event.attr)) {
|
246 |
+
events.push(old_event)
|
247 |
+
}
|
248 |
+
}
|
249 |
+
events.push(event)
|
250 |
+
pyodideWorker.queue = events
|
251 |
+
return
|
252 |
+
}
|
253 |
+
const patch = jsdoc.create_json_patch([event])
|
254 |
+
pyodideWorker.busy = true
|
255 |
+
pyodideWorker.postMessage({type: 'patch', patch: patch})
|
256 |
+
}
|
257 |
+
|
258 |
+
pyodideWorker.onmessage = async (event) => {
|
259 |
+
const msg = event.data
|
260 |
+
|
261 |
+
const body = document.getElementsByTagName('body')[0]
|
262 |
+
const loading_msgs = document.getElementsByClassName('pn-loading-msg')
|
263 |
+
if (msg.type === 'idle') {
|
264 |
+
if (pyodideWorker.queue.length) {
|
265 |
+
const patch = pyodideWorker.jsdoc.create_json_patch(pyodideWorker.queue)
|
266 |
+
pyodideWorker.busy = true
|
267 |
+
pyodideWorker.queue = []
|
268 |
+
pyodideWorker.postMessage({type: 'patch', patch: patch})
|
269 |
+
} else {
|
270 |
+
pyodideWorker.busy = false
|
271 |
+
}
|
272 |
+
} else if (msg.type === 'status') {
|
273 |
+
let loading_msg
|
274 |
+
if (loading_msgs.length) {
|
275 |
+
loading_msg = loading_msgs[0]
|
276 |
+
} else if (body.classList.contains('pn-loading')) {
|
277 |
+
loading_msg = document.createElement('div')
|
278 |
+
loading_msg.classList.add('pn-loading-msg')
|
279 |
+
body.appendChild(loading_msg)
|
280 |
+
}
|
281 |
+
if (loading_msg != null) {
|
282 |
+
loading_msg.innerHTML = msg.msg
|
283 |
+
}
|
284 |
+
} else if (msg.type === 'render') {
|
285 |
+
const docs_json = JSON.parse(msg.docs_json)
|
286 |
+
const render_items = JSON.parse(msg.render_items)
|
287 |
+
const root_ids = JSON.parse(msg.root_ids)
|
288 |
+
|
289 |
+
// Remap roots in message to element IDs
|
290 |
+
const root_els = document.querySelectorAll('[data-root-id]')
|
291 |
+
const data_roots = []
|
292 |
+
for (const el of root_els) {
|
293 |
+
el.innerHTML = ''
|
294 |
+
data_roots.push([el.getAttribute('data-root-id'), el.id])
|
295 |
+
}
|
296 |
+
data_roots.sort((a, b) => a[0]<b[0] ? -1: 1)
|
297 |
+
const roots = {}
|
298 |
+
for (let i=0; i<data_roots.length; i++) {
|
299 |
+
roots[root_ids[i]] = data_roots[i][1]
|
300 |
+
}
|
301 |
+
render_items[0]['roots'] = roots
|
302 |
+
render_items[0]['root_ids'] = root_ids
|
303 |
+
|
304 |
+
// Embed content
|
305 |
+
const [views] = await Bokeh.embed.embed_items(docs_json, render_items)
|
306 |
+
|
307 |
+
// Remove loading spinner and message
|
308 |
+
body.classList.remove("pn-loading", "arc")
|
309 |
+
for (const loading_msg of loading_msgs) {
|
310 |
+
loading_msg.remove()
|
311 |
+
}
|
312 |
+
|
313 |
+
// Setup bi-directional syncing
|
314 |
+
pyodideWorker.jsdoc = jsdoc = [...views.roots.values()][0].model.document
|
315 |
+
jsdoc.on_change(send_change.bind(null, jsdoc), false)
|
316 |
+
pyodideWorker.postMessage({'type': 'rendered'})
|
317 |
+
pyodideWorker.postMessage({'type': 'location', location: JSON.stringify(window.location)})
|
318 |
+
} else if (msg.type === 'patch') {
|
319 |
+
pyodideWorker.jsdoc.apply_json_patch(msg.patch, msg.buffers, setter_id='py')
|
320 |
+
}
|
321 |
+
};
|
322 |
+
</script>
|
323 |
+
<script type="application/json" id="p1260">
|
324 |
+
{"bdf6524f-6300-4712-933b-3702aa22cf38":{"version":"3.3.2","title":"Linked Brushing with HoloViews and Bokeh","roots":[{"type":"object","name":"panel.models.location.Location","id":"p1002","attributes":{"name":"location","reload":false}},{"type":"object","name":"panel.models.markup.HTML","id":"p1009","attributes":{"name":"js_area","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1238","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1235","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/fast.css"}}],"width":0,"height":0,"margin":0,"sizing_mode":"fixed","align":"start","disable_math":true}},{"type":"object","name":"panel.models.reactive_html.ReactiveHTML","id":"p1012","attributes":{"name":"actions","subscribed_events":{"type":"set","entries":["dom_event"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1239","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"id":"p1235"}],"margin":0,"align":"start","data":{"type":"object","name":"TemplateActions1","id":"p1010","attributes":{"name":"TemplateActions01026"}},"scripts":{"type":"map","entries":[["open_modal",["document.getElementById(&#x27;pn-Modal&#x27;).style.display = &#x27;block&#x27;"]],["close_modal",["document.getElementById(&#x27;pn-Modal&#x27;).style.display = &#x27;none&#x27;"]]]}}},{"type":"object","name":"panel.models.browser.BrowserInfo","id":"p1013","attributes":{"name":"browser_info"}},{"type":"object","name":"panel.models.markup.HTML","id":"p1016","attributes":{"name":"busy_indicator","css_classes":["loader","light"],"stylesheets":[":host { --loading-spinner-size: 20px; }","\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1240","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1241","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loadingspinner.css"}},{"id":"p1235"}],"min_width":20,"min_height":20,"margin":[5,10],"align":"start"}},{"type":"object","name":"panel.models.layout.Column","id":"p1017","attributes":{"name":"main-140403941563984","tags":["main"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1242","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1243","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/listpanel.css"}},{"id":"p1235"}],"margin":0,"sizing_mode":"stretch_both","align":"start","children":[{"type":"object","name":"Figure","id":"p1048","attributes":{"subscribed_events":{"type":"set","entries":["selectiongeometry","reset"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1244","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"id":"p1235"}],"width":null,"height":null,"margin":[5,10],"sizing_mode":"stretch_both","align":"start","x_range":{"type":"object","name":"Range1d","id":"p1018","attributes":{"tags":[[["sepal_length","sepal_length",null]],[]],"start":3.9399999999999995,"end":8.26,"reset_start":3.9399999999999995,"reset_end":8.26}},"y_range":{"type":"object","name":"Range1d","id":"p1019","attributes":{"tags":[[["sepal_width","sepal_width",null]],{"type":"map","entries":[["invert_yaxis",false],["autorange",false]]}],"start":1.76,"end":4.640000000000001,"reset_start":1.76,"reset_end":4.640000000000001}},"x_scale":{"type":"object","name":"LinearScale","id":"p1058"},"y_scale":{"type":"object","name":"LinearScale","id":"p1059"},"title":{"type":"object","name":"Title","id":"p1051","attributes":{"text_color":"#2B2B2B","text_font":"Open Sans, sans-serif","text_font_size":"1.15em"}},"outline_line_color":"#888888","outline_line_alpha":0.5,"outline_line_width":1,"renderers":[{"type":"object","name":"GlyphRenderer","id":"p1090","attributes":{"data_source":{"type":"object","name":"ColumnDataSource","id":"p1079","attributes":{"selected":{"type":"object","name":"Selection","id":"p1080","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1081"},"data":{"type":"map","entries":[["sepal_length",{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}],["sepal_width",{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]}}},"view":{"type":"object","name":"CDSView","id":"p1091","attributes":{"filter":{"type":"object","name":"AllIndices","id":"p1092"}}},"glyph":{"type":"object","name":"Scatter","id":"p1085","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"selection_glyph":{"type":"object","name":"Scatter","id":"p1087","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"nonselection_glyph":{"type":"object","name":"Scatter","id":"p1086","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"hover_glyph":{"type":"object","name":"Scatter","id":"p1088","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"muted_glyph":{"type":"object","name":"Scatter","id":"p1089","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}}}},{"type":"object","name":"BoxAnnotation","id":"p1096","attributes":{"level":"glyph","visible":false,"left":{"type":"object","name":"Node","id":"p1105","attributes":{"target":"frame","symbol":"left"}},"right":{"type":"object","name":"Node","id":"p1106","attributes":{"target":"frame","symbol":"right"}},"top":{"type":"object","name":"Node","id":"p1108","attributes":{"target":"frame","symbol":"top"}},"bottom":{"type":"object","name":"Node","id":"p1107","attributes":{"target":"frame","symbol":"bottom"}},"line_color":"#c9cbce","line_alpha":1.0,"fill_color":"#c9cbce","fill_alpha":0.2,"hover_line_alpha":1.0,"hover_fill_alpha":1.0}},{"type":"object","name":"GlyphRenderer","id":"p1120","attributes":{"data_source":{"type":"object","name":"ColumnDataSource","id":"p1109","attributes":{"selected":{"type":"object","name":"Selection","id":"p1110","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1111"},"data":{"type":"map","entries":[["sepal_length",{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}],["sepal_width",{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]}}},"view":{"type":"object","name":"CDSView","id":"p1121","attributes":{"filter":{"type":"object","name":"AllIndices","id":"p1122"}}},"glyph":{"type":"object","name":"Scatter","id":"p1115","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"selection_glyph":{"type":"object","name":"Scatter","id":"p1117","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"nonselection_glyph":{"type":"object","name":"Scatter","id":"p1116","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"hover_glyph":{"type":"object","name":"Scatter","id":"p1118","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"muted_glyph":{"type":"object","name":"Scatter","id":"p1119","attributes":{"tags":["apply_ranges"],"x":{"type":"field","field":"sepal_length"},"y":{"type":"field","field":"sepal_width"},"size":{"type":"value","value":10},"line_color":{"type":"value","value":"#F08080"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}}}}],"toolbar":{"type":"object","name":"Toolbar","id":"p1057","attributes":{"tools":[{"type":"object","name":"BoxSelectTool","id":"p1031","attributes":{"js_property_callbacks":{"type":"map","entries":[["change:mode",[{"type":"object","name":"CustomJS","id":"p1041","attributes":{"args":{"type":"map","entries":[["other",{"type":"object","name":"LassoSelectTool","id":"p1037","attributes":{"js_property_callbacks":{"type":"map","entries":[["change:mode",[{"type":"object","name":"CustomJS","id":"p1042","attributes":{"args":{"type":"map","entries":[["other",{"id":"p1031"}]]},"code":"other.mode = this.mode"}}]]]},"renderers":"auto","overlay":{"type":"object","name":"PolyAnnotation","id":"p1029","attributes":{"syncable":false,"level":"overlay","visible":false,"xs":[],"ys":[],"editable":true,"line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}}]]},"code":"other.mode = this.mode"}}]]]},"renderers":"auto","overlay":{"type":"object","name":"BoxAnnotation","id":"p1023","attributes":{"syncable":false,"level":"overlay","visible":false,"left":{"type":"number","value":"nan"},"right":{"type":"number","value":"nan"},"top":{"type":"number","value":"nan"},"bottom":{"type":"number","value":"nan"},"editable":true,"line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}},{"id":"p1037"},{"type":"object","name":"WheelZoomTool","id":"p1039","attributes":{"tags":["hv_created"],"renderers":"auto","zoom_together":"none"}},{"type":"object","name":"HoverTool","id":"p1040","attributes":{"tags":["hv_created"],"renderers":[{"id":"p1090"},{"id":"p1120"}],"tooltips":[["sepal_length","@{sepal_length}"],["sepal_width","@{sepal_width}"]]}},{"type":"object","name":"SaveTool","id":"p1070"},{"type":"object","name":"PanTool","id":"p1071"},{"type":"object","name":"BoxZoomTool","id":"p1072","attributes":{"overlay":{"type":"object","name":"BoxAnnotation","id":"p1073","attributes":{"syncable":false,"level":"overlay","visible":false,"left":{"type":"number","value":"nan"},"right":{"type":"number","value":"nan"},"top":{"type":"number","value":"nan"},"bottom":{"type":"number","value":"nan"},"left_units":"canvas","right_units":"canvas","top_units":"canvas","bottom_units":"canvas","line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}},{"type":"object","name":"ResetTool","id":"p1078"}],"active_drag":{"id":"p1031"}}},"left":[{"type":"object","name":"LinearAxis","id":"p1065","attributes":{"ticker":{"type":"object","name":"BasicTicker","id":"p1066","attributes":{"mantissas":[1,2,5]}},"formatter":{"type":"object","name":"BasicTickFormatter","id":"p1067"},"axis_label":"sepal_width","axis_label_standoff":10,"axis_label_text_color":"#2B2B2B","axis_label_text_font":"Open Sans, sans-serif","axis_label_text_font_size":"1.25em","axis_label_text_font_style":"normal","major_label_policy":{"type":"object","name":"AllLabels","id":"p1068"},"major_label_text_color":"#2B2B2B","major_label_text_font":"Open Sans, sans-serif","major_label_text_font_size":"1.025em","axis_line_color":"#2B2B2B","axis_line_alpha":0.1,"major_tick_line_color":"#2B2B2B","major_tick_line_alpha":0.5,"minor_tick_line_color":"#2B2B2B","minor_tick_line_alpha":0.25}}],"below":[{"type":"object","name":"LinearAxis","id":"p1060","attributes":{"ticker":{"type":"object","name":"BasicTicker","id":"p1061","attributes":{"mantissas":[1,2,5]}},"formatter":{"type":"object","name":"BasicTickFormatter","id":"p1062"},"axis_label":"sepal_length","axis_label_standoff":10,"axis_label_text_color":"#2B2B2B","axis_label_text_font":"Open Sans, sans-serif","axis_label_text_font_size":"1.25em","axis_label_text_font_style":"normal","major_label_policy":{"type":"object","name":"AllLabels","id":"p1063"},"major_label_text_color":"#2B2B2B","major_label_text_font":"Open Sans, sans-serif","major_label_text_font_size":"1.025em","axis_line_color":"#2B2B2B","axis_line_alpha":0.1,"major_tick_line_color":"#2B2B2B","major_tick_line_alpha":0.5,"minor_tick_line_color":"#2B2B2B","minor_tick_line_alpha":0.25}}],"center":[{"type":"object","name":"Grid","id":"p1064","attributes":{"axis":{"id":"p1060"},"grid_line_color":null,"grid_line_alpha":0.25}},{"type":"object","name":"Grid","id":"p1069","attributes":{"dimension":1,"axis":{"id":"p1065"},"grid_line_color":null,"grid_line_alpha":0.25}}],"background_fill_color":"#ffffff","border_fill_color":"#F7F7F7","border_fill_alpha":0,"min_border_top":10,"min_border_bottom":10,"min_border_left":10,"min_border_right":10,"output_backend":"webgl"}}]}},{"type":"object","name":"panel.models.layout.Column","id":"p1125","attributes":{"name":"main-140403941567120","tags":["main"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1245","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1246","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/listpanel.css"}},{"id":"p1235"}],"margin":0,"sizing_mode":"stretch_both","align":"start","children":[{"type":"object","name":"Figure","id":"p1156","attributes":{"subscribed_events":{"type":"set","entries":["selectiongeometry","reset"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1247","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(50vh - 65px) !important;\n}\n",{"id":"p1235"}],"width":null,"height":null,"margin":[5,10],"sizing_mode":"stretch_both","align":"start","x_range":{"type":"object","name":"Range1d","id":"p1126","attributes":{"tags":[[["petal_width","petal_width",null]],[]],"start":-0.13999999999999999,"end":2.74,"reset_start":-0.13999999999999999,"reset_end":2.74}},"y_range":{"type":"object","name":"Range1d","id":"p1127","attributes":{"tags":[[["petal_width_count","Count",null]],{"type":"map","entries":[["invert_yaxis",false],["autorange",false]]}],"end":37.4,"reset_start":0.0,"reset_end":37.4}},"x_scale":{"type":"object","name":"LinearScale","id":"p1166"},"y_scale":{"type":"object","name":"LinearScale","id":"p1167"},"title":{"type":"object","name":"Title","id":"p1159","attributes":{"text_color":"#2B2B2B","text_font":"Open Sans, sans-serif","text_font_size":"1.15em"}},"outline_line_color":"#888888","outline_line_alpha":0.5,"outline_line_width":1,"renderers":[{"type":"object","name":"GlyphRenderer","id":"p1198","attributes":{"data_source":{"type":"object","name":"ColumnDataSource","id":"p1187","attributes":{"selected":{"type":"object","name":"Selection","id":"p1188","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1189"},"data":{"type":"map","entries":[["top",{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}],["left",{"type":"ndarray","array":{"type":"bytes","data":"mpmZmZmZuT8pXI/C9SjMP8L1KFyPwtU/cD0K16Nw3T+PwvUoXI/iP2ZmZmZmZuY/PQrXo3A96j8UrkfhehTuP/YoXI/C9fA/4noUrkfh8j/NzMzMzMz0P7gehetRuPY/pHA9Ctej+D+QwvUoXI/6P3sUrkfhevw/ZmZmZmZm/j8pXI/C9SgAQB+F61G4HgFAFa5H4XoUAkAK16NwPQoDQA=="},"shape":[20],"dtype":"float64","order":"little"}],["right",{"type":"ndarray","array":{"type":"bytes","data":"KVyPwvUozD/C9Shcj8LVP3A9CtejcN0/j8L1KFyP4j9mZmZmZmbmPz0K16NwPeo/FK5H4XoU7j/2KFyPwvXwP+J6FK5H4fI/zczMzMzM9D+4HoXrUbj2P6RwPQrXo/g/kML1KFyP+j97FK5H4Xr8P2ZmZmZmZv4/KVyPwvUoAEAfhetRuB4BQBWuR+F6FAJACtejcD0KA0AAAAAAAAAEQA=="},"shape":[20],"dtype":"float64","order":"little"}],["petal_width",{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}],["petal_width_count",{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]}}},"view":{"type":"object","name":"CDSView","id":"p1199","attributes":{"filter":{"type":"object","name":"AllIndices","id":"p1200"}}},"glyph":{"type":"object","name":"Quad","id":"p1193","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"selection_glyph":{"type":"object","name":"Quad","id":"p1195","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"nonselection_glyph":{"type":"object","name":"Quad","id":"p1194","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"hover_glyph":{"type":"object","name":"Quad","id":"p1196","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}},"muted_glyph":{"type":"object","name":"Quad","id":"p1197","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"line_alpha":{"type":"value","value":0.1},"fill_color":{"type":"value","value":"#F08080"},"fill_alpha":{"type":"value","value":0.1},"hatch_color":{"type":"value","value":"#F08080"},"hatch_alpha":{"type":"value","value":0.1}}}}},{"type":"object","name":"BoxAnnotation","id":"p1204","attributes":{"level":"glyph","visible":false,"left":{"type":"object","name":"Node","id":"p1213","attributes":{"target":"frame","symbol":"left"}},"right":{"type":"object","name":"Node","id":"p1214","attributes":{"target":"frame","symbol":"right"}},"top":{"type":"object","name":"Node","id":"p1216","attributes":{"target":"frame","symbol":"top"}},"bottom":{"type":"object","name":"Node","id":"p1215","attributes":{"target":"frame","symbol":"bottom"}},"line_color":"#c9cbce","line_alpha":1.0,"fill_color":"#c9cbce","fill_alpha":0.2,"hover_line_alpha":1.0,"hover_fill_alpha":1.0}},{"type":"object","name":"GlyphRenderer","id":"p1228","attributes":{"data_source":{"type":"object","name":"ColumnDataSource","id":"p1217","attributes":{"selected":{"type":"object","name":"Selection","id":"p1218","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1219"},"data":{"type":"map","entries":[["top",{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}],["left",{"type":"ndarray","array":{"type":"bytes","data":"mpmZmZmZuT8pXI/C9SjMP8L1KFyPwtU/cD0K16Nw3T+PwvUoXI/iP2ZmZmZmZuY/PQrXo3A96j8UrkfhehTuP/YoXI/C9fA/4noUrkfh8j/NzMzMzMz0P7gehetRuPY/pHA9Ctej+D+QwvUoXI/6P3sUrkfhevw/ZmZmZmZm/j8pXI/C9SgAQB+F61G4HgFAFa5H4XoUAkAK16NwPQoDQA=="},"shape":[20],"dtype":"float64","order":"little"}],["right",{"type":"ndarray","array":{"type":"bytes","data":"KVyPwvUozD/C9Shcj8LVP3A9CtejcN0/j8L1KFyP4j9mZmZmZmbmPz0K16NwPeo/FK5H4XoU7j/2KFyPwvXwP+J6FK5H4fI/zczMzMzM9D+4HoXrUbj2P6RwPQrXo/g/kML1KFyP+j97FK5H4Xr8P2ZmZmZmZv4/KVyPwvUoAEAfhetRuB4BQBWuR+F6FAJACtejcD0KA0AAAAAAAAAEQA=="},"shape":[20],"dtype":"float64","order":"little"}],["petal_width",{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}],["petal_width_count",{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]}}},"view":{"type":"object","name":"CDSView","id":"p1229","attributes":{"filter":{"type":"object","name":"AllIndices","id":"p1230"}}},"glyph":{"type":"object","name":"Quad","id":"p1223","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"selection_glyph":{"type":"object","name":"Quad","id":"p1225","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"nonselection_glyph":{"type":"object","name":"Quad","id":"p1224","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"hover_glyph":{"type":"object","name":"Quad","id":"p1226","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}},"muted_glyph":{"type":"object","name":"Quad","id":"p1227","attributes":{"tags":["apply_ranges"],"left":{"type":"field","field":"left"},"right":{"type":"field","field":"right"},"bottom":{"type":"value","value":0},"top":{"type":"field","field":"top"},"fill_color":{"type":"value","value":"#F08080"},"hatch_color":{"type":"value","value":"#F08080"}}}}}],"toolbar":{"type":"object","name":"Toolbar","id":"p1165","attributes":{"tools":[{"type":"object","name":"BoxSelectTool","id":"p1139","attributes":{"js_property_callbacks":{"type":"map","entries":[["change:mode",[{"type":"object","name":"CustomJS","id":"p1149","attributes":{"args":{"type":"map","entries":[["other",{"type":"object","name":"LassoSelectTool","id":"p1145","attributes":{"js_property_callbacks":{"type":"map","entries":[["change:mode",[{"type":"object","name":"CustomJS","id":"p1150","attributes":{"args":{"type":"map","entries":[["other",{"id":"p1139"}]]},"code":"other.mode = this.mode"}}]]]},"renderers":"auto","overlay":{"type":"object","name":"PolyAnnotation","id":"p1137","attributes":{"syncable":false,"level":"overlay","visible":false,"xs":[],"ys":[],"editable":true,"line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}}]]},"code":"other.mode = this.mode"}}]]]},"renderers":"auto","overlay":{"type":"object","name":"BoxAnnotation","id":"p1131","attributes":{"syncable":false,"level":"overlay","visible":false,"left":{"type":"number","value":"nan"},"right":{"type":"number","value":"nan"},"top":{"type":"number","value":"nan"},"bottom":{"type":"number","value":"nan"},"editable":true,"line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}},{"id":"p1145"},{"type":"object","name":"WheelZoomTool","id":"p1147","attributes":{"tags":["hv_created"],"renderers":"auto","zoom_together":"none"}},{"type":"object","name":"HoverTool","id":"p1148","attributes":{"tags":["hv_created"],"renderers":[{"id":"p1198"},{"id":"p1228"}],"tooltips":[["petal_width","@{petal_width}"],["Count","@{petal_width_count}"]]}},{"type":"object","name":"SaveTool","id":"p1178"},{"type":"object","name":"PanTool","id":"p1179"},{"type":"object","name":"BoxZoomTool","id":"p1180","attributes":{"overlay":{"type":"object","name":"BoxAnnotation","id":"p1181","attributes":{"syncable":false,"level":"overlay","visible":false,"left":{"type":"number","value":"nan"},"right":{"type":"number","value":"nan"},"top":{"type":"number","value":"nan"},"bottom":{"type":"number","value":"nan"},"left_units":"canvas","right_units":"canvas","top_units":"canvas","bottom_units":"canvas","line_color":"black","line_alpha":1.0,"line_width":2,"line_dash":[4,4],"fill_color":"lightgrey","fill_alpha":0.5}}}},{"type":"object","name":"ResetTool","id":"p1186"}],"active_drag":{"id":"p1139"}}},"left":[{"type":"object","name":"LinearAxis","id":"p1173","attributes":{"ticker":{"type":"object","name":"BasicTicker","id":"p1174","attributes":{"mantissas":[1,2,5]}},"formatter":{"type":"object","name":"BasicTickFormatter","id":"p1175"},"axis_label":"Count","axis_label_standoff":10,"axis_label_text_color":"#2B2B2B","axis_label_text_font":"Open Sans, sans-serif","axis_label_text_font_size":"1.25em","axis_label_text_font_style":"normal","major_label_policy":{"type":"object","name":"AllLabels","id":"p1176"},"major_label_text_color":"#2B2B2B","major_label_text_font":"Open Sans, sans-serif","major_label_text_font_size":"1.025em","axis_line_color":"#2B2B2B","axis_line_alpha":0.1,"major_tick_line_color":"#2B2B2B","major_tick_line_alpha":0.5,"minor_tick_line_color":"#2B2B2B","minor_tick_line_alpha":0.25}}],"below":[{"type":"object","name":"LinearAxis","id":"p1168","attributes":{"ticker":{"type":"object","name":"BasicTicker","id":"p1169","attributes":{"mantissas":[1,2,5]}},"formatter":{"type":"object","name":"BasicTickFormatter","id":"p1170"},"axis_label":"petal_width","axis_label_standoff":10,"axis_label_text_color":"#2B2B2B","axis_label_text_font":"Open Sans, sans-serif","axis_label_text_font_size":"1.25em","axis_label_text_font_style":"normal","major_label_policy":{"type":"object","name":"AllLabels","id":"p1171"},"major_label_text_color":"#2B2B2B","major_label_text_font":"Open Sans, sans-serif","major_label_text_font_size":"1.025em","axis_line_color":"#2B2B2B","axis_line_alpha":0.1,"major_tick_line_color":"#2B2B2B","major_tick_line_alpha":0.5,"minor_tick_line_color":"#2B2B2B","minor_tick_line_alpha":0.25}}],"center":[{"type":"object","name":"Grid","id":"p1172","attributes":{"axis":{"id":"p1168"},"grid_line_color":null,"grid_line_alpha":0.25}},{"type":"object","name":"Grid","id":"p1177","attributes":{"dimension":1,"axis":{"id":"p1173"},"grid_line_color":null,"grid_line_alpha":0.25}}],"background_fill_color":"#ffffff","border_fill_color":"#F7F7F7","border_fill_alpha":0,"min_border_top":10,"min_border_bottom":10,"min_border_left":10,"min_border_right":10,"output_backend":"webgl"}}]}}],"defs":[{"type":"model","name":"ReactiveHTML1"},{"type":"model","name":"FlexBox1","properties":[{"name":"align_content","kind":"Any","default":"flex-start"},{"name":"align_items","kind":"Any","default":"flex-start"},{"name":"flex_direction","kind":"Any","default":"row"},{"name":"flex_wrap","kind":"Any","default":"wrap"},{"name":"justify_content","kind":"Any","default":"flex-start"}]},{"type":"model","name":"FloatPanel1","properties":[{"name":"config","kind":"Any","default":{"type":"map"}},{"name":"contained","kind":"Any","default":true},{"name":"position","kind":"Any","default":"right-top"},{"name":"offsetx","kind":"Any","default":null},{"name":"offsety","kind":"Any","default":null},{"name":"theme","kind":"Any","default":"primary"},{"name":"status","kind":"Any","default":"normalized"}]},{"type":"model","name":"GridStack1","properties":[{"name":"mode","kind":"Any","default":"warn"},{"name":"ncols","kind":"Any","default":null},{"name":"nrows","kind":"Any","default":null},{"name":"allow_resize","kind":"Any","default":true},{"name":"allow_drag","kind":"Any","default":true},{"name":"state","kind":"Any","default":[]}]},{"type":"model","name":"drag1","properties":[{"name":"slider_width","kind":"Any","default":5},{"name":"slider_color","kind":"Any","default":"black"},{"name":"value","kind":"Any","default":50}]},{"type":"model","name":"click1","properties":[{"name":"terminal_output","kind":"Any","default":""},{"name":"debug_name","kind":"Any","default":""},{"name":"clears","kind":"Any","default":0}]},{"type":"model","name":"copy_to_clipboard1","properties":[{"name":"fill","kind":"Any","default":"none"},{"name":"value","kind":"Any","default":null}]},{"type":"model","name":"FastWrapper1","properties":[{"name":"object","kind":"Any","default":null},{"name":"style","kind":"Any","default":null}]},{"type":"model","name":"NotificationAreaBase1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0}]},{"type":"model","name":"NotificationArea1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"notifications","kind":"Any","default":[]},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0},{"name":"types","kind":"Any","default":[{"type":"map","entries":[["type","warning"],["background","#ffc107"],["icon",{"type":"map","entries":[["className","fas fa-exclamation-triangle"],["tagName","i"],["color","white"]]}]]},{"type":"map","entries":[["type","info"],["background","#007bff"],["icon",{"type":"map","entries":[["className","fas fa-info-circle"],["tagName","i"],["color","white"]]}]]}]}]},{"type":"model","name":"Notification","properties":[{"name":"background","kind":"Any","default":null},{"name":"duration","kind":"Any","default":3000},{"name":"icon","kind":"Any","default":null},{"name":"message","kind":"Any","default":""},{"name":"notification_type","kind":"Any","default":null},{"name":"_destroyed","kind":"Any","default":false}]},{"type":"model","name":"TemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"BootstrapTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"MaterialTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]}]}}
|
325 |
+
</script>
|
326 |
+
<script type="text/javascript">
|
327 |
+
(function() {
|
328 |
+
const fn = function() {
|
329 |
+
Bokeh.safely(function() {
|
330 |
+
(function(root) {
|
331 |
+
function embed_document(root) {
|
332 |
+
const docs_json = document.getElementById('p1260').textContent;
|
333 |
+
const render_items = [{"docid":"bdf6524f-6300-4712-933b-3702aa22cf38","roots":{"p1002":"d0a56b2a-f0e6-40d1-8b8f-3f3a6b1db1cf","p1009":"bbc1b4af-1fa6-45fd-9e80-691b823dc4f1","p1012":"c3c73736-69e6-4f43-82ff-dc138844764d","p1013":"becc99cc-5b2d-4904-9c08-9476a8cc030d","p1016":"dc61fe4c-8fdd-4524-96d3-a3f35d5781ae","p1017":"add04605-0627-4b50-86bb-65ced26ec51e","p1125":"e838e2a8-4055-4e77-b73a-6915f363fd82"},"root_ids":["p1002","p1009","p1012","p1013","p1016","p1017","p1125"]}];
|
334 |
+
root.Bokeh.embed.embed_items(docs_json, render_items);
|
335 |
+
}
|
336 |
+
if (root.Bokeh !== undefined) {
|
337 |
+
embed_document(root);
|
338 |
+
} else {
|
339 |
+
let attempts = 0;
|
340 |
+
const timer = setInterval(function(root) {
|
341 |
+
if (root.Bokeh !== undefined) {
|
342 |
+
clearInterval(timer);
|
343 |
+
embed_document(root);
|
344 |
+
} else {
|
345 |
+
attempts++;
|
346 |
+
if (attempts > 100) {
|
347 |
+
clearInterval(timer);
|
348 |
+
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
349 |
+
}
|
350 |
+
}
|
351 |
+
}, 10, root)
|
352 |
+
}
|
353 |
+
})(window);
|
354 |
+
});
|
355 |
+
};
|
356 |
+
if (document.readyState != "loading") fn();
|
357 |
+
else document.addEventListener("DOMContentLoaded", fn);
|
358 |
+
})();
|
359 |
+
</script>
|
360 |
+
</body>
|
361 |
+
</html>
|
crossfiltering_holoviews_bokeh.js
ADDED
@@ -0,0 +1,190 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
importScripts("https://cdn.jsdelivr.net/pyodide/v0.24.1/full/pyodide.js");
|
2 |
+
|
3 |
+
function sendPatch(patch, buffers, msg_id) {
|
4 |
+
self.postMessage({
|
5 |
+
type: 'patch',
|
6 |
+
patch: patch,
|
7 |
+
buffers: buffers
|
8 |
+
})
|
9 |
+
}
|
10 |
+
|
11 |
+
async function startApplication() {
|
12 |
+
console.log("Loading pyodide!");
|
13 |
+
self.postMessage({type: 'status', msg: 'Loading pyodide'})
|
14 |
+
self.pyodide = await loadPyodide();
|
15 |
+
self.pyodide.globals.set("sendPatch", sendPatch);
|
16 |
+
console.log("Loaded!");
|
17 |
+
await self.pyodide.loadPackage("micropip");
|
18 |
+
const env_spec = ['https://cdn.holoviz.org/panel/wheels/bokeh-3.3.2-py3-none-any.whl', 'https://cdn.holoviz.org/panel/1.3.6/dist/wheels/panel-1.3.6-py3-none-any.whl', 'pyodide-http==0.2.1', 'holoviews', 'pandas']
|
19 |
+
for (const pkg of env_spec) {
|
20 |
+
let pkg_name;
|
21 |
+
if (pkg.endsWith('.whl')) {
|
22 |
+
pkg_name = pkg.split('/').slice(-1)[0].split('-')[0]
|
23 |
+
} else {
|
24 |
+
pkg_name = pkg
|
25 |
+
}
|
26 |
+
self.postMessage({type: 'status', msg: `Installing ${pkg_name}`})
|
27 |
+
try {
|
28 |
+
await self.pyodide.runPythonAsync(`
|
29 |
+
import micropip
|
30 |
+
await micropip.install('${pkg}');
|
31 |
+
`);
|
32 |
+
} catch(e) {
|
33 |
+
console.log(e)
|
34 |
+
self.postMessage({
|
35 |
+
type: 'status',
|
36 |
+
msg: `Error while installing ${pkg_name}`
|
37 |
+
});
|
38 |
+
}
|
39 |
+
}
|
40 |
+
console.log("Packages loaded!");
|
41 |
+
self.postMessage({type: 'status', msg: 'Executing code'})
|
42 |
+
const code = `
|
43 |
+
|
44 |
+
import asyncio
|
45 |
+
|
46 |
+
from panel.io.pyodide import init_doc, write_doc
|
47 |
+
|
48 |
+
init_doc()
|
49 |
+
|
50 |
+
"""*Linked Brushing* is a very powerful technique. It's also often called
|
51 |
+
*Linked Selections* or *Crossfiltering*.
|
52 |
+
|
53 |
+
This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
|
54 |
+
(http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
|
55 |
+
[Introducing Dash HoloViews]\
|
56 |
+
(https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
|
57 |
+
|
58 |
+
This example uses the *Iris* dataset.
|
59 |
+
"""
|
60 |
+
from typing import Tuple
|
61 |
+
|
62 |
+
import holoviews as hv
|
63 |
+
import pandas as pd
|
64 |
+
import panel as pn
|
65 |
+
from holoviews import opts
|
66 |
+
from panel.template import FastListTemplate
|
67 |
+
|
68 |
+
|
69 |
+
@pn.cache
|
70 |
+
def get_iris_data():
|
71 |
+
return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
|
72 |
+
|
73 |
+
|
74 |
+
ACCENT = "#F08080"
|
75 |
+
|
76 |
+
CSS = """
|
77 |
+
.main .card-margin.stretch_both {
|
78 |
+
height: calc(50vh - 65px) !important;
|
79 |
+
}
|
80 |
+
"""
|
81 |
+
if not CSS in pn.config.raw_css:
|
82 |
+
pn.config.raw_css.append(CSS)
|
83 |
+
|
84 |
+
BOKEH_TOOLS = {
|
85 |
+
"tools": ["hover"], "active_tools": ["box_select"]
|
86 |
+
}
|
87 |
+
|
88 |
+
|
89 |
+
def get_linked_plots() -> Tuple:
|
90 |
+
"""Returns a tuple (scatter, hist) of linked plots
|
91 |
+
|
92 |
+
See http://holoviews.org/user_guide/Linked_Brushing.html
|
93 |
+
"""
|
94 |
+
|
95 |
+
dataset = hv.Dataset(get_iris_data())
|
96 |
+
|
97 |
+
scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
|
98 |
+
hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
|
99 |
+
|
100 |
+
# pylint: disable=no-value-for-parameter
|
101 |
+
selection_linker = hv.selection.link_selections.instance()
|
102 |
+
# pylint: disable=no-member
|
103 |
+
scatter = selection_linker(scatter).opts(
|
104 |
+
opts.Scatter(color=ACCENT, responsive=True, size=10, **BOKEH_TOOLS),
|
105 |
+
)
|
106 |
+
hist = selection_linker(hist).opts(
|
107 |
+
opts.Histogram(color=ACCENT, responsive=True, **BOKEH_TOOLS)
|
108 |
+
)
|
109 |
+
|
110 |
+
return scatter, hist
|
111 |
+
|
112 |
+
|
113 |
+
def create_app():
|
114 |
+
"""Returns the app in a nice FastListTemplate"""
|
115 |
+
scatter, hist = get_linked_plots()
|
116 |
+
scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both")
|
117 |
+
hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both")
|
118 |
+
|
119 |
+
template = FastListTemplate(
|
120 |
+
site="Awesome Panel",
|
121 |
+
site_url="https://awesome-panel.org",
|
122 |
+
title="Linked Brushing with HoloViews and Bokeh",
|
123 |
+
accent=ACCENT,
|
124 |
+
main=[
|
125 |
+
# We need to wrap in Columns to get them to stretch properly
|
126 |
+
pn.Column(scatter_panel, sizing_mode="stretch_both"),
|
127 |
+
pn.Column(hist_panel, sizing_mode="stretch_both"),
|
128 |
+
],
|
129 |
+
)
|
130 |
+
return template
|
131 |
+
|
132 |
+
pn.extension()
|
133 |
+
hv.extension("bokeh")
|
134 |
+
create_app().servable()
|
135 |
+
|
136 |
+
|
137 |
+
await write_doc()
|
138 |
+
`
|
139 |
+
|
140 |
+
try {
|
141 |
+
const [docs_json, render_items, root_ids] = await self.pyodide.runPythonAsync(code)
|
142 |
+
self.postMessage({
|
143 |
+
type: 'render',
|
144 |
+
docs_json: docs_json,
|
145 |
+
render_items: render_items,
|
146 |
+
root_ids: root_ids
|
147 |
+
})
|
148 |
+
} catch(e) {
|
149 |
+
const traceback = `${e}`
|
150 |
+
const tblines = traceback.split('\n')
|
151 |
+
self.postMessage({
|
152 |
+
type: 'status',
|
153 |
+
msg: tblines[tblines.length-2]
|
154 |
+
});
|
155 |
+
throw e
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
self.onmessage = async (event) => {
|
160 |
+
const msg = event.data
|
161 |
+
if (msg.type === 'rendered') {
|
162 |
+
self.pyodide.runPythonAsync(`
|
163 |
+
from panel.io.state import state
|
164 |
+
from panel.io.pyodide import _link_docs_worker
|
165 |
+
|
166 |
+
_link_docs_worker(state.curdoc, sendPatch, setter='js')
|
167 |
+
`)
|
168 |
+
} else if (msg.type === 'patch') {
|
169 |
+
self.pyodide.globals.set('patch', msg.patch)
|
170 |
+
self.pyodide.runPythonAsync(`
|
171 |
+
state.curdoc.apply_json_patch(patch.to_py(), setter='js')
|
172 |
+
`)
|
173 |
+
self.postMessage({type: 'idle'})
|
174 |
+
} else if (msg.type === 'location') {
|
175 |
+
self.pyodide.globals.set('location', msg.location)
|
176 |
+
self.pyodide.runPythonAsync(`
|
177 |
+
import json
|
178 |
+
from panel.io.state import state
|
179 |
+
from panel.util import edit_readonly
|
180 |
+
if state.location:
|
181 |
+
loc_data = json.loads(location)
|
182 |
+
with edit_readonly(state.location):
|
183 |
+
state.location.param.update({
|
184 |
+
k: v for k, v in loc_data.items() if k in state.location.param
|
185 |
+
})
|
186 |
+
`)
|
187 |
+
}
|
188 |
+
}
|
189 |
+
|
190 |
+
startApplication()
|
crossfiltering_holoviews_bokeh.py
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""*Linked Brushing* is a very powerful technique. It's also often called
|
2 |
+
*Linked Selections* or *Crossfiltering*.
|
3 |
+
|
4 |
+
This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
|
5 |
+
(http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
|
6 |
+
[Introducing Dash HoloViews]\
|
7 |
+
(https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
|
8 |
+
|
9 |
+
This example uses the *Iris* dataset.
|
10 |
+
"""
|
11 |
+
from typing import Tuple
|
12 |
+
|
13 |
+
import holoviews as hv
|
14 |
+
import pandas as pd
|
15 |
+
import panel as pn
|
16 |
+
from holoviews import opts
|
17 |
+
from panel.template import FastListTemplate
|
18 |
+
|
19 |
+
|
20 |
+
@pn.cache
|
21 |
+
def get_iris_data():
|
22 |
+
return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
|
23 |
+
|
24 |
+
|
25 |
+
ACCENT = "#F08080"
|
26 |
+
|
27 |
+
CSS = """
|
28 |
+
.main .card-margin.stretch_both {
|
29 |
+
height: calc(50vh - 65px) !important;
|
30 |
+
}
|
31 |
+
"""
|
32 |
+
if not CSS in pn.config.raw_css:
|
33 |
+
pn.config.raw_css.append(CSS)
|
34 |
+
|
35 |
+
BOKEH_TOOLS = {
|
36 |
+
"tools": ["hover"], "active_tools": ["box_select"]
|
37 |
+
}
|
38 |
+
|
39 |
+
|
40 |
+
def get_linked_plots() -> Tuple:
|
41 |
+
"""Returns a tuple (scatter, hist) of linked plots
|
42 |
+
|
43 |
+
See http://holoviews.org/user_guide/Linked_Brushing.html
|
44 |
+
"""
|
45 |
+
|
46 |
+
dataset = hv.Dataset(get_iris_data())
|
47 |
+
|
48 |
+
scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
|
49 |
+
hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
|
50 |
+
|
51 |
+
# pylint: disable=no-value-for-parameter
|
52 |
+
selection_linker = hv.selection.link_selections.instance()
|
53 |
+
# pylint: disable=no-member
|
54 |
+
scatter = selection_linker(scatter).opts(
|
55 |
+
opts.Scatter(color=ACCENT, responsive=True, size=10, **BOKEH_TOOLS),
|
56 |
+
)
|
57 |
+
hist = selection_linker(hist).opts(
|
58 |
+
opts.Histogram(color=ACCENT, responsive=True, **BOKEH_TOOLS)
|
59 |
+
)
|
60 |
+
|
61 |
+
return scatter, hist
|
62 |
+
|
63 |
+
|
64 |
+
def create_app():
|
65 |
+
"""Returns the app in a nice FastListTemplate"""
|
66 |
+
scatter, hist = get_linked_plots()
|
67 |
+
scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both")
|
68 |
+
hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both")
|
69 |
+
|
70 |
+
template = FastListTemplate(
|
71 |
+
site="Awesome Panel",
|
72 |
+
site_url="https://awesome-panel.org",
|
73 |
+
title="Linked Brushing with HoloViews and Bokeh",
|
74 |
+
accent=ACCENT,
|
75 |
+
main=[
|
76 |
+
# We need to wrap in Columns to get them to stretch properly
|
77 |
+
pn.Column(scatter_panel, sizing_mode="stretch_both"),
|
78 |
+
pn.Column(hist_panel, sizing_mode="stretch_both"),
|
79 |
+
],
|
80 |
+
)
|
81 |
+
return template
|
82 |
+
|
83 |
+
pn.extension()
|
84 |
+
hv.extension("bokeh")
|
85 |
+
create_app().servable()
|
crossfiltering_holoviews_plotly.html
ADDED
@@ -0,0 +1,355 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en" >
|
3 |
+
<head>
|
4 |
+
<meta charset="utf-8">
|
5 |
+
<title>Linked Brushing with HoloViews and Plotly</title>
|
6 |
+
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/apple-touch-icon.png">
|
7 |
+
<link rel="icon" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/favicon.ico" type=""><meta name="name" content="Linked Brushing with HoloViews and Plotly"> <style>
|
8 |
+
html, body {
|
9 |
+
display: flow-root;
|
10 |
+
box-sizing: border-box;
|
11 |
+
height: 100%;
|
12 |
+
margin: 0;
|
13 |
+
padding: 0;
|
14 |
+
}
|
15 |
+
</style>
|
16 |
+
<style>
|
17 |
+
|
18 |
+
.main .card-margin.stretch_both {
|
19 |
+
height: calc(100vh - 125px) !important;
|
20 |
+
}
|
21 |
+
|
22 |
+
</style>
|
23 |
+
|
24 |
+
<style type="text/css">
|
25 |
+
:host(.pn-loading),
|
26 |
+
.pn-loading {
|
27 |
+
overflow: hidden;
|
28 |
+
}
|
29 |
+
|
30 |
+
:host(.pn-loading):before,
|
31 |
+
.pn-loading:before {
|
32 |
+
position: absolute;
|
33 |
+
height: 100%;
|
34 |
+
width: 100%;
|
35 |
+
content: '';
|
36 |
+
z-index: 1000;
|
37 |
+
background-color: rgb(255, 255, 255, 0.5);
|
38 |
+
border-color: lightgray;
|
39 |
+
background-repeat: no-repeat;
|
40 |
+
background-position: center;
|
41 |
+
background-size: auto 50%;
|
42 |
+
border-width: 1px;
|
43 |
+
cursor: progress;
|
44 |
+
}
|
45 |
+
|
46 |
+
:host(.pn-loading) .pn-loading-msg,
|
47 |
+
.pn-loading .pn-loading-msg {
|
48 |
+
position: absolute;
|
49 |
+
top: 72%;
|
50 |
+
font-size: 2em;
|
51 |
+
color: black;
|
52 |
+
width: 100%;
|
53 |
+
text-align: center;
|
54 |
+
}
|
55 |
+
|
56 |
+
|
57 |
+
:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
|
58 |
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
|
59 |
+
background-size: auto calc(min(50%, 400px));
|
60 |
+
}
|
61 |
+
</style><script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/jquery/jquery.slim.min.js"></script>
|
62 |
+
<script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/plotlyplot/plotly-2.18.0.min.js"></script>
|
63 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-3.3.2.min.js"></script>
|
64 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.2.min.js"></script>
|
65 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.2.min.js"></script>
|
66 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.2.min.js"></script>
|
67 |
+
<script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/panel.min.js"></script>
|
68 |
+
|
69 |
+
<script type="text/javascript">
|
70 |
+
Bokeh.set_log_level("info");
|
71 |
+
</script><!-- Template CSS -->
|
72 |
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans">
|
73 |
+
<link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/default.css">
|
74 |
+
<link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast.css">
|
75 |
+
<link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastlisttemplate/fast_list_template.css">
|
76 |
+
<style type="text/css">
|
77 |
+
|
78 |
+
:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
|
79 |
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
|
80 |
+
background-size: auto calc(min(50%, 400px));
|
81 |
+
}
|
82 |
+
</style>
|
83 |
+
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" />
|
84 |
+
|
85 |
+
<style>
|
86 |
+
:root {
|
87 |
+
--background-color: #ffffff;
|
88 |
+
--body-font: Open Sans, sans-serif;
|
89 |
+
--corner-radius: 3;
|
90 |
+
--header-background: #F08080;
|
91 |
+
--header-color: #ffffff;
|
92 |
+
--sidebar-width: 330px;
|
93 |
+
}
|
94 |
+
body {
|
95 |
+
color: #2B2B2B;
|
96 |
+
background-color: var(--background-color);
|
97 |
+
font-family: var(--body-font);
|
98 |
+
}
|
99 |
+
#header a {
|
100 |
+
color: currentColor;
|
101 |
+
}
|
102 |
+
#header-design-provider {
|
103 |
+
--neutral-fill-hover: var(--header-background);
|
104 |
+
--neutral-fill-rest: var(--header-background);
|
105 |
+
--neutral-foreground-rest: var(--header-color);
|
106 |
+
background: var(--header-background);
|
107 |
+
color: var(--header-color);
|
108 |
+
}
|
109 |
+
#sidebar {
|
110 |
+
min-width: var(--sidebar-width);
|
111 |
+
max-width: var(--sidebar-width);
|
112 |
+
}
|
113 |
+
</style>
|
114 |
+
|
115 |
+
<!-- Template JS -->
|
116 |
+
<script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast_template.js"></script>
|
117 |
+
<script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/@microsoft/[email protected]/dist/fast-components.js" type="module"></script>
|
118 |
+
<script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fast/js/fast_design.js" type="module"></script>
|
119 |
+
|
120 |
+
<!-- Fast Script -->
|
121 |
+
<script type="text/javascript">
|
122 |
+
document.addEventListener('DOMContentLoaded', (event) => {
|
123 |
+
const header_design = new window.fastDesignProvider("#header-design-provider");
|
124 |
+
const body_design = window.bodyDesign = new window.fastDesignProvider("#body-design-provider");
|
125 |
+
body_design.setLuminance(1.0);
|
126 |
+
body_design.setAccentColor("#F08080")
|
127 |
+
body_design.setNeutralColor("#000000");
|
128 |
+
header_design.setLuminance(1.0);
|
129 |
+
header_design.setAccentColor("#ffffff");
|
130 |
+
header_design.setNeutralColor("#ffffff");
|
131 |
+
});
|
132 |
+
</script>
|
133 |
+
</head>
|
134 |
+
<body class="pn-loading pn-arc">
|
135 |
+
<fast-design-system-provider id="body-design-provider" use-defaults>
|
136 |
+
<div id="container">
|
137 |
+
<fast-design-system-provider id="header-design-provider">
|
138 |
+
<nav id="header" class="shadow" >
|
139 |
+
<div class="app-header">
|
140 |
+
<a class="title" href="https://awesome-panel.org" > Awesome Panel</a>
|
141 |
+
<span class="title">-</span>
|
142 |
+
<a class="title" href="" >Linked Brushing with HoloViews and Plotly</a>
|
143 |
+
</div>
|
144 |
+
<div id="header-items">
|
145 |
+
</div>
|
146 |
+
<div class="pn-toggle-theme">
|
147 |
+
<fast-switch id="theme-switch" style="float: right;" onChange="toggleLightDarkTheme('default')" checked>
|
148 |
+
<span slot="checked-message">
|
149 |
+
<svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/></svg>
|
150 |
+
</span>
|
151 |
+
<span slot="unchecked-message">
|
152 |
+
<svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></svg>
|
153 |
+
</span>
|
154 |
+
</fast-switch>
|
155 |
+
<fast-tooltip anchor="theme-switch" position="bottom">
|
156 |
+
Toggle the Theme
|
157 |
+
</fast-tooltip>
|
158 |
+
</div>
|
159 |
+
<div class="pn-busy-container" id="busy-container">
|
160 |
+
<div id="deab833e-ac0f-4116-953c-e879a1bfc5bd" data-root-id="p1016" style="display: contents;"></div>
|
161 |
+
</div>
|
162 |
+
<fast-tooltip anchor="busy-container" position="left">
|
163 |
+
Busy Indicator
|
164 |
+
</fast-tooltip>
|
165 |
+
</nav>
|
166 |
+
</fast-design-system-provider>
|
167 |
+
|
168 |
+
<div class="row" id="content">
|
169 |
+
|
170 |
+
<div class="main" id="main">
|
171 |
+
<div class="main-margin" style="max-width: 850px;">
|
172 |
+
<div class="card-margin stretch_width">
|
173 |
+
<fast-card class="pn-wrapper">
|
174 |
+
<span class="fullscreen-button" onclick="toggleFullScreen(this)">
|
175 |
+
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 18">
|
176 |
+
<path d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z"/>
|
177 |
+
</svg>
|
178 |
+
</span>
|
179 |
+
<div id="be2fe477-8dfd-4e33-af98-95a8d054f7b9" data-root-id="p1017" style="display: contents;"></div>
|
180 |
+
</fast-card>
|
181 |
+
</div>
|
182 |
+
</div>
|
183 |
+
</div>
|
184 |
+
<fast-dialog id="pn-Modal" hidden>
|
185 |
+
<fast-button class="pn-modal-close" id="pn-closeModal">×</fast-button>
|
186 |
+
<div>
|
187 |
+
</div>
|
188 |
+
</fast-dialog>
|
189 |
+
</div>
|
190 |
+
</div>
|
191 |
+
</fast-design-system-provider>
|
192 |
+
|
193 |
+
<script type="text/javascript">
|
194 |
+
|
195 |
+
</script>
|
196 |
+
|
197 |
+
<script type="text/javascript">
|
198 |
+
function openNav() {
|
199 |
+
document.getElementById("sidebar").classList.remove("hidden");
|
200 |
+
document.getElementById("sidebar-button").onclick = closeNav;
|
201 |
+
}
|
202 |
+
|
203 |
+
function closeNav() {
|
204 |
+
document.getElementById("sidebar").classList.add("hidden");
|
205 |
+
document.getElementById("sidebar-button").onclick = openNav;
|
206 |
+
}
|
207 |
+
|
208 |
+
var modal = document.getElementById("pn-Modal");
|
209 |
+
var span = document.getElementById("pn-closeModal");
|
210 |
+
|
211 |
+
span.onclick = function() {
|
212 |
+
modal.style.display = "none";
|
213 |
+
}
|
214 |
+
|
215 |
+
window.onclick = function(event) {
|
216 |
+
if (event.target == modal) {
|
217 |
+
modal.style.display = "none";
|
218 |
+
}
|
219 |
+
}
|
220 |
+
</script>
|
221 |
+
|
222 |
+
<div id="d2c62822-e788-475d-8fc3-0ceaacc32344" data-root-id="p1009" style="display: contents;"></div>
|
223 |
+
<div id="d8930239-a736-4cdf-8e6d-d4104c064f69" data-root-id="p1012" style="display: contents;"></div>
|
224 |
+
<div id="bc910aae-b8ae-41ce-a4c9-9ab132afa0d8" data-root-id="p1002" style="display: contents;"></div>
|
225 |
+
<div id="fa7cc2b1-2f61-4e8f-bbd2-10a5445be963" data-root-id="p1013" style="display: contents;"></div>
|
226 |
+
|
227 |
+
|
228 |
+
<script type="text/javascript">
|
229 |
+
const pyodideWorker = new Worker("./crossfiltering_holoviews_plotly.js");
|
230 |
+
pyodideWorker.busy = false
|
231 |
+
pyodideWorker.queue = []
|
232 |
+
|
233 |
+
function send_change(jsdoc, event) {
|
234 |
+
if (event.setter_id != null && event.setter_id == 'py') {
|
235 |
+
return
|
236 |
+
} else if (pyodideWorker.busy && event.model && event.attr) {
|
237 |
+
let events = []
|
238 |
+
for (const old_event of pyodideWorker.queue) {
|
239 |
+
if (!(old_event.model === event.model && old_event.attr === event.attr)) {
|
240 |
+
events.push(old_event)
|
241 |
+
}
|
242 |
+
}
|
243 |
+
events.push(event)
|
244 |
+
pyodideWorker.queue = events
|
245 |
+
return
|
246 |
+
}
|
247 |
+
const patch = jsdoc.create_json_patch([event])
|
248 |
+
pyodideWorker.busy = true
|
249 |
+
pyodideWorker.postMessage({type: 'patch', patch: patch})
|
250 |
+
}
|
251 |
+
|
252 |
+
pyodideWorker.onmessage = async (event) => {
|
253 |
+
const msg = event.data
|
254 |
+
|
255 |
+
const body = document.getElementsByTagName('body')[0]
|
256 |
+
const loading_msgs = document.getElementsByClassName('pn-loading-msg')
|
257 |
+
if (msg.type === 'idle') {
|
258 |
+
if (pyodideWorker.queue.length) {
|
259 |
+
const patch = pyodideWorker.jsdoc.create_json_patch(pyodideWorker.queue)
|
260 |
+
pyodideWorker.busy = true
|
261 |
+
pyodideWorker.queue = []
|
262 |
+
pyodideWorker.postMessage({type: 'patch', patch: patch})
|
263 |
+
} else {
|
264 |
+
pyodideWorker.busy = false
|
265 |
+
}
|
266 |
+
} else if (msg.type === 'status') {
|
267 |
+
let loading_msg
|
268 |
+
if (loading_msgs.length) {
|
269 |
+
loading_msg = loading_msgs[0]
|
270 |
+
} else if (body.classList.contains('pn-loading')) {
|
271 |
+
loading_msg = document.createElement('div')
|
272 |
+
loading_msg.classList.add('pn-loading-msg')
|
273 |
+
body.appendChild(loading_msg)
|
274 |
+
}
|
275 |
+
if (loading_msg != null) {
|
276 |
+
loading_msg.innerHTML = msg.msg
|
277 |
+
}
|
278 |
+
} else if (msg.type === 'render') {
|
279 |
+
const docs_json = JSON.parse(msg.docs_json)
|
280 |
+
const render_items = JSON.parse(msg.render_items)
|
281 |
+
const root_ids = JSON.parse(msg.root_ids)
|
282 |
+
|
283 |
+
// Remap roots in message to element IDs
|
284 |
+
const root_els = document.querySelectorAll('[data-root-id]')
|
285 |
+
const data_roots = []
|
286 |
+
for (const el of root_els) {
|
287 |
+
el.innerHTML = ''
|
288 |
+
data_roots.push([el.getAttribute('data-root-id'), el.id])
|
289 |
+
}
|
290 |
+
data_roots.sort((a, b) => a[0]<b[0] ? -1: 1)
|
291 |
+
const roots = {}
|
292 |
+
for (let i=0; i<data_roots.length; i++) {
|
293 |
+
roots[root_ids[i]] = data_roots[i][1]
|
294 |
+
}
|
295 |
+
render_items[0]['roots'] = roots
|
296 |
+
render_items[0]['root_ids'] = root_ids
|
297 |
+
|
298 |
+
// Embed content
|
299 |
+
const [views] = await Bokeh.embed.embed_items(docs_json, render_items)
|
300 |
+
|
301 |
+
// Remove loading spinner and message
|
302 |
+
body.classList.remove("pn-loading", "arc")
|
303 |
+
for (const loading_msg of loading_msgs) {
|
304 |
+
loading_msg.remove()
|
305 |
+
}
|
306 |
+
|
307 |
+
// Setup bi-directional syncing
|
308 |
+
pyodideWorker.jsdoc = jsdoc = [...views.roots.values()][0].model.document
|
309 |
+
jsdoc.on_change(send_change.bind(null, jsdoc), false)
|
310 |
+
pyodideWorker.postMessage({'type': 'rendered'})
|
311 |
+
pyodideWorker.postMessage({'type': 'location', location: JSON.stringify(window.location)})
|
312 |
+
} else if (msg.type === 'patch') {
|
313 |
+
pyodideWorker.jsdoc.apply_json_patch(msg.patch, msg.buffers, setter_id='py')
|
314 |
+
}
|
315 |
+
};
|
316 |
+
</script>
|
317 |
+
<script type="application/json" id="p1077">
|
318 |
+
{"bbfc5532-5c41-444f-bdbd-a46cd792fed8":{"version":"3.3.2","title":"Linked Brushing with HoloViews and Plotly","roots":[{"type":"object","name":"panel.models.location.Location","id":"p1002","attributes":{"name":"location","reload":false}},{"type":"object","name":"panel.models.markup.HTML","id":"p1009","attributes":{"name":"js_area","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1049","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1046","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/fast.css"}}],"width":0,"height":0,"margin":0,"sizing_mode":"fixed","align":"start","disable_math":true}},{"type":"object","name":"panel.models.reactive_html.ReactiveHTML","id":"p1012","attributes":{"name":"actions","subscribed_events":{"type":"set","entries":["dom_event"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1050","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"id":"p1046"}],"margin":0,"align":"start","data":{"type":"object","name":"TemplateActions1","id":"p1010","attributes":{"name":"TemplateActions01434"}},"scripts":{"type":"map","entries":[["open_modal",["document.getElementById(&#x27;pn-Modal&#x27;).style.display = &#x27;block&#x27;"]],["close_modal",["document.getElementById(&#x27;pn-Modal&#x27;).style.display = &#x27;none&#x27;"]]]}}},{"type":"object","name":"panel.models.browser.BrowserInfo","id":"p1013","attributes":{"name":"browser_info"}},{"type":"object","name":"panel.models.markup.HTML","id":"p1016","attributes":{"name":"busy_indicator","css_classes":["loader","light"],"stylesheets":[":host { --loading-spinner-size: 20px; }","\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1051","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1052","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loadingspinner.css"}},{"id":"p1046"}],"min_width":20,"min_height":20,"margin":[5,10],"align":"start"}},{"type":"object","name":"panel.models.layout.Column","id":"p1017","attributes":{"name":"main-140445466445840","tags":["main"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1053","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1054","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/listpanel.css"}},{"id":"p1046"}],"height":870,"margin":0,"sizing_mode":"stretch_width","align":"start","children":[{"type":"object","name":"panel.models.widgets.Button","id":"p1021","attributes":{"subscribed_events":{"type":"set","entries":["button_click"]},"css_classes":["solid"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1055","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1056","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/button.css"}},{"id":"p1046"}],"margin":[5,10],"align":"start","label":"RESET PLOTS","tooltip":{"type":"object","name":"Tooltip","id":"p1018","attributes":{"position":"right","content":"Resets the plots. Plotly does not have a built in way to do this."}}}},{"type":"object","name":"panel.models.plotly.PlotlyPlot","id":"p1030","attributes":{"name":"Plotly01687","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1057","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1058","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/plotly.css"}},{"id":"p1046"},":host { --plotly-icon-color: gray; --plotly-active-icon-color: #2a3f5f; }"],"margin":[5,10],"sizing_mode":"stretch_both","align":"start","data":[{"type":"map","entries":[["legendgroup","Scatter_"],["marker",{"type":"map","entries":[["color","#F08080"],["opacity",0.1],["size",10]]}],["mode","markers"],["name",""],["selectedpoints",false],["showlegend",false],["uid","9f078cc1-5725-40dd-88ee-7c88a74ad2d5"],["type","scatter"]]},{"type":"map","entries":[["legendgroup","Scatter_"],["marker",{"type":"map","entries":[["color","#F08080"],["opacity",1],["size",10]]}],["mode","markers"],["name",""],["selectedpoints",false],["showlegend",false],["uid","886e22cc-64f7-4d90-8337-4e68bf4dcb7f"],["type","scatter"]]}],"layout":{"type":"map","entries":[["autosize",false],["dragmode","select"],["height",400],["margin",{"type":"map","entries":[["b",50],["l",50],["pad",4],["r",50],["t",50]]}],["shapes",[{"type":"map","entries":[["fillcolor","#30a2da"],["line",{"type":"map","entries":[["color","#c9cbce"],["width",1]]}],["name","Element: 0"],["opacity",0.5],["type","rect"],["visible",false],["xref","x"],["y0",0],["y1",1],["yref","paper"]]}]],["title",{"type":"map","entries":[["text",""]]}],["uirevision",true],["width",800],["xaxis",{"type":"map","entries":[["automargin",false],["range",[4.12,8.08]],["side","bottom"],["title",{"type":"map","entries":[["text","sepal_length"]]}]]}],["yaxis",{"type":"map","entries":[["automargin",false],["range",[1.76,4.640000000000001]],["side","left"],["title",{"type":"map","entries":[["text","sepal_width"]]}]]}],["template",{"type":"map","entries":[["data",{"type":"map","entries":[["histogram2dcontour",[{"type":"map","entries":[["type","histogram2dcontour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["choropleth",[{"type":"map","entries":[["type","choropleth"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["histogram2d",[{"type":"map","entries":[["type","histogram2d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmap",[{"type":"map","entries":[["type","heatmap"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmapgl",[{"type":"map","entries":[["type","heatmapgl"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["contourcarpet",[{"type":"map","entries":[["type","contourcarpet"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["contour",[{"type":"map","entries":[["type","contour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["surface",[{"type":"map","entries":[["type","surface"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["mesh3d",[{"type":"map","entries":[["type","mesh3d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["scatter",[{"type":"map","entries":[["fillpattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}],["type","scatter"]]}]],["parcoords",[{"type":"map","entries":[["type","parcoords"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolargl",[{"type":"map","entries":[["type","scatterpolargl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["bar",[{"type":"map","entries":[["error_x",{"type":"map","entries":[["color","#2a3f5f"]]}],["error_y",{"type":"map","entries":[["color","#2a3f5f"]]}],["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","bar"]]}]],["scattergeo",[{"type":"map","entries":[["type","scattergeo"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolar",[{"type":"map","entries":[["type","scatterpolar"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["histogram",[{"type":"map","entries":[["marker",{"type":"map","entries":[["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","histogram"]]}]],["scattergl",[{"type":"map","entries":[["type","scattergl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatter3d",[{"type":"map","entries":[["type","scatter3d"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattermapbox",[{"type":"map","entries":[["type","scattermapbox"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterternary",[{"type":"map","entries":[["type","scatterternary"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattercarpet",[{"type":"map","entries":[["type","scattercarpet"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["carpet",[{"type":"map","entries":[["aaxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["baxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["type","carpet"]]}]],["table",[{"type":"map","entries":[["cells",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#EBF0F8"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["header",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#C8D4E3"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["type","table"]]}]],["barpolar",[{"type":"map","entries":[["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","barpolar"]]}]],["pie",[{"type":"map","entries":[["automargin",true],["type","pie"]]}]]]}],["layout",{"type":"map","entries":[["autotypenumbers","strict"],["colorway",["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"]],["font",{"type":"map","entries":[["color","#2a3f5f"]]}],["hovermode","closest"],["hoverlabel",{"type":"map","entries":[["align","left"]]}],["paper_bgcolor","white"],["plot_bgcolor","white"],["polar",{"type":"map","entries":[["bgcolor","white"],["angularaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}],["radialaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}]]}],["ternary",{"type":"map","entries":[["bgcolor","white"],["aaxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["baxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["caxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}]]}],["coloraxis",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["colorscale",{"type":"map","entries":[["sequential",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["sequentialminus",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["diverging",[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]]]}],["xaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["yaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["scene",{"type":"map","entries":[["xaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["yaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["zaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}]]}],["shapedefaults",{"type":"map","entries":[["line",{"type":"map","entries":[["color","#2a3f5f"]]}]]}],["annotationdefaults",{"type":"map","entries":[["arrowcolor","#2a3f5f"],["arrowhead",0],["arrowwidth",1]]}],["geo",{"type":"map","entries":[["bgcolor","white"],["landcolor","white"],["subunitcolor","#C8D4E3"],["showland",true],["showlakes",true],["lakecolor","white"]]}],["title",{"type":"map","entries":[["x",0.05]]}],["mapbox",{"type":"map","entries":[["style","light"]]}]]}]]}]]},"config":{"type":"map","entries":[["responsive",false],["displayModeBar",true]]},"data_sources":[{"type":"object","name":"ColumnDataSource","id":"p1022","attributes":{"selected":{"type":"object","name":"Selection","id":"p1023","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1024"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]]}}},{"type":"object","name":"ColumnDataSource","id":"p1025","attributes":{"selected":{"type":"object","name":"Selection","id":"p1026","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1027"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]]}}}],"relayout":null,"restyle":null,"viewport_update_throttle":200}},{"type":"object","name":"Spacer","id":"p1032","attributes":{"name":"Spacer01425","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1059","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"id":"p1046"}],"height":20,"min_height":20,"margin":0,"align":"start"}},{"type":"object","name":"panel.models.plotly.PlotlyPlot","id":"p1041","attributes":{"name":"Plotly01914","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1060","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1061","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/plotly.css"}},{"id":"p1046"},":host { --plotly-icon-color: gray; --plotly-active-icon-color: #2a3f5f; }"],"margin":[5,10],"sizing_mode":"stretch_both","align":"start","data":[{"type":"map","entries":[["legendgroup","Histogram_"],["marker",{"type":"map","entries":[["color","#F08080"],["line",{"type":"map","entries":[["color","black"],["width",1]]}],["opacity",0.1]]}],["name",""],["orientation","v"],["selectedpoints",false],["showlegend",false],["uid","82944638-dc4e-41e9-a0b4-52e5d64a2df1"],["width",0.11999999999999997],["type","bar"]]},{"type":"map","entries":[["legendgroup","Histogram_"],["marker",{"type":"map","entries":[["color","#F08080"],["line",{"type":"map","entries":[["color","black"],["width",1]]}],["opacity",1]]}],["name",""],["orientation","v"],["selectedpoints",false],["showlegend",false],["uid","966ae77f-7ce0-44ed-9292-70ca0137872f"],["width",0.11999999999999997],["type","bar"]]}],"layout":{"type":"map","entries":[["autosize",false],["barmode","overlay"],["dragmode","select"],["height",400],["margin",{"type":"map","entries":[["b",50],["l",50],["pad",4],["r",50],["t",50]]}],["selectdirection","h"],["shapes",[{"type":"map","entries":[["fillcolor","#30a2da"],["line",{"type":"map","entries":[["color","#c9cbce"],["width",1]]}],["name","Element: 0"],["opacity",0.5],["type","rect"],["visible",false],["xref","x"],["y0",0],["y1",1],["yref","paper"]]}]],["title",{"type":"map","entries":[["text",""]]}],["uirevision",true],["width",800],["xaxis",{"type":"map","entries":[["automargin",false],["range",[-0.01999999999999999,2.62]],["side","bottom"],["title",{"type":"map","entries":[["text","petal_width"]]}]]}],["yaxis",{"type":"map","entries":[["automargin",false],["range",[-3.4000000000000004,37.4]],["side","left"],["title",{"type":"map","entries":[["text","Count"]]}]]}],["template",{"type":"map","entries":[["data",{"type":"map","entries":[["histogram2dcontour",[{"type":"map","entries":[["type","histogram2dcontour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["choropleth",[{"type":"map","entries":[["type","choropleth"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["histogram2d",[{"type":"map","entries":[["type","histogram2d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmap",[{"type":"map","entries":[["type","heatmap"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmapgl",[{"type":"map","entries":[["type","heatmapgl"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["contourcarpet",[{"type":"map","entries":[["type","contourcarpet"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["contour",[{"type":"map","entries":[["type","contour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["surface",[{"type":"map","entries":[["type","surface"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["mesh3d",[{"type":"map","entries":[["type","mesh3d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["scatter",[{"type":"map","entries":[["fillpattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}],["type","scatter"]]}]],["parcoords",[{"type":"map","entries":[["type","parcoords"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolargl",[{"type":"map","entries":[["type","scatterpolargl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["bar",[{"type":"map","entries":[["error_x",{"type":"map","entries":[["color","#2a3f5f"]]}],["error_y",{"type":"map","entries":[["color","#2a3f5f"]]}],["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","bar"]]}]],["scattergeo",[{"type":"map","entries":[["type","scattergeo"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolar",[{"type":"map","entries":[["type","scatterpolar"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["histogram",[{"type":"map","entries":[["marker",{"type":"map","entries":[["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","histogram"]]}]],["scattergl",[{"type":"map","entries":[["type","scattergl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatter3d",[{"type":"map","entries":[["type","scatter3d"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattermapbox",[{"type":"map","entries":[["type","scattermapbox"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterternary",[{"type":"map","entries":[["type","scatterternary"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattercarpet",[{"type":"map","entries":[["type","scattercarpet"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["carpet",[{"type":"map","entries":[["aaxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["baxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["type","carpet"]]}]],["table",[{"type":"map","entries":[["cells",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#EBF0F8"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["header",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#C8D4E3"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["type","table"]]}]],["barpolar",[{"type":"map","entries":[["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","barpolar"]]}]],["pie",[{"type":"map","entries":[["automargin",true],["type","pie"]]}]]]}],["layout",{"type":"map","entries":[["autotypenumbers","strict"],["colorway",["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"]],["font",{"type":"map","entries":[["color","#2a3f5f"]]}],["hovermode","closest"],["hoverlabel",{"type":"map","entries":[["align","left"]]}],["paper_bgcolor","white"],["plot_bgcolor","white"],["polar",{"type":"map","entries":[["bgcolor","white"],["angularaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}],["radialaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}]]}],["ternary",{"type":"map","entries":[["bgcolor","white"],["aaxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["baxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["caxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}]]}],["coloraxis",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["colorscale",{"type":"map","entries":[["sequential",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["sequentialminus",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["diverging",[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]]]}],["xaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["yaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["scene",{"type":"map","entries":[["xaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["yaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["zaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}]]}],["shapedefaults",{"type":"map","entries":[["line",{"type":"map","entries":[["color","#2a3f5f"]]}]]}],["annotationdefaults",{"type":"map","entries":[["arrowcolor","#2a3f5f"],["arrowhead",0],["arrowwidth",1]]}],["geo",{"type":"map","entries":[["bgcolor","white"],["landcolor","white"],["subunitcolor","#C8D4E3"],["showland",true],["showlakes",true],["lakecolor","white"]]}],["title",{"type":"map","entries":[["x",0.05]]}],["mapbox",{"type":"map","entries":[["style","light"]]}]]}]]}]]},"config":{"type":"map","entries":[["responsive",false],["displayModeBar",true]]},"data_sources":[{"type":"object","name":"ColumnDataSource","id":"p1033","attributes":{"selected":{"type":"object","name":"Selection","id":"p1034","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1035"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]]}}},{"type":"object","name":"ColumnDataSource","id":"p1036","attributes":{"selected":{"type":"object","name":"Selection","id":"p1037","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1038"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]]}}}],"relayout":null,"restyle":null,"viewport_update_throttle":200}}]}}],"defs":[{"type":"model","name":"ReactiveHTML1"},{"type":"model","name":"FlexBox1","properties":[{"name":"align_content","kind":"Any","default":"flex-start"},{"name":"align_items","kind":"Any","default":"flex-start"},{"name":"flex_direction","kind":"Any","default":"row"},{"name":"flex_wrap","kind":"Any","default":"wrap"},{"name":"justify_content","kind":"Any","default":"flex-start"}]},{"type":"model","name":"FloatPanel1","properties":[{"name":"config","kind":"Any","default":{"type":"map"}},{"name":"contained","kind":"Any","default":true},{"name":"position","kind":"Any","default":"right-top"},{"name":"offsetx","kind":"Any","default":null},{"name":"offsety","kind":"Any","default":null},{"name":"theme","kind":"Any","default":"primary"},{"name":"status","kind":"Any","default":"normalized"}]},{"type":"model","name":"GridStack1","properties":[{"name":"mode","kind":"Any","default":"warn"},{"name":"ncols","kind":"Any","default":null},{"name":"nrows","kind":"Any","default":null},{"name":"allow_resize","kind":"Any","default":true},{"name":"allow_drag","kind":"Any","default":true},{"name":"state","kind":"Any","default":[]}]},{"type":"model","name":"drag1","properties":[{"name":"slider_width","kind":"Any","default":5},{"name":"slider_color","kind":"Any","default":"black"},{"name":"value","kind":"Any","default":50}]},{"type":"model","name":"click1","properties":[{"name":"terminal_output","kind":"Any","default":""},{"name":"debug_name","kind":"Any","default":""},{"name":"clears","kind":"Any","default":0}]},{"type":"model","name":"copy_to_clipboard1","properties":[{"name":"fill","kind":"Any","default":"none"},{"name":"value","kind":"Any","default":null}]},{"type":"model","name":"FastWrapper1","properties":[{"name":"object","kind":"Any","default":null},{"name":"style","kind":"Any","default":null}]},{"type":"model","name":"NotificationAreaBase1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0}]},{"type":"model","name":"NotificationArea1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"notifications","kind":"Any","default":[]},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0},{"name":"types","kind":"Any","default":[{"type":"map","entries":[["type","warning"],["background","#ffc107"],["icon",{"type":"map","entries":[["className","fas fa-exclamation-triangle"],["tagName","i"],["color","white"]]}]]},{"type":"map","entries":[["type","info"],["background","#007bff"],["icon",{"type":"map","entries":[["className","fas fa-info-circle"],["tagName","i"],["color","white"]]}]]}]}]},{"type":"model","name":"Notification","properties":[{"name":"background","kind":"Any","default":null},{"name":"duration","kind":"Any","default":3000},{"name":"icon","kind":"Any","default":null},{"name":"message","kind":"Any","default":""},{"name":"notification_type","kind":"Any","default":null},{"name":"_destroyed","kind":"Any","default":false}]},{"type":"model","name":"TemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"BootstrapTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"MaterialTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]}]}}
|
319 |
+
</script>
|
320 |
+
<script type="text/javascript">
|
321 |
+
(function() {
|
322 |
+
const fn = function() {
|
323 |
+
Bokeh.safely(function() {
|
324 |
+
(function(root) {
|
325 |
+
function embed_document(root) {
|
326 |
+
const docs_json = document.getElementById('p1077').textContent;
|
327 |
+
const render_items = [{"docid":"bbfc5532-5c41-444f-bdbd-a46cd792fed8","roots":{"p1002":"bc910aae-b8ae-41ce-a4c9-9ab132afa0d8","p1009":"d2c62822-e788-475d-8fc3-0ceaacc32344","p1012":"d8930239-a736-4cdf-8e6d-d4104c064f69","p1013":"fa7cc2b1-2f61-4e8f-bbd2-10a5445be963","p1016":"deab833e-ac0f-4116-953c-e879a1bfc5bd","p1017":"be2fe477-8dfd-4e33-af98-95a8d054f7b9"},"root_ids":["p1002","p1009","p1012","p1013","p1016","p1017"]}];
|
328 |
+
root.Bokeh.embed.embed_items(docs_json, render_items);
|
329 |
+
}
|
330 |
+
if (root.Bokeh !== undefined) {
|
331 |
+
embed_document(root);
|
332 |
+
} else {
|
333 |
+
let attempts = 0;
|
334 |
+
const timer = setInterval(function(root) {
|
335 |
+
if (root.Bokeh !== undefined) {
|
336 |
+
clearInterval(timer);
|
337 |
+
embed_document(root);
|
338 |
+
} else {
|
339 |
+
attempts++;
|
340 |
+
if (attempts > 100) {
|
341 |
+
clearInterval(timer);
|
342 |
+
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
343 |
+
}
|
344 |
+
}
|
345 |
+
}, 10, root)
|
346 |
+
}
|
347 |
+
})(window);
|
348 |
+
});
|
349 |
+
};
|
350 |
+
if (document.readyState != "loading") fn();
|
351 |
+
else document.addEventListener("DOMContentLoaded", fn);
|
352 |
+
})();
|
353 |
+
</script>
|
354 |
+
</body>
|
355 |
+
</html>
|
crossfiltering_holoviews_plotly.js
ADDED
@@ -0,0 +1,205 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
importScripts("https://cdn.jsdelivr.net/pyodide/v0.24.1/full/pyodide.js");
|
2 |
+
|
3 |
+
function sendPatch(patch, buffers, msg_id) {
|
4 |
+
self.postMessage({
|
5 |
+
type: 'patch',
|
6 |
+
patch: patch,
|
7 |
+
buffers: buffers
|
8 |
+
})
|
9 |
+
}
|
10 |
+
|
11 |
+
async function startApplication() {
|
12 |
+
console.log("Loading pyodide!");
|
13 |
+
self.postMessage({type: 'status', msg: 'Loading pyodide'})
|
14 |
+
self.pyodide = await loadPyodide();
|
15 |
+
self.pyodide.globals.set("sendPatch", sendPatch);
|
16 |
+
console.log("Loaded!");
|
17 |
+
await self.pyodide.loadPackage("micropip");
|
18 |
+
const env_spec = ['https://cdn.holoviz.org/panel/wheels/bokeh-3.3.2-py3-none-any.whl', 'https://cdn.holoviz.org/panel/1.3.6/dist/wheels/panel-1.3.6-py3-none-any.whl', 'pyodide-http==0.2.1', 'holoviews', 'pandas', 'plotly']
|
19 |
+
for (const pkg of env_spec) {
|
20 |
+
let pkg_name;
|
21 |
+
if (pkg.endsWith('.whl')) {
|
22 |
+
pkg_name = pkg.split('/').slice(-1)[0].split('-')[0]
|
23 |
+
} else {
|
24 |
+
pkg_name = pkg
|
25 |
+
}
|
26 |
+
self.postMessage({type: 'status', msg: `Installing ${pkg_name}`})
|
27 |
+
try {
|
28 |
+
await self.pyodide.runPythonAsync(`
|
29 |
+
import micropip
|
30 |
+
await micropip.install('${pkg}');
|
31 |
+
`);
|
32 |
+
} catch(e) {
|
33 |
+
console.log(e)
|
34 |
+
self.postMessage({
|
35 |
+
type: 'status',
|
36 |
+
msg: `Error while installing ${pkg_name}`
|
37 |
+
});
|
38 |
+
}
|
39 |
+
}
|
40 |
+
console.log("Packages loaded!");
|
41 |
+
self.postMessage({type: 'status', msg: 'Executing code'})
|
42 |
+
const code = `
|
43 |
+
|
44 |
+
import asyncio
|
45 |
+
|
46 |
+
from panel.io.pyodide import init_doc, write_doc
|
47 |
+
|
48 |
+
init_doc()
|
49 |
+
|
50 |
+
"""*Linked Brushing* is a very powerful technique. It's also often called
|
51 |
+
*Linked Selections* or *Crossfiltering*.
|
52 |
+
|
53 |
+
This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
|
54 |
+
(http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
|
55 |
+
[Introducing Dash HoloViews]\
|
56 |
+
(https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
|
57 |
+
|
58 |
+
This example uses the *Iris* dataset.
|
59 |
+
"""
|
60 |
+
from typing import Tuple
|
61 |
+
|
62 |
+
import holoviews as hv
|
63 |
+
import panel as pn
|
64 |
+
from holoviews import opts
|
65 |
+
from panel.template import FastListTemplate
|
66 |
+
import plotly.io as pio
|
67 |
+
import pandas as pd
|
68 |
+
|
69 |
+
@pn.cache
|
70 |
+
def get_iris_data():
|
71 |
+
return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
|
72 |
+
|
73 |
+
|
74 |
+
ACCENT = "#F08080"
|
75 |
+
|
76 |
+
CSS = """
|
77 |
+
.main .card-margin.stretch_both {
|
78 |
+
height: calc(100vh - 125px) !important;
|
79 |
+
}
|
80 |
+
"""
|
81 |
+
|
82 |
+
def _plotly_hooks(plot, element):
|
83 |
+
"""Used by HoloViews to give plots plotly plots special treatment"""
|
84 |
+
fig = plot.state
|
85 |
+
|
86 |
+
fig["layout"]["dragmode"] = "select"
|
87 |
+
fig["config"]["displayModeBar"] = True
|
88 |
+
if isinstance(element, hv.Histogram):
|
89 |
+
# Constrain histogram selection direction to horizontal
|
90 |
+
fig["layout"]["selectdirection"] = "h"
|
91 |
+
|
92 |
+
|
93 |
+
def get_linked_plots() -> Tuple:
|
94 |
+
"""Returns a tuple (scatter, hist) of linked plots
|
95 |
+
|
96 |
+
See http://holoviews.org/user_guide/Linked_Brushing.html
|
97 |
+
"""
|
98 |
+
|
99 |
+
dataset = hv.Dataset(get_iris_data())
|
100 |
+
|
101 |
+
scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
|
102 |
+
hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
|
103 |
+
|
104 |
+
# pylint: disable=no-value-for-parameter
|
105 |
+
selection_linker = hv.selection.link_selections.instance()
|
106 |
+
# pylint: disable=no-member
|
107 |
+
scatter = selection_linker(scatter).opts(
|
108 |
+
opts.Scatter(color=ACCENT, size=10, hooks=[_plotly_hooks], width=800, height=400),
|
109 |
+
)
|
110 |
+
hist = selection_linker(hist).opts(
|
111 |
+
opts.Histogram(color=ACCENT, hooks=[_plotly_hooks], width=800, height=400)
|
112 |
+
)
|
113 |
+
|
114 |
+
return scatter, hist
|
115 |
+
|
116 |
+
|
117 |
+
def create_app():
|
118 |
+
"""Returns the app in a nice FastListTemplate"""
|
119 |
+
if pn.config.theme == "dark":
|
120 |
+
pio.templates.default = "plotly_dark"
|
121 |
+
else:
|
122 |
+
pio.templates.default = "plotly_white"
|
123 |
+
scatter, hist = get_linked_plots()
|
124 |
+
scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both", backend="plotly")
|
125 |
+
hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both", backend="plotly")
|
126 |
+
|
127 |
+
def reset(event):
|
128 |
+
scatter, hist = get_linked_plots()
|
129 |
+
scatter_panel.object=scatter
|
130 |
+
hist_panel.object=hist
|
131 |
+
|
132 |
+
reset_button = pn.widgets.Button(name="RESET PLOTS", on_click=reset, description="Resets the plots. Plotly does not have a built in way to do this.")
|
133 |
+
|
134 |
+
template = FastListTemplate(
|
135 |
+
site="Awesome Panel",
|
136 |
+
site_url="https://awesome-panel.org",
|
137 |
+
title="Linked Brushing with HoloViews and Plotly",
|
138 |
+
accent=ACCENT,
|
139 |
+
main=[
|
140 |
+
# We need to wrap in Columns to get them to stretch properly
|
141 |
+
pn.Column(reset_button, scatter_panel, pn.layout.Spacer(height=20), hist_panel, height=870, sizing_mode="stretch_width"),
|
142 |
+
],
|
143 |
+
main_max_width="850px",
|
144 |
+
)
|
145 |
+
return template
|
146 |
+
|
147 |
+
pn.extension("plotly", raw_css=[CSS])
|
148 |
+
hv.extension("plotly")
|
149 |
+
create_app().servable()
|
150 |
+
|
151 |
+
|
152 |
+
await write_doc()
|
153 |
+
`
|
154 |
+
|
155 |
+
try {
|
156 |
+
const [docs_json, render_items, root_ids] = await self.pyodide.runPythonAsync(code)
|
157 |
+
self.postMessage({
|
158 |
+
type: 'render',
|
159 |
+
docs_json: docs_json,
|
160 |
+
render_items: render_items,
|
161 |
+
root_ids: root_ids
|
162 |
+
})
|
163 |
+
} catch(e) {
|
164 |
+
const traceback = `${e}`
|
165 |
+
const tblines = traceback.split('\n')
|
166 |
+
self.postMessage({
|
167 |
+
type: 'status',
|
168 |
+
msg: tblines[tblines.length-2]
|
169 |
+
});
|
170 |
+
throw e
|
171 |
+
}
|
172 |
+
}
|
173 |
+
|
174 |
+
self.onmessage = async (event) => {
|
175 |
+
const msg = event.data
|
176 |
+
if (msg.type === 'rendered') {
|
177 |
+
self.pyodide.runPythonAsync(`
|
178 |
+
from panel.io.state import state
|
179 |
+
from panel.io.pyodide import _link_docs_worker
|
180 |
+
|
181 |
+
_link_docs_worker(state.curdoc, sendPatch, setter='js')
|
182 |
+
`)
|
183 |
+
} else if (msg.type === 'patch') {
|
184 |
+
self.pyodide.globals.set('patch', msg.patch)
|
185 |
+
self.pyodide.runPythonAsync(`
|
186 |
+
state.curdoc.apply_json_patch(patch.to_py(), setter='js')
|
187 |
+
`)
|
188 |
+
self.postMessage({type: 'idle'})
|
189 |
+
} else if (msg.type === 'location') {
|
190 |
+
self.pyodide.globals.set('location', msg.location)
|
191 |
+
self.pyodide.runPythonAsync(`
|
192 |
+
import json
|
193 |
+
from panel.io.state import state
|
194 |
+
from panel.util import edit_readonly
|
195 |
+
if state.location:
|
196 |
+
loc_data = json.loads(location)
|
197 |
+
with edit_readonly(state.location):
|
198 |
+
state.location.param.update({
|
199 |
+
k: v for k, v in loc_data.items() if k in state.location.param
|
200 |
+
})
|
201 |
+
`)
|
202 |
+
}
|
203 |
+
}
|
204 |
+
|
205 |
+
startApplication()
|
crossfiltering_holoviews_plotly.py
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""*Linked Brushing* is a very powerful technique. It's also often called
|
2 |
+
*Linked Selections* or *Crossfiltering*.
|
3 |
+
|
4 |
+
This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
|
5 |
+
(http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
|
6 |
+
[Introducing Dash HoloViews]\
|
7 |
+
(https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
|
8 |
+
|
9 |
+
This example uses the *Iris* dataset.
|
10 |
+
"""
|
11 |
+
from typing import Tuple
|
12 |
+
|
13 |
+
import holoviews as hv
|
14 |
+
import panel as pn
|
15 |
+
from holoviews import opts
|
16 |
+
from panel.template import FastListTemplate
|
17 |
+
import plotly.io as pio
|
18 |
+
import pandas as pd
|
19 |
+
|
20 |
+
@pn.cache
|
21 |
+
def get_iris_data():
|
22 |
+
return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
|
23 |
+
|
24 |
+
|
25 |
+
ACCENT = "#F08080"
|
26 |
+
|
27 |
+
CSS = """
|
28 |
+
.main .card-margin.stretch_both {
|
29 |
+
height: calc(100vh - 125px) !important;
|
30 |
+
}
|
31 |
+
"""
|
32 |
+
|
33 |
+
def _plotly_hooks(plot, element):
|
34 |
+
"""Used by HoloViews to give plots plotly plots special treatment"""
|
35 |
+
fig = plot.state
|
36 |
+
|
37 |
+
fig["layout"]["dragmode"] = "select"
|
38 |
+
fig["config"]["displayModeBar"] = True
|
39 |
+
if isinstance(element, hv.Histogram):
|
40 |
+
# Constrain histogram selection direction to horizontal
|
41 |
+
fig["layout"]["selectdirection"] = "h"
|
42 |
+
|
43 |
+
|
44 |
+
def get_linked_plots() -> Tuple:
|
45 |
+
"""Returns a tuple (scatter, hist) of linked plots
|
46 |
+
|
47 |
+
See http://holoviews.org/user_guide/Linked_Brushing.html
|
48 |
+
"""
|
49 |
+
|
50 |
+
dataset = hv.Dataset(get_iris_data())
|
51 |
+
|
52 |
+
scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
|
53 |
+
hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
|
54 |
+
|
55 |
+
# pylint: disable=no-value-for-parameter
|
56 |
+
selection_linker = hv.selection.link_selections.instance()
|
57 |
+
# pylint: disable=no-member
|
58 |
+
scatter = selection_linker(scatter).opts(
|
59 |
+
opts.Scatter(color=ACCENT, size=10, hooks=[_plotly_hooks], width=800, height=400),
|
60 |
+
)
|
61 |
+
hist = selection_linker(hist).opts(
|
62 |
+
opts.Histogram(color=ACCENT, hooks=[_plotly_hooks], width=800, height=400)
|
63 |
+
)
|
64 |
+
|
65 |
+
return scatter, hist
|
66 |
+
|
67 |
+
|
68 |
+
def create_app():
|
69 |
+
"""Returns the app in a nice FastListTemplate"""
|
70 |
+
if pn.config.theme == "dark":
|
71 |
+
pio.templates.default = "plotly_dark"
|
72 |
+
else:
|
73 |
+
pio.templates.default = "plotly_white"
|
74 |
+
scatter, hist = get_linked_plots()
|
75 |
+
scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both", backend="plotly")
|
76 |
+
hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both", backend="plotly")
|
77 |
+
|
78 |
+
def reset(event):
|
79 |
+
scatter, hist = get_linked_plots()
|
80 |
+
scatter_panel.object=scatter
|
81 |
+
hist_panel.object=hist
|
82 |
+
|
83 |
+
reset_button = pn.widgets.Button(name="RESET PLOTS", on_click=reset, description="Resets the plots. Plotly does not have a built in way to do this.")
|
84 |
+
|
85 |
+
template = FastListTemplate(
|
86 |
+
site="Awesome Panel",
|
87 |
+
site_url="https://awesome-panel.org",
|
88 |
+
title="Linked Brushing with HoloViews and Plotly",
|
89 |
+
accent=ACCENT,
|
90 |
+
main=[
|
91 |
+
# We need to wrap in Columns to get them to stretch properly
|
92 |
+
pn.Column(reset_button, scatter_panel, pn.layout.Spacer(height=20), hist_panel, height=870, sizing_mode="stretch_width"),
|
93 |
+
],
|
94 |
+
main_max_width="850px",
|
95 |
+
)
|
96 |
+
return template
|
97 |
+
|
98 |
+
pn.extension("plotly", raw_css=[CSS])
|
99 |
+
hv.extension("plotly")
|
100 |
+
create_app().servable()
|
index.js
ADDED
@@ -0,0 +1,190 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
importScripts("https://cdn.jsdelivr.net/pyodide/v0.24.1/full/pyodide.js");
|
2 |
+
|
3 |
+
function sendPatch(patch, buffers, msg_id) {
|
4 |
+
self.postMessage({
|
5 |
+
type: 'patch',
|
6 |
+
patch: patch,
|
7 |
+
buffers: buffers
|
8 |
+
})
|
9 |
+
}
|
10 |
+
|
11 |
+
async function startApplication() {
|
12 |
+
console.log("Loading pyodide!");
|
13 |
+
self.postMessage({type: 'status', msg: 'Loading pyodide'})
|
14 |
+
self.pyodide = await loadPyodide();
|
15 |
+
self.pyodide.globals.set("sendPatch", sendPatch);
|
16 |
+
console.log("Loaded!");
|
17 |
+
await self.pyodide.loadPackage("micropip");
|
18 |
+
const env_spec = ['https://cdn.holoviz.org/panel/wheels/bokeh-3.3.2-py3-none-any.whl', 'https://cdn.holoviz.org/panel/1.3.6/dist/wheels/panel-1.3.6-py3-none-any.whl', 'pyodide-http==0.2.1', 'holoviews', 'pandas']
|
19 |
+
for (const pkg of env_spec) {
|
20 |
+
let pkg_name;
|
21 |
+
if (pkg.endsWith('.whl')) {
|
22 |
+
pkg_name = pkg.split('/').slice(-1)[0].split('-')[0]
|
23 |
+
} else {
|
24 |
+
pkg_name = pkg
|
25 |
+
}
|
26 |
+
self.postMessage({type: 'status', msg: `Installing ${pkg_name}`})
|
27 |
+
try {
|
28 |
+
await self.pyodide.runPythonAsync(`
|
29 |
+
import micropip
|
30 |
+
await micropip.install('${pkg}');
|
31 |
+
`);
|
32 |
+
} catch(e) {
|
33 |
+
console.log(e)
|
34 |
+
self.postMessage({
|
35 |
+
type: 'status',
|
36 |
+
msg: `Error while installing ${pkg_name}`
|
37 |
+
});
|
38 |
+
}
|
39 |
+
}
|
40 |
+
console.log("Packages loaded!");
|
41 |
+
self.postMessage({type: 'status', msg: 'Executing code'})
|
42 |
+
const code = `
|
43 |
+
|
44 |
+
import asyncio
|
45 |
+
|
46 |
+
from panel.io.pyodide import init_doc, write_doc
|
47 |
+
|
48 |
+
init_doc()
|
49 |
+
|
50 |
+
"""*Linked Brushing* is a very powerful technique. It's also often called
|
51 |
+
*Linked Selections* or *Crossfiltering*.
|
52 |
+
|
53 |
+
This example is inspired by the HoloViews [Linked Brushing Reference Guide]\
|
54 |
+
(http://holoviews.org/user_guide/Linked_Brushing.html) and the Plotly blog post
|
55 |
+
[Introducing Dash HoloViews]\
|
56 |
+
(https://medium.com/plotly/introducing-dash-holoviews-6a05c088ebe5).
|
57 |
+
|
58 |
+
This example uses the *Iris* dataset.
|
59 |
+
"""
|
60 |
+
from typing import Tuple
|
61 |
+
|
62 |
+
import holoviews as hv
|
63 |
+
import pandas as pd
|
64 |
+
import panel as pn
|
65 |
+
from holoviews import opts
|
66 |
+
from panel.template import FastListTemplate
|
67 |
+
|
68 |
+
|
69 |
+
@pn.cache
|
70 |
+
def get_iris_data():
|
71 |
+
return pd.read_csv("https://cdn.awesome-panel.org/resources/crossfiltering_holoviews/iris.csv.gz")
|
72 |
+
|
73 |
+
|
74 |
+
ACCENT = "#F08080"
|
75 |
+
|
76 |
+
CSS = """
|
77 |
+
.main .card-margin.stretch_both {
|
78 |
+
height: calc(50vh - 65px) !important;
|
79 |
+
}
|
80 |
+
"""
|
81 |
+
if not CSS in pn.config.raw_css:
|
82 |
+
pn.config.raw_css.append(CSS)
|
83 |
+
|
84 |
+
BOKEH_TOOLS = {
|
85 |
+
"tools": ["hover"], "active_tools": ["box_select"]
|
86 |
+
}
|
87 |
+
|
88 |
+
|
89 |
+
def get_linked_plots() -> Tuple:
|
90 |
+
"""Returns a tuple (scatter, hist) of linked plots
|
91 |
+
|
92 |
+
See http://holoviews.org/user_guide/Linked_Brushing.html
|
93 |
+
"""
|
94 |
+
|
95 |
+
dataset = hv.Dataset(get_iris_data())
|
96 |
+
|
97 |
+
scatter = hv.Scatter(dataset, kdims=["sepal_length"], vdims=["sepal_width"])
|
98 |
+
hist = hv.operation.histogram(dataset, dimension="petal_width", normed=False)
|
99 |
+
|
100 |
+
# pylint: disable=no-value-for-parameter
|
101 |
+
selection_linker = hv.selection.link_selections.instance()
|
102 |
+
# pylint: disable=no-member
|
103 |
+
scatter = selection_linker(scatter).opts(
|
104 |
+
opts.Scatter(color=ACCENT, responsive=True, size=10, **BOKEH_TOOLS),
|
105 |
+
)
|
106 |
+
hist = selection_linker(hist).opts(
|
107 |
+
opts.Histogram(color=ACCENT, responsive=True, **BOKEH_TOOLS)
|
108 |
+
)
|
109 |
+
|
110 |
+
return scatter, hist
|
111 |
+
|
112 |
+
|
113 |
+
def create_app():
|
114 |
+
"""Returns the app in a nice FastListTemplate"""
|
115 |
+
scatter, hist = get_linked_plots()
|
116 |
+
scatter_panel = pn.pane.HoloViews(scatter, sizing_mode="stretch_both")
|
117 |
+
hist_panel = pn.pane.HoloViews(hist, sizing_mode="stretch_both")
|
118 |
+
|
119 |
+
template = FastListTemplate(
|
120 |
+
site="Awesome Panel",
|
121 |
+
site_url="https://awesome-panel.org",
|
122 |
+
title="Linked Brushing with HoloViews and Bokeh",
|
123 |
+
accent=ACCENT,
|
124 |
+
main=[
|
125 |
+
# We need to wrap in Columns to get them to stretch properly
|
126 |
+
pn.Column(scatter_panel, sizing_mode="stretch_both"),
|
127 |
+
pn.Column(hist_panel, sizing_mode="stretch_both"),
|
128 |
+
],
|
129 |
+
)
|
130 |
+
return template
|
131 |
+
|
132 |
+
pn.extension()
|
133 |
+
hv.extension("bokeh")
|
134 |
+
create_app().servable()
|
135 |
+
|
136 |
+
|
137 |
+
await write_doc()
|
138 |
+
`
|
139 |
+
|
140 |
+
try {
|
141 |
+
const [docs_json, render_items, root_ids] = await self.pyodide.runPythonAsync(code)
|
142 |
+
self.postMessage({
|
143 |
+
type: 'render',
|
144 |
+
docs_json: docs_json,
|
145 |
+
render_items: render_items,
|
146 |
+
root_ids: root_ids
|
147 |
+
})
|
148 |
+
} catch(e) {
|
149 |
+
const traceback = `${e}`
|
150 |
+
const tblines = traceback.split('\n')
|
151 |
+
self.postMessage({
|
152 |
+
type: 'status',
|
153 |
+
msg: tblines[tblines.length-2]
|
154 |
+
});
|
155 |
+
throw e
|
156 |
+
}
|
157 |
+
}
|
158 |
+
|
159 |
+
self.onmessage = async (event) => {
|
160 |
+
const msg = event.data
|
161 |
+
if (msg.type === 'rendered') {
|
162 |
+
self.pyodide.runPythonAsync(`
|
163 |
+
from panel.io.state import state
|
164 |
+
from panel.io.pyodide import _link_docs_worker
|
165 |
+
|
166 |
+
_link_docs_worker(state.curdoc, sendPatch, setter='js')
|
167 |
+
`)
|
168 |
+
} else if (msg.type === 'patch') {
|
169 |
+
self.pyodide.globals.set('patch', msg.patch)
|
170 |
+
self.pyodide.runPythonAsync(`
|
171 |
+
state.curdoc.apply_json_patch(patch.to_py(), setter='js')
|
172 |
+
`)
|
173 |
+
self.postMessage({type: 'idle'})
|
174 |
+
} else if (msg.type === 'location') {
|
175 |
+
self.pyodide.globals.set('location', msg.location)
|
176 |
+
self.pyodide.runPythonAsync(`
|
177 |
+
import json
|
178 |
+
from panel.io.state import state
|
179 |
+
from panel.util import edit_readonly
|
180 |
+
if state.location:
|
181 |
+
loc_data = json.loads(location)
|
182 |
+
with edit_readonly(state.location):
|
183 |
+
state.location.param.update({
|
184 |
+
k: v for k, v in loc_data.items() if k in state.location.param
|
185 |
+
})
|
186 |
+
`)
|
187 |
+
}
|
188 |
+
}
|
189 |
+
|
190 |
+
startApplication()
|
issue.html
ADDED
@@ -0,0 +1,355 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en" >
|
3 |
+
<head>
|
4 |
+
<meta charset="utf-8">
|
5 |
+
<title>Linked Brushing with HoloViews and Plotly</title>
|
6 |
+
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/apple-touch-icon.png">
|
7 |
+
<link rel="icon" href="https://cdn.holoviz.org/panel/1.3.6/dist/images/favicon.ico" type=""><meta name="name" content="Linked Brushing with HoloViews and Plotly"> <style>
|
8 |
+
html, body {
|
9 |
+
display: flow-root;
|
10 |
+
box-sizing: border-box;
|
11 |
+
height: 100%;
|
12 |
+
margin: 0;
|
13 |
+
padding: 0;
|
14 |
+
}
|
15 |
+
</style>
|
16 |
+
<style>
|
17 |
+
|
18 |
+
.main .card-margin.stretch_both {
|
19 |
+
height: calc(100vh - 125px) !important;
|
20 |
+
}
|
21 |
+
|
22 |
+
</style>
|
23 |
+
|
24 |
+
<style type="text/css">
|
25 |
+
:host(.pn-loading),
|
26 |
+
.pn-loading {
|
27 |
+
overflow: hidden;
|
28 |
+
}
|
29 |
+
|
30 |
+
:host(.pn-loading):before,
|
31 |
+
.pn-loading:before {
|
32 |
+
position: absolute;
|
33 |
+
height: 100%;
|
34 |
+
width: 100%;
|
35 |
+
content: '';
|
36 |
+
z-index: 1000;
|
37 |
+
background-color: rgb(255, 255, 255, 0.5);
|
38 |
+
border-color: lightgray;
|
39 |
+
background-repeat: no-repeat;
|
40 |
+
background-position: center;
|
41 |
+
background-size: auto 50%;
|
42 |
+
border-width: 1px;
|
43 |
+
cursor: progress;
|
44 |
+
}
|
45 |
+
|
46 |
+
:host(.pn-loading) .pn-loading-msg,
|
47 |
+
.pn-loading .pn-loading-msg {
|
48 |
+
position: absolute;
|
49 |
+
top: 72%;
|
50 |
+
font-size: 2em;
|
51 |
+
color: black;
|
52 |
+
width: 100%;
|
53 |
+
text-align: center;
|
54 |
+
}
|
55 |
+
|
56 |
+
|
57 |
+
:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
|
58 |
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
|
59 |
+
background-size: auto calc(min(50%, 400px));
|
60 |
+
}
|
61 |
+
</style><script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/jquery/jquery.slim.min.js"></script>
|
62 |
+
<script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/plotlyplot/plotly-2.18.0.min.js"></script>
|
63 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-3.3.2.min.js"></script>
|
64 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.3.2.min.js"></script>
|
65 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.3.2.min.js"></script>
|
66 |
+
<script type="text/javascript" src="https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.3.2.min.js"></script>
|
67 |
+
<script type="text/javascript" src="https://cdn.holoviz.org/panel/1.3.6/dist/panel.min.js"></script>
|
68 |
+
|
69 |
+
<script type="text/javascript">
|
70 |
+
Bokeh.set_log_level("info");
|
71 |
+
</script><!-- Template CSS -->
|
72 |
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans">
|
73 |
+
<link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/default.css">
|
74 |
+
<link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast.css">
|
75 |
+
<link rel="stylesheet" href="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastlisttemplate/fast_list_template.css">
|
76 |
+
<style type="text/css">
|
77 |
+
|
78 |
+
:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {
|
79 |
+
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=");
|
80 |
+
background-size: auto calc(min(50%, 400px));
|
81 |
+
}
|
82 |
+
</style>
|
83 |
+
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Open+Sans" />
|
84 |
+
|
85 |
+
<style>
|
86 |
+
:root {
|
87 |
+
--background-color: #ffffff;
|
88 |
+
--body-font: Open Sans, sans-serif;
|
89 |
+
--corner-radius: 3;
|
90 |
+
--header-background: #F08080;
|
91 |
+
--header-color: #ffffff;
|
92 |
+
--sidebar-width: 330px;
|
93 |
+
}
|
94 |
+
body {
|
95 |
+
color: #2B2B2B;
|
96 |
+
background-color: var(--background-color);
|
97 |
+
font-family: var(--body-font);
|
98 |
+
}
|
99 |
+
#header a {
|
100 |
+
color: currentColor;
|
101 |
+
}
|
102 |
+
#header-design-provider {
|
103 |
+
--neutral-fill-hover: var(--header-background);
|
104 |
+
--neutral-fill-rest: var(--header-background);
|
105 |
+
--neutral-foreground-rest: var(--header-color);
|
106 |
+
background: var(--header-background);
|
107 |
+
color: var(--header-color);
|
108 |
+
}
|
109 |
+
#sidebar {
|
110 |
+
min-width: var(--sidebar-width);
|
111 |
+
max-width: var(--sidebar-width);
|
112 |
+
}
|
113 |
+
</style>
|
114 |
+
|
115 |
+
<!-- Template JS -->
|
116 |
+
<script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fastbasetemplate/fast_template.js"></script>
|
117 |
+
<script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/@microsoft/[email protected]/dist/fast-components.js" type="module"></script>
|
118 |
+
<script src="https://cdn.holoviz.org/panel/1.3.6/dist/bundled/fast/js/fast_design.js" type="module"></script>
|
119 |
+
|
120 |
+
<!-- Fast Script -->
|
121 |
+
<script type="text/javascript">
|
122 |
+
document.addEventListener('DOMContentLoaded', (event) => {
|
123 |
+
const header_design = new window.fastDesignProvider("#header-design-provider");
|
124 |
+
const body_design = window.bodyDesign = new window.fastDesignProvider("#body-design-provider");
|
125 |
+
body_design.setLuminance(1.0);
|
126 |
+
body_design.setAccentColor("#F08080")
|
127 |
+
body_design.setNeutralColor("#000000");
|
128 |
+
header_design.setLuminance(1.0);
|
129 |
+
header_design.setAccentColor("#ffffff");
|
130 |
+
header_design.setNeutralColor("#ffffff");
|
131 |
+
});
|
132 |
+
</script>
|
133 |
+
</head>
|
134 |
+
<body class="pn-loading pn-arc">
|
135 |
+
<fast-design-system-provider id="body-design-provider" use-defaults>
|
136 |
+
<div id="container">
|
137 |
+
<fast-design-system-provider id="header-design-provider">
|
138 |
+
<nav id="header" class="shadow" >
|
139 |
+
<div class="app-header">
|
140 |
+
<a class="title" href="https://awesome-panel.org" > Awesome Panel</a>
|
141 |
+
<span class="title">-</span>
|
142 |
+
<a class="title" href="" >Linked Brushing with HoloViews and Plotly</a>
|
143 |
+
</div>
|
144 |
+
<div id="header-items">
|
145 |
+
</div>
|
146 |
+
<div class="pn-toggle-theme">
|
147 |
+
<fast-switch id="theme-switch" style="float: right;" onChange="toggleLightDarkTheme('default')" checked>
|
148 |
+
<span slot="checked-message">
|
149 |
+
<svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z"/></svg>
|
150 |
+
</span>
|
151 |
+
<span slot="unchecked-message">
|
152 |
+
<svg class="theme-toggle-icon" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 25 25"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z"/></svg>
|
153 |
+
</span>
|
154 |
+
</fast-switch>
|
155 |
+
<fast-tooltip anchor="theme-switch" position="bottom">
|
156 |
+
Toggle the Theme
|
157 |
+
</fast-tooltip>
|
158 |
+
</div>
|
159 |
+
<div class="pn-busy-container" id="busy-container">
|
160 |
+
<div id="af0a2967-1e3e-43cc-bb39-982e8bb0f3ca" data-root-id="p1016" style="display: contents;"></div>
|
161 |
+
</div>
|
162 |
+
<fast-tooltip anchor="busy-container" position="left">
|
163 |
+
Busy Indicator
|
164 |
+
</fast-tooltip>
|
165 |
+
</nav>
|
166 |
+
</fast-design-system-provider>
|
167 |
+
|
168 |
+
<div class="row" id="content">
|
169 |
+
|
170 |
+
<div class="main" id="main">
|
171 |
+
<div class="main-margin" style="max-width: 850px;">
|
172 |
+
<div class="card-margin stretch_width">
|
173 |
+
<fast-card class="pn-wrapper">
|
174 |
+
<span class="fullscreen-button" onclick="toggleFullScreen(this)">
|
175 |
+
<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 18 18">
|
176 |
+
<path d="M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z"/>
|
177 |
+
</svg>
|
178 |
+
</span>
|
179 |
+
<div id="e3985a67-67fc-4898-b0ed-3a2d20970648" data-root-id="p1017" style="display: contents;"></div>
|
180 |
+
</fast-card>
|
181 |
+
</div>
|
182 |
+
</div>
|
183 |
+
</div>
|
184 |
+
<fast-dialog id="pn-Modal" hidden>
|
185 |
+
<fast-button class="pn-modal-close" id="pn-closeModal">×</fast-button>
|
186 |
+
<div>
|
187 |
+
</div>
|
188 |
+
</fast-dialog>
|
189 |
+
</div>
|
190 |
+
</div>
|
191 |
+
</fast-design-system-provider>
|
192 |
+
|
193 |
+
<script type="text/javascript">
|
194 |
+
|
195 |
+
</script>
|
196 |
+
|
197 |
+
<script type="text/javascript">
|
198 |
+
function openNav() {
|
199 |
+
document.getElementById("sidebar").classList.remove("hidden");
|
200 |
+
document.getElementById("sidebar-button").onclick = closeNav;
|
201 |
+
}
|
202 |
+
|
203 |
+
function closeNav() {
|
204 |
+
document.getElementById("sidebar").classList.add("hidden");
|
205 |
+
document.getElementById("sidebar-button").onclick = openNav;
|
206 |
+
}
|
207 |
+
|
208 |
+
var modal = document.getElementById("pn-Modal");
|
209 |
+
var span = document.getElementById("pn-closeModal");
|
210 |
+
|
211 |
+
span.onclick = function() {
|
212 |
+
modal.style.display = "none";
|
213 |
+
}
|
214 |
+
|
215 |
+
window.onclick = function(event) {
|
216 |
+
if (event.target == modal) {
|
217 |
+
modal.style.display = "none";
|
218 |
+
}
|
219 |
+
}
|
220 |
+
</script>
|
221 |
+
|
222 |
+
<div id="b72ac8ad-a55f-4bbd-948f-bfc071c692a5" data-root-id="p1009" style="display: contents;"></div>
|
223 |
+
<div id="c5f6f8ff-2479-42ef-afc6-647d3df2c8fb" data-root-id="p1012" style="display: contents;"></div>
|
224 |
+
<div id="e69fd3b3-1a47-4712-aac3-28916ef68de3" data-root-id="p1002" style="display: contents;"></div>
|
225 |
+
<div id="a5fa7556-690a-4513-95a2-40589fb967bf" data-root-id="p1013" style="display: contents;"></div>
|
226 |
+
|
227 |
+
|
228 |
+
<script type="text/javascript">
|
229 |
+
const pyodideWorker = new Worker("./issue.js");
|
230 |
+
pyodideWorker.busy = false
|
231 |
+
pyodideWorker.queue = []
|
232 |
+
|
233 |
+
function send_change(jsdoc, event) {
|
234 |
+
if (event.setter_id != null && event.setter_id == 'py') {
|
235 |
+
return
|
236 |
+
} else if (pyodideWorker.busy && event.model && event.attr) {
|
237 |
+
let events = []
|
238 |
+
for (const old_event of pyodideWorker.queue) {
|
239 |
+
if (!(old_event.model === event.model && old_event.attr === event.attr)) {
|
240 |
+
events.push(old_event)
|
241 |
+
}
|
242 |
+
}
|
243 |
+
events.push(event)
|
244 |
+
pyodideWorker.queue = events
|
245 |
+
return
|
246 |
+
}
|
247 |
+
const patch = jsdoc.create_json_patch([event])
|
248 |
+
pyodideWorker.busy = true
|
249 |
+
pyodideWorker.postMessage({type: 'patch', patch: patch})
|
250 |
+
}
|
251 |
+
|
252 |
+
pyodideWorker.onmessage = async (event) => {
|
253 |
+
const msg = event.data
|
254 |
+
|
255 |
+
const body = document.getElementsByTagName('body')[0]
|
256 |
+
const loading_msgs = document.getElementsByClassName('pn-loading-msg')
|
257 |
+
if (msg.type === 'idle') {
|
258 |
+
if (pyodideWorker.queue.length) {
|
259 |
+
const patch = pyodideWorker.jsdoc.create_json_patch(pyodideWorker.queue)
|
260 |
+
pyodideWorker.busy = true
|
261 |
+
pyodideWorker.queue = []
|
262 |
+
pyodideWorker.postMessage({type: 'patch', patch: patch})
|
263 |
+
} else {
|
264 |
+
pyodideWorker.busy = false
|
265 |
+
}
|
266 |
+
} else if (msg.type === 'status') {
|
267 |
+
let loading_msg
|
268 |
+
if (loading_msgs.length) {
|
269 |
+
loading_msg = loading_msgs[0]
|
270 |
+
} else if (body.classList.contains('pn-loading')) {
|
271 |
+
loading_msg = document.createElement('div')
|
272 |
+
loading_msg.classList.add('pn-loading-msg')
|
273 |
+
body.appendChild(loading_msg)
|
274 |
+
}
|
275 |
+
if (loading_msg != null) {
|
276 |
+
loading_msg.innerHTML = msg.msg
|
277 |
+
}
|
278 |
+
} else if (msg.type === 'render') {
|
279 |
+
const docs_json = JSON.parse(msg.docs_json)
|
280 |
+
const render_items = JSON.parse(msg.render_items)
|
281 |
+
const root_ids = JSON.parse(msg.root_ids)
|
282 |
+
|
283 |
+
// Remap roots in message to element IDs
|
284 |
+
const root_els = document.querySelectorAll('[data-root-id]')
|
285 |
+
const data_roots = []
|
286 |
+
for (const el of root_els) {
|
287 |
+
el.innerHTML = ''
|
288 |
+
data_roots.push([el.getAttribute('data-root-id'), el.id])
|
289 |
+
}
|
290 |
+
data_roots.sort((a, b) => a[0]<b[0] ? -1: 1)
|
291 |
+
const roots = {}
|
292 |
+
for (let i=0; i<data_roots.length; i++) {
|
293 |
+
roots[root_ids[i]] = data_roots[i][1]
|
294 |
+
}
|
295 |
+
render_items[0]['roots'] = roots
|
296 |
+
render_items[0]['root_ids'] = root_ids
|
297 |
+
|
298 |
+
// Embed content
|
299 |
+
const [views] = await Bokeh.embed.embed_items(docs_json, render_items)
|
300 |
+
|
301 |
+
// Remove loading spinner and message
|
302 |
+
body.classList.remove("pn-loading", "arc")
|
303 |
+
for (const loading_msg of loading_msgs) {
|
304 |
+
loading_msg.remove()
|
305 |
+
}
|
306 |
+
|
307 |
+
// Setup bi-directional syncing
|
308 |
+
pyodideWorker.jsdoc = jsdoc = [...views.roots.values()][0].model.document
|
309 |
+
jsdoc.on_change(send_change.bind(null, jsdoc), false)
|
310 |
+
pyodideWorker.postMessage({'type': 'rendered'})
|
311 |
+
pyodideWorker.postMessage({'type': 'location', location: JSON.stringify(window.location)})
|
312 |
+
} else if (msg.type === 'patch') {
|
313 |
+
pyodideWorker.jsdoc.apply_json_patch(msg.patch, msg.buffers, setter_id='py')
|
314 |
+
}
|
315 |
+
};
|
316 |
+
</script>
|
317 |
+
<script type="application/json" id="p1077">
|
318 |
+
{"2c61dcc0-aa17-4eb8-86fc-f3d2c1f25269":{"version":"3.3.2","title":"Linked Brushing with HoloViews and Plotly","roots":[{"type":"object","name":"panel.models.location.Location","id":"p1002","attributes":{"name":"location","reload":false}},{"type":"object","name":"panel.models.markup.HTML","id":"p1009","attributes":{"name":"js_area","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1049","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1046","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/bundled/theme/fast.css"}}],"width":0,"height":0,"margin":0,"sizing_mode":"fixed","align":"start","disable_math":true}},{"type":"object","name":"panel.models.reactive_html.ReactiveHTML","id":"p1012","attributes":{"name":"actions","subscribed_events":{"type":"set","entries":["dom_event"]},"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1050","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"id":"p1046"}],"margin":0,"align":"start","data":{"type":"object","name":"TemplateActions1","id":"p1010","attributes":{"name":"TemplateActions01434"}},"scripts":{"type":"map","entries":[["open_modal",["document.getElementById(&#x27;pn-Modal&#x27;).style.display = &#x27;block&#x27;"]],["close_modal",["document.getElementById(&#x27;pn-Modal&#x27;).style.display = &#x27;none&#x27;"]]]}}},{"type":"object","name":"panel.models.browser.BrowserInfo","id":"p1013","attributes":{"name":"browser_info"}},{"type":"object","name":"panel.models.markup.HTML","id":"p1016","attributes":{"name":"busy_indicator","css_classes":["loader","light"],"stylesheets":[":host { --loading-spinner-size: 20px; }","\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1051","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1052","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loadingspinner.css"}},{"id":"p1046"}],"min_width":20,"min_height":20,"margin":[5,10],"align":"start"}},{"type":"object","name":"panel.models.layout.Column","id":"p1017","attributes":{"name":"main-139622921603472","tags":["main"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1053","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1054","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/listpanel.css"}},{"id":"p1046"}],"height":870,"margin":0,"sizing_mode":"stretch_width","align":"start","children":[{"type":"object","name":"panel.models.widgets.Button","id":"p1021","attributes":{"subscribed_events":{"type":"set","entries":["button_click"]},"css_classes":["solid"],"stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1055","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1056","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/button.css"}},{"id":"p1046"}],"margin":[5,10],"align":"start","label":"RESET PLOTS","tooltip":{"type":"object","name":"Tooltip","id":"p1018","attributes":{"position":"right","content":"Resets the plots. Plotly does not have a built in way to do this."}}}},{"type":"object","name":"panel.models.plotly.PlotlyPlot","id":"p1030","attributes":{"name":"Plotly01687","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1057","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1058","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/plotly.css"}},{"id":"p1046"},":host { --plotly-icon-color: gray; --plotly-active-icon-color: #2a3f5f; }"],"margin":[5,10],"sizing_mode":"stretch_both","align":"start","data":[{"type":"map","entries":[["legendgroup","Scatter_"],["marker",{"type":"map","entries":[["color","#F08080"],["opacity",0.1],["size",10]]}],["mode","markers"],["name",""],["selectedpoints",false],["showlegend",false],["uid","1a8d74f4-4b53-4630-8f27-45fa19639e1a"],["type","scatter"]]},{"type":"map","entries":[["legendgroup","Scatter_"],["marker",{"type":"map","entries":[["color","#F08080"],["opacity",1],["size",10]]}],["mode","markers"],["name",""],["selectedpoints",false],["showlegend",false],["uid","02cc524c-655e-4ee8-8581-427acee47bb8"],["type","scatter"]]}],"layout":{"type":"map","entries":[["autosize",false],["dragmode","select"],["height",400],["margin",{"type":"map","entries":[["b",50],["l",50],["pad",4],["r",50],["t",50]]}],["shapes",[{"type":"map","entries":[["fillcolor","#30a2da"],["line",{"type":"map","entries":[["color","#c9cbce"],["width",1]]}],["name","Element: 0"],["opacity",0.5],["type","rect"],["visible",false],["xref","x"],["y0",0],["y1",1],["yref","paper"]]}]],["title",{"type":"map","entries":[["text",""]]}],["uirevision",true],["width",800],["xaxis",{"type":"map","entries":[["automargin",false],["range",[4.12,8.08]],["side","bottom"],["title",{"type":"map","entries":[["text","sepal_length"]]}]]}],["yaxis",{"type":"map","entries":[["automargin",false],["range",[1.76,4.640000000000001]],["side","left"],["title",{"type":"map","entries":[["text","sepal_width"]]}]]}],["template",{"type":"map","entries":[["data",{"type":"map","entries":[["histogram2dcontour",[{"type":"map","entries":[["type","histogram2dcontour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["choropleth",[{"type":"map","entries":[["type","choropleth"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["histogram2d",[{"type":"map","entries":[["type","histogram2d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmap",[{"type":"map","entries":[["type","heatmap"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmapgl",[{"type":"map","entries":[["type","heatmapgl"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["contourcarpet",[{"type":"map","entries":[["type","contourcarpet"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["contour",[{"type":"map","entries":[["type","contour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["surface",[{"type":"map","entries":[["type","surface"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["mesh3d",[{"type":"map","entries":[["type","mesh3d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["scatter",[{"type":"map","entries":[["fillpattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}],["type","scatter"]]}]],["parcoords",[{"type":"map","entries":[["type","parcoords"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolargl",[{"type":"map","entries":[["type","scatterpolargl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["bar",[{"type":"map","entries":[["error_x",{"type":"map","entries":[["color","#2a3f5f"]]}],["error_y",{"type":"map","entries":[["color","#2a3f5f"]]}],["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","bar"]]}]],["scattergeo",[{"type":"map","entries":[["type","scattergeo"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolar",[{"type":"map","entries":[["type","scatterpolar"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["histogram",[{"type":"map","entries":[["marker",{"type":"map","entries":[["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","histogram"]]}]],["scattergl",[{"type":"map","entries":[["type","scattergl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatter3d",[{"type":"map","entries":[["type","scatter3d"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattermapbox",[{"type":"map","entries":[["type","scattermapbox"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterternary",[{"type":"map","entries":[["type","scatterternary"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattercarpet",[{"type":"map","entries":[["type","scattercarpet"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["carpet",[{"type":"map","entries":[["aaxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["baxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["type","carpet"]]}]],["table",[{"type":"map","entries":[["cells",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#EBF0F8"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["header",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#C8D4E3"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["type","table"]]}]],["barpolar",[{"type":"map","entries":[["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","barpolar"]]}]],["pie",[{"type":"map","entries":[["automargin",true],["type","pie"]]}]]]}],["layout",{"type":"map","entries":[["autotypenumbers","strict"],["colorway",["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"]],["font",{"type":"map","entries":[["color","#2a3f5f"]]}],["hovermode","closest"],["hoverlabel",{"type":"map","entries":[["align","left"]]}],["paper_bgcolor","white"],["plot_bgcolor","white"],["polar",{"type":"map","entries":[["bgcolor","white"],["angularaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}],["radialaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}]]}],["ternary",{"type":"map","entries":[["bgcolor","white"],["aaxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["baxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["caxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}]]}],["coloraxis",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["colorscale",{"type":"map","entries":[["sequential",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["sequentialminus",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["diverging",[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]]]}],["xaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["yaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["scene",{"type":"map","entries":[["xaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["yaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["zaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}]]}],["shapedefaults",{"type":"map","entries":[["line",{"type":"map","entries":[["color","#2a3f5f"]]}]]}],["annotationdefaults",{"type":"map","entries":[["arrowcolor","#2a3f5f"],["arrowhead",0],["arrowwidth",1]]}],["geo",{"type":"map","entries":[["bgcolor","white"],["landcolor","white"],["subunitcolor","#C8D4E3"],["showland",true],["showlakes",true],["lakecolor","white"]]}],["title",{"type":"map","entries":[["x",0.05]]}],["mapbox",{"type":"map","entries":[["style","light"]]}]]}]]}]]},"config":{"type":"map","entries":[["responsive",false],["displayModeBar",true]]},"data_sources":[{"type":"object","name":"ColumnDataSource","id":"p1022","attributes":{"selected":{"type":"object","name":"Selection","id":"p1023","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1024"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]]}}},{"type":"object","name":"ColumnDataSource","id":"p1025","attributes":{"selected":{"type":"object","name":"Selection","id":"p1026","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1027"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"ZmZmZmZmFECamZmZmZkTQM3MzMzMzBJAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRVAZmZmZmZmEkAAAAAAAAAUQJqZmZmZmRFAmpmZmZmZE0CamZmZmZkVQDMzMzMzMxNAMzMzMzMzE0AzMzMzMzMRQDMzMzMzMxdAzczMzMzMFkCamZmZmZkVQGZmZmZmZhRAzczMzMzMFkBmZmZmZmYUQJqZmZmZmRVAZmZmZmZmFEBmZmZmZmYSQGZmZmZmZhRAMzMzMzMzE0AAAAAAAAAUQAAAAAAAABRAzczMzMzMFEDNzMzMzMwUQM3MzMzMzBJAMzMzMzMzE0CamZmZmZkVQM3MzMzMzBRAAAAAAAAAFkCamZmZmZkTQAAAAAAAABRAAAAAAAAAFkCamZmZmZkTQJqZmZmZmRFAZmZmZmZmFEAAAAAAAAAUQAAAAAAAABJAmpmZmZmZEUAAAAAAAAAUQGZmZmZmZhRAMzMzMzMzE0BmZmZmZmYUQGZmZmZmZhJAMzMzMzMzFUAAAAAAAAAUQAAAAAAAABxAmpmZmZmZGUCamZmZmZkbQAAAAAAAABZAAAAAAAAAGkDNzMzMzMwWQDMzMzMzMxlAmpmZmZmZE0BmZmZmZmYaQM3MzMzMzBRAAAAAAAAAFECamZmZmZkXQAAAAAAAABhAZmZmZmZmGEBmZmZmZmYWQM3MzMzMzBpAZmZmZmZmFkAzMzMzMzMXQM3MzMzMzBhAZmZmZmZmFkCamZmZmZkXQGZmZmZmZhhAMzMzMzMzGUBmZmZmZmYYQJqZmZmZmRlAZmZmZmZmGkAzMzMzMzMbQM3MzMzMzBpAAAAAAAAAGEDNzMzMzMwWQAAAAAAAABZAAAAAAAAAFkAzMzMzMzMXQAAAAAAAABhAmpmZmZmZFUAAAAAAAAAYQM3MzMzMzBpAMzMzMzMzGUBmZmZmZmYWQAAAAAAAABZAAAAAAAAAFkBmZmZmZmYYQDMzMzMzMxdAAAAAAAAAFEBmZmZmZmYWQM3MzMzMzBZAzczMzMzMFkDNzMzMzMwYQGZmZmZmZhRAzczMzMzMFkAzMzMzMzMZQDMzMzMzMxdAZmZmZmZmHEAzMzMzMzMZQAAAAAAAABpAZmZmZmZmHkCamZmZmZkTQDMzMzMzMx1AzczMzMzMGkDNzMzMzMwcQAAAAAAAABpAmpmZmZmZGUAzMzMzMzMbQM3MzMzMzBZAMzMzMzMzF0CamZmZmZkZQAAAAAAAABpAzczMzMzMHkDNzMzMzMweQAAAAAAAABhAmpmZmZmZG0BmZmZmZmYWQM3MzMzMzB5AMzMzMzMzGUDNzMzMzMwaQM3MzMzMzBxAzczMzMzMGEBmZmZmZmYYQJqZmZmZmRlAzczMzMzMHECamZmZmZkdQJqZmZmZmR9AmpmZmZmZGUAzMzMzMzMZQGZmZmZmZhhAzczMzMzMHkAzMzMzMzMZQJqZmZmZmRlAAAAAAAAAGECamZmZmZkbQM3MzMzMzBpAmpmZmZmZG0AzMzMzMzMXQDMzMzMzMxtAzczMzMzMGkDNzMzMzMwaQDMzMzMzMxlAAAAAAAAAGkDNzMzMzMwYQJqZmZmZmRdA"},"shape":[150],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"AAAAAAAADEAAAAAAAAAIQJqZmZmZmQlAzczMzMzMCEDNzMzMzMwMQDMzMzMzMw9AMzMzMzMzC0AzMzMzMzMLQDMzMzMzMwdAzczMzMzMCECamZmZmZkNQDMzMzMzMwtAAAAAAAAACEAAAAAAAAAIQAAAAAAAABBAmpmZmZmZEUAzMzMzMzMPQAAAAAAAAAxAZmZmZmZmDkBmZmZmZmYOQDMzMzMzMwtAmpmZmZmZDUDNzMzMzMwMQGZmZmZmZgpAMzMzMzMzC0AAAAAAAAAIQDMzMzMzMwtAAAAAAAAADEAzMzMzMzMLQJqZmZmZmQlAzczMzMzMCEAzMzMzMzMLQGZmZmZmZhBAzczMzMzMEEDNzMzMzMwIQJqZmZmZmQlAAAAAAAAADEDNzMzMzMwIQAAAAAAAAAhAMzMzMzMzC0AAAAAAAAAMQGZmZmZmZgJAmpmZmZmZCUAAAAAAAAAMQGZmZmZmZg5AAAAAAAAACEBmZmZmZmYOQJqZmZmZmQlAmpmZmZmZDUBmZmZmZmYKQJqZmZmZmQlAmpmZmZmZCUDNzMzMzMwIQGZmZmZmZgJAZmZmZmZmBkBmZmZmZmYGQGZmZmZmZgpAMzMzMzMzA0AzMzMzMzMHQJqZmZmZmQVAAAAAAAAAAEAAAAAAAAAIQJqZmZmZmQFAMzMzMzMzB0AzMzMzMzMHQM3MzMzMzAhAAAAAAAAACECamZmZmZkFQJqZmZmZmQFAAAAAAAAABECamZmZmZkJQGZmZmZmZgZAAAAAAAAABEBmZmZmZmYGQDMzMzMzMwdAAAAAAAAACEBmZmZmZmYGQAAAAAAAAAhAMzMzMzMzB0DNzMzMzMwEQDMzMzMzMwNAMzMzMzMzA0CamZmZmZkFQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAZmZmZmZmAkAAAAAAAAAIQAAAAAAAAARAzczMzMzMBEAAAAAAAAAIQM3MzMzMzARAZmZmZmZmAkCamZmZmZkFQAAAAAAAAAhAMzMzMzMzB0AzMzMzMzMHQAAAAAAAAARAZmZmZmZmBkBmZmZmZmYKQJqZmZmZmQVAAAAAAAAACEAzMzMzMzMHQAAAAAAAAAhAAAAAAAAACEAAAAAAAAAEQDMzMzMzMwdAAAAAAAAABEDNzMzMzMwMQJqZmZmZmQlAmpmZmZmZBUAAAAAAAAAIQAAAAAAAAARAZmZmZmZmBkCamZmZmZkJQAAAAAAAAAhAZmZmZmZmDkDNzMzMzMwEQJqZmZmZmQFAmpmZmZmZCUBmZmZmZmYGQGZmZmZmZgZAmpmZmZmZBUBmZmZmZmYKQJqZmZmZmQlAZmZmZmZmBkAAAAAAAAAIQGZmZmZmZgZAAAAAAAAACEBmZmZmZmYGQGZmZmZmZg5AZmZmZmZmBkBmZmZmZmYGQM3MzMzMzARAAAAAAAAACEAzMzMzMzMLQM3MzMzMzAhAAAAAAAAACEDNzMzMzMwIQM3MzMzMzAhAzczMzMzMCECamZmZmZkFQJqZmZmZmQlAZmZmZmZmCkAAAAAAAAAIQAAAAAAAAARAAAAAAAAACEAzMzMzMzMLQAAAAAAAAAhA"},"shape":[150],"dtype":"float64","order":"little"}]]]}}}],"relayout":null,"restyle":null,"viewport_update_throttle":200}},{"type":"object","name":"Spacer","id":"p1032","attributes":{"name":"Spacer01425","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1059","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"id":"p1046"}],"height":20,"min_height":20,"margin":0,"align":"start"}},{"type":"object","name":"panel.models.plotly.PlotlyPlot","id":"p1041","attributes":{"name":"Plotly01914","stylesheets":["\n:host(.pn-loading.pn-arc):before, .pn-loading.pn-arc:before {\n background-image: url(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46IGF1dG87IGJhY2tncm91bmQ6IG5vbmU7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IiB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPiAgPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzNjM2MzIiBzdHJva2Utd2lkdGg9IjEwIiByPSIzNSIgc3Ryb2tlLWRhc2hhcnJheT0iMTY0LjkzMzYxNDMxMzQ2NDE1IDU2Ljk3Nzg3MTQzNzgyMTM4Ij4gICAgPGFuaW1hdGVUcmFuc2Zvcm0gYXR0cmlidXRlTmFtZT0idHJhbnNmb3JtIiB0eXBlPSJyb3RhdGUiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjFzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIj48L2FuaW1hdGVUcmFuc2Zvcm0+ICA8L2NpcmNsZT48L3N2Zz4=\");\n background-size: auto calc(min(50%, 400px));\n}",{"type":"object","name":"ImportedStyleSheet","id":"p1060","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/loading.css"}},"\n.main .card-margin.stretch_both {\n height: calc(100vh - 125px) !important;\n}\n",{"type":"object","name":"ImportedStyleSheet","id":"p1061","attributes":{"url":"https://cdn.holoviz.org/panel/1.3.6/dist/css/plotly.css"}},{"id":"p1046"},":host { --plotly-icon-color: gray; --plotly-active-icon-color: #2a3f5f; }"],"margin":[5,10],"sizing_mode":"stretch_both","align":"start","data":[{"type":"map","entries":[["legendgroup","Histogram_"],["marker",{"type":"map","entries":[["color","#F08080"],["line",{"type":"map","entries":[["color","black"],["width",1]]}],["opacity",0.1]]}],["name",""],["orientation","v"],["selectedpoints",false],["showlegend",false],["uid","24e5413a-ea76-4e03-9aaa-e3b230fa29c4"],["width",0.11999999999999997],["type","bar"]]},{"type":"map","entries":[["legendgroup","Histogram_"],["marker",{"type":"map","entries":[["color","#F08080"],["line",{"type":"map","entries":[["color","black"],["width",1]]}],["opacity",1]]}],["name",""],["orientation","v"],["selectedpoints",false],["showlegend",false],["uid","e1eea7e3-1dfb-41f5-bcf1-aaa0cd945c8e"],["width",0.11999999999999997],["type","bar"]]}],"layout":{"type":"map","entries":[["autosize",false],["barmode","overlay"],["dragmode","select"],["height",400],["margin",{"type":"map","entries":[["b",50],["l",50],["pad",4],["r",50],["t",50]]}],["selectdirection","h"],["shapes",[{"type":"map","entries":[["fillcolor","#30a2da"],["line",{"type":"map","entries":[["color","#c9cbce"],["width",1]]}],["name","Element: 0"],["opacity",0.5],["type","rect"],["visible",false],["xref","x"],["y0",0],["y1",1],["yref","paper"]]}]],["title",{"type":"map","entries":[["text",""]]}],["uirevision",true],["width",800],["xaxis",{"type":"map","entries":[["automargin",false],["range",[-0.01999999999999999,2.62]],["side","bottom"],["title",{"type":"map","entries":[["text","petal_width"]]}]]}],["yaxis",{"type":"map","entries":[["automargin",false],["range",[-3.4000000000000004,37.4]],["side","left"],["title",{"type":"map","entries":[["text","Count"]]}]]}],["template",{"type":"map","entries":[["data",{"type":"map","entries":[["histogram2dcontour",[{"type":"map","entries":[["type","histogram2dcontour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["choropleth",[{"type":"map","entries":[["type","choropleth"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["histogram2d",[{"type":"map","entries":[["type","histogram2d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmap",[{"type":"map","entries":[["type","heatmap"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["heatmapgl",[{"type":"map","entries":[["type","heatmapgl"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["contourcarpet",[{"type":"map","entries":[["type","contourcarpet"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["contour",[{"type":"map","entries":[["type","contour"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["surface",[{"type":"map","entries":[["type","surface"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}],["colorscale",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]]]}]],["mesh3d",[{"type":"map","entries":[["type","mesh3d"],["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]],["scatter",[{"type":"map","entries":[["fillpattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}],["type","scatter"]]}]],["parcoords",[{"type":"map","entries":[["type","parcoords"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolargl",[{"type":"map","entries":[["type","scatterpolargl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["bar",[{"type":"map","entries":[["error_x",{"type":"map","entries":[["color","#2a3f5f"]]}],["error_y",{"type":"map","entries":[["color","#2a3f5f"]]}],["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","bar"]]}]],["scattergeo",[{"type":"map","entries":[["type","scattergeo"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterpolar",[{"type":"map","entries":[["type","scatterpolar"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["histogram",[{"type":"map","entries":[["marker",{"type":"map","entries":[["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","histogram"]]}]],["scattergl",[{"type":"map","entries":[["type","scattergl"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatter3d",[{"type":"map","entries":[["type","scatter3d"],["line",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattermapbox",[{"type":"map","entries":[["type","scattermapbox"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scatterternary",[{"type":"map","entries":[["type","scatterternary"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["scattercarpet",[{"type":"map","entries":[["type","scattercarpet"],["marker",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}]]}]],["carpet",[{"type":"map","entries":[["aaxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["baxis",{"type":"map","entries":[["endlinecolor","#2a3f5f"],["gridcolor","#C8D4E3"],["linecolor","#C8D4E3"],["minorgridcolor","#C8D4E3"],["startlinecolor","#2a3f5f"]]}],["type","carpet"]]}]],["table",[{"type":"map","entries":[["cells",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#EBF0F8"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["header",{"type":"map","entries":[["fill",{"type":"map","entries":[["color","#C8D4E3"]]}],["line",{"type":"map","entries":[["color","white"]]}]]}],["type","table"]]}]],["barpolar",[{"type":"map","entries":[["marker",{"type":"map","entries":[["line",{"type":"map","entries":[["color","white"],["width",0.5]]}],["pattern",{"type":"map","entries":[["fillmode","overlay"],["size",10],["solidity",0.2]]}]]}],["type","barpolar"]]}]],["pie",[{"type":"map","entries":[["automargin",true],["type","pie"]]}]]]}],["layout",{"type":"map","entries":[["autotypenumbers","strict"],["colorway",["#636efa","#EF553B","#00cc96","#ab63fa","#FFA15A","#19d3f3","#FF6692","#B6E880","#FF97FF","#FECB52"]],["font",{"type":"map","entries":[["color","#2a3f5f"]]}],["hovermode","closest"],["hoverlabel",{"type":"map","entries":[["align","left"]]}],["paper_bgcolor","white"],["plot_bgcolor","white"],["polar",{"type":"map","entries":[["bgcolor","white"],["angularaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}],["radialaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""]]}]]}],["ternary",{"type":"map","entries":[["bgcolor","white"],["aaxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["baxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}],["caxis",{"type":"map","entries":[["gridcolor","#DFE8F3"],["linecolor","#A2B1C6"],["ticks",""]]}]]}],["coloraxis",{"type":"map","entries":[["colorbar",{"type":"map","entries":[["outlinewidth",0],["ticks",""]]}]]}],["colorscale",{"type":"map","entries":[["sequential",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["sequentialminus",[[0.0,"#0d0887"],[0.1111111111111111,"#46039f"],[0.2222222222222222,"#7201a8"],[0.3333333333333333,"#9c179e"],[0.4444444444444444,"#bd3786"],[0.5555555555555556,"#d8576b"],[0.6666666666666666,"#ed7953"],[0.7777777777777778,"#fb9f3a"],[0.8888888888888888,"#fdca26"],[1.0,"#f0f921"]]],["diverging",[[0,"#8e0152"],[0.1,"#c51b7d"],[0.2,"#de77ae"],[0.3,"#f1b6da"],[0.4,"#fde0ef"],[0.5,"#f7f7f7"],[0.6,"#e6f5d0"],[0.7,"#b8e186"],[0.8,"#7fbc41"],[0.9,"#4d9221"],[1,"#276419"]]]]}],["xaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["yaxis",{"type":"map","entries":[["gridcolor","#EBF0F8"],["linecolor","#EBF0F8"],["ticks",""],["title",{"type":"map","entries":[["standoff",15]]}],["zerolinecolor","#EBF0F8"],["automargin",true],["zerolinewidth",2]]}],["scene",{"type":"map","entries":[["xaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["yaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}],["zaxis",{"type":"map","entries":[["backgroundcolor","white"],["gridcolor","#DFE8F3"],["linecolor","#EBF0F8"],["showbackground",true],["ticks",""],["zerolinecolor","#EBF0F8"],["gridwidth",2]]}]]}],["shapedefaults",{"type":"map","entries":[["line",{"type":"map","entries":[["color","#2a3f5f"]]}]]}],["annotationdefaults",{"type":"map","entries":[["arrowcolor","#2a3f5f"],["arrowhead",0],["arrowwidth",1]]}],["geo",{"type":"map","entries":[["bgcolor","white"],["landcolor","white"],["subunitcolor","#C8D4E3"],["showland",true],["showlakes",true],["lakecolor","white"]]}],["title",{"type":"map","entries":[["x",0.05]]}],["mapbox",{"type":"map","entries":[["style","light"]]}]]}]]}]]},"config":{"type":"map","entries":[["responsive",false],["displayModeBar",true]]},"data_sources":[{"type":"object","name":"ColumnDataSource","id":"p1033","attributes":{"selected":{"type":"object","name":"Selection","id":"p1034","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1035"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]]}}},{"type":"object","name":"ColumnDataSource","id":"p1036","attributes":{"selected":{"type":"object","name":"Selection","id":"p1037","attributes":{"indices":[],"line_indices":[]}},"selection_policy":{"type":"object","name":"UnionRenderers","id":"p1038"},"data":{"type":"map","entries":[["x",[{"type":"ndarray","array":{"type":"bytes","data":"exSuR+F6xD/rUbgehevRP5mZmZmZmdk/pHA9Ctej4D96FK5H4XrkP1K4HoXrUeg/KFyPwvUo7D8AAAAAAADwP+xRuB6F6/E/2KNwPQrX8z/C9Shcj8L1P65H4XoUrvc/mpmZmZmZ+T+G61G4HoX7P3A9CtejcP0/XI/C9Shc/z+kcD0K16MAQJqZmZmZmQFAkML1KFyPAkCF61G4HoUDQA=="},"shape":[20],"dtype":"float64","order":"little"}]],["y",[{"type":"ndarray","array":{"type":"bytes","data":"IgAAAAcAAAAHAAAAAQAAAAEAAAAAAAAAAAAAAAcAAAADAAAABQAAABUAAAAMAAAABAAAAAIAAAAMAAAACwAAAAYAAAADAAAACAAAAAYAAAA="},"shape":[20],"dtype":"int32","order":"little"}]]]}}}],"relayout":null,"restyle":null,"viewport_update_throttle":200}}]}}],"defs":[{"type":"model","name":"ReactiveHTML1"},{"type":"model","name":"FlexBox1","properties":[{"name":"align_content","kind":"Any","default":"flex-start"},{"name":"align_items","kind":"Any","default":"flex-start"},{"name":"flex_direction","kind":"Any","default":"row"},{"name":"flex_wrap","kind":"Any","default":"wrap"},{"name":"justify_content","kind":"Any","default":"flex-start"}]},{"type":"model","name":"FloatPanel1","properties":[{"name":"config","kind":"Any","default":{"type":"map"}},{"name":"contained","kind":"Any","default":true},{"name":"position","kind":"Any","default":"right-top"},{"name":"offsetx","kind":"Any","default":null},{"name":"offsety","kind":"Any","default":null},{"name":"theme","kind":"Any","default":"primary"},{"name":"status","kind":"Any","default":"normalized"}]},{"type":"model","name":"GridStack1","properties":[{"name":"mode","kind":"Any","default":"warn"},{"name":"ncols","kind":"Any","default":null},{"name":"nrows","kind":"Any","default":null},{"name":"allow_resize","kind":"Any","default":true},{"name":"allow_drag","kind":"Any","default":true},{"name":"state","kind":"Any","default":[]}]},{"type":"model","name":"drag1","properties":[{"name":"slider_width","kind":"Any","default":5},{"name":"slider_color","kind":"Any","default":"black"},{"name":"value","kind":"Any","default":50}]},{"type":"model","name":"click1","properties":[{"name":"terminal_output","kind":"Any","default":""},{"name":"debug_name","kind":"Any","default":""},{"name":"clears","kind":"Any","default":0}]},{"type":"model","name":"copy_to_clipboard1","properties":[{"name":"fill","kind":"Any","default":"none"},{"name":"value","kind":"Any","default":null}]},{"type":"model","name":"FastWrapper1","properties":[{"name":"object","kind":"Any","default":null},{"name":"style","kind":"Any","default":null}]},{"type":"model","name":"NotificationAreaBase1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0}]},{"type":"model","name":"NotificationArea1","properties":[{"name":"js_events","kind":"Any","default":{"type":"map"}},{"name":"notifications","kind":"Any","default":[]},{"name":"position","kind":"Any","default":"bottom-right"},{"name":"_clear","kind":"Any","default":0},{"name":"types","kind":"Any","default":[{"type":"map","entries":[["type","warning"],["background","#ffc107"],["icon",{"type":"map","entries":[["className","fas fa-exclamation-triangle"],["tagName","i"],["color","white"]]}]]},{"type":"map","entries":[["type","info"],["background","#007bff"],["icon",{"type":"map","entries":[["className","fas fa-info-circle"],["tagName","i"],["color","white"]]}]]}]}]},{"type":"model","name":"Notification","properties":[{"name":"background","kind":"Any","default":null},{"name":"duration","kind":"Any","default":3000},{"name":"icon","kind":"Any","default":null},{"name":"message","kind":"Any","default":""},{"name":"notification_type","kind":"Any","default":null},{"name":"_destroyed","kind":"Any","default":false}]},{"type":"model","name":"TemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"BootstrapTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]},{"type":"model","name":"MaterialTemplateActions1","properties":[{"name":"open_modal","kind":"Any","default":0},{"name":"close_modal","kind":"Any","default":0}]}]}}
|
319 |
+
</script>
|
320 |
+
<script type="text/javascript">
|
321 |
+
(function() {
|
322 |
+
const fn = function() {
|
323 |
+
Bokeh.safely(function() {
|
324 |
+
(function(root) {
|
325 |
+
function embed_document(root) {
|
326 |
+
const docs_json = document.getElementById('p1077').textContent;
|
327 |
+
const render_items = [{"docid":"2c61dcc0-aa17-4eb8-86fc-f3d2c1f25269","roots":{"p1002":"e69fd3b3-1a47-4712-aac3-28916ef68de3","p1009":"b72ac8ad-a55f-4bbd-948f-bfc071c692a5","p1012":"c5f6f8ff-2479-42ef-afc6-647d3df2c8fb","p1013":"a5fa7556-690a-4513-95a2-40589fb967bf","p1016":"af0a2967-1e3e-43cc-bb39-982e8bb0f3ca","p1017":"e3985a67-67fc-4898-b0ed-3a2d20970648"},"root_ids":["p1002","p1009","p1012","p1013","p1016","p1017"]}];
|
328 |
+
root.Bokeh.embed.embed_items(docs_json, render_items);
|
329 |
+
}
|
330 |
+
if (root.Bokeh !== undefined) {
|
331 |
+
embed_document(root);
|
332 |
+
} else {
|
333 |
+
let attempts = 0;
|
334 |
+
const timer = setInterval(function(root) {
|
335 |
+
if (root.Bokeh !== undefined) {
|
336 |
+
clearInterval(timer);
|
337 |
+
embed_document(root);
|
338 |
+
} else {
|
339 |
+
attempts++;
|
340 |
+
if (attempts > 100) {
|
341 |
+
clearInterval(timer);
|
342 |
+
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
343 |
+
}
|
344 |
+
}
|
345 |
+
}, 10, root)
|
346 |
+
}
|
347 |
+
})(window);
|
348 |
+
});
|
349 |
+
};
|
350 |
+
if (document.readyState != "loading") fn();
|
351 |
+
else document.addEventListener("DOMContentLoaded", fn);
|
352 |
+
})();
|
353 |
+
</script>
|
354 |
+
</body>
|
355 |
+
</html>
|