j1-template 2022.2.2 → 2022.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/blocks/footer/boxes/contacts_box.proc +46 -18
  3. data/_includes/themes/j1/blocks/footer/boxes/links_box.proc +1 -0
  4. data/assets/data/fab.html +2 -2
  5. data/assets/data/footer.html +2 -2
  6. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +64 -206
  7. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +2 -2
  8. data/assets/themes/j1/modules/nbInteract/README.md +169 -0
  9. data/assets/themes/j1/modules/nbInteract/css/nbinteract-core.css +4 -0
  10. data/assets/themes/j1/modules/nbInteract/css/nbinteract-core.min.css +4 -0
  11. data/lib/j1/version.rb +1 -1
  12. data/lib/starter_web/Gemfile +1 -1
  13. data/lib/starter_web/_config.yml +1 -1
  14. data/lib/starter_web/_data/blocks/defaults/footer.yml +25 -17
  15. data/lib/starter_web/_data/blocks/footer.yml +78 -65
  16. data/lib/starter_web/_data/resources.yml +0 -22
  17. data/lib/starter_web/_includes/attributes.asciidoc +14 -0
  18. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  19. data/lib/starter_web/assets/images/pages/nbinteract/nbi-textbook-example.jpg +0 -0
  20. data/lib/starter_web/package.json +1 -1
  21. data/lib/starter_web/pages/public/jupyter/docs/_includes/documents/j1_docs_example_static.asciidoc +232 -232
  22. data/lib/starter_web/pages/public/jupyter/docs/j1-nbinteract-doc.adoc +135 -134
  23. data/lib/starter_web/pages/public/jupyter/docs/nbi-widget-manual.adoc +2 -4
  24. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-checkpoint.ipynb +170 -15
  25. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_interactive_widgets.ipynb +170 -15
  26. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_interactive_questions-checkpoint.ipynb +185 -0
  27. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/nbi_docs_recipes_interactive_questions.ipynb +19 -22
  28. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/binder-launches.html +670 -546
  29. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +186 -186
  30. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_interactive_widgets.html +919 -702
  31. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_ode_selected.html +186 -186
  32. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/nbi_docs_recipes_interactive_questions.html +242 -243
  33. data/lib/starter_web/pages/public/jupyter/{apis/binderhub-api.adoc → services/binderhub.adoc} +22 -25
  34. data/lib/starter_web/pages/public/jupyter/{apis/jupyterhub-api.adoc → services/jupyterhub.adoc} +2 -2
  35. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +11 -0
  36. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  37. data/lib/starter_web/utilsrv/package.json +1 -1
  38. metadata +7 -28
  39. data/lib/starter_web/_data/_resources.yml +0 -1668
  40. data/lib/starter_web/assets/images/pages/nbinteract/binderhub-architecture.png +0 -0
  41. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/algebra_with_sympy-checkpoint.ipynb +0 -14488
  42. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/climate-change-forecast-checkpoint.ipynb +0 -916
  43. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/ipympl_test_plots-checkpoint.ipynb +0 -14517
  44. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_algebra_with_sympy-checkpoint.ipynb +0 -14517
  45. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16493
  46. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_visualization-checkpoint.ipynb +0 -15358
  47. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_visualization_full-checkpoint.ipynb +0 -2576
  48. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast-checkpoint.ipynb +0 -1058
  49. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast.ipynb +0 -1060
  50. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_example_dynamic-checkpoint.ipynb +0 -14478
  51. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_hist-checkpoint.ipynb +0 -98
  52. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive-checkpoint.ipynb +0 -560
  53. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_ipympl_test_plots-checkpoint.ipynb +0 -14511
  54. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_ode_selected-checkpoint.ipynb +0 -14478
  55. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_odes_in_python-checkpoint.ipynb +0 -14818
  56. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_pandas_creating_reading_and_writing-checkpoint.ipynb +0 -328
  57. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_recipes_layout-checkpoint.ipynb +0 -341
  58. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +0 -98
  59. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_correlation-checkpoint.ipynb +0 -651
  60. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_variability_of_the_sample_mean-checkpoint.ipynb +0 -323
  61. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +0 -387
  62. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_layout-checkpoint.ipynb +0 -384
@@ -1,387 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "### Plotting using `nbinteract`"
8
- ]
9
- },
10
- {
11
- "cell_type": "markdown",
12
- "metadata": {},
13
- "source": [
14
- "`nbinteract` comes with a set of functions that produce Javascript-based plots designed for interaction.\n",
15
- "\n",
16
- "Most plotting functions that come with `nbinteract` take in response functions that return the **data** to be plotted."
17
- ]
18
- },
19
- {
20
- "cell_type": "code",
21
- "execution_count": 1,
22
- "metadata": {},
23
- "outputs": [],
24
- "source": [
25
- "import nbinteract as nbi\n",
26
- "import numpy as np"
27
- ]
28
- },
29
- {
30
- "cell_type": "markdown",
31
- "metadata": {},
32
- "source": [
33
- "For a complete API reference for each function, you may type the function name in a cell and add a `?` at the end. For example, to view the API reference for `nbi.hist`:"
34
- ]
35
- },
36
- {
37
- "cell_type": "code",
38
- "execution_count": 2,
39
- "metadata": {},
40
- "outputs": [],
41
- "source": [
42
- "nbi.hist?"
43
- ]
44
- },
45
- {
46
- "cell_type": "markdown",
47
- "metadata": {},
48
- "source": [
49
- "#### `nbinteract.hist`"
50
- ]
51
- },
52
- {
53
- "cell_type": "markdown",
54
- "metadata": {},
55
- "source": [
56
- "`hist` generates a histogram that allows interaction with the parameters for the response function. \n",
57
- "\n",
58
- "`hist` takes in a single response function. The response function returns the array of numerical values that will be shown in the histogram. The `hist` function allows interaction with the response function's parameters by specifying them as keyword arguments in the same format as `ipywidgets.interact`. Any argument that can be used for `ipywidgets.interact` can be used for `hist`."
59
- ]
60
- },
61
- {
62
- "cell_type": "code",
63
- "execution_count": 3,
64
- "metadata": {},
65
- "outputs": [],
66
- "source": [
67
- "def hist_response_function(mean, sd, size=1000):\n",
68
- " '''\n",
69
- " Returns 1000 values picked at random from the normal\n",
70
- " distribution with the mean and SD given.\n",
71
- " '''\n",
72
- " return np.random.normal(loc=mean, scale=sd, size=1000)"
73
- ]
74
- },
75
- {
76
- "cell_type": "code",
77
- "execution_count": 4,
78
- "metadata": {
79
- "scrolled": false
80
- },
81
- "outputs": [
82
- {
83
- "data": {
84
- "application/vnd.jupyter.widget-view+json": {
85
- "model_id": "749b9aab6e1947d8934f06b45825dbdb",
86
- "version_major": 2,
87
- "version_minor": 0
88
- },
89
- "text/plain": [
90
- "VBox(children=(interactive(children=(IntSlider(value=5, description='mean', max=10), FloatSlider(value=1.0, de…"
91
- ]
92
- },
93
- "metadata": {},
94
- "output_type": "display_data"
95
- }
96
- ],
97
- "source": [
98
- "nbi.hist(hist_response_function, mean=(0, 10), sd=(0, 2.0, 0.2))"
99
- ]
100
- },
101
- {
102
- "cell_type": "markdown",
103
- "metadata": {},
104
- "source": [
105
- "If you interact with the above plot, you may notice that the plot's x and y-axes will automatically scale to match the input data. You can change plot parameters like the axes limits through the `options` parameter of the plotting functions:"
106
- ]
107
- },
108
- {
109
- "cell_type": "code",
110
- "execution_count": 5,
111
- "metadata": {},
112
- "outputs": [
113
- {
114
- "data": {
115
- "application/vnd.jupyter.widget-view+json": {
116
- "model_id": "d937484a6c874c248224ae1a07be0222",
117
- "version_major": 2,
118
- "version_minor": 0
119
- },
120
- "text/plain": [
121
- "VBox(children=(interactive(children=(IntSlider(value=5, description='mean', max=10), FloatSlider(value=1.0, de…"
122
- ]
123
- },
124
- "metadata": {},
125
- "output_type": "display_data"
126
- }
127
- ],
128
- "source": [
129
- "options = {\n",
130
- " 'title': '1000 random points from normal distribution',\n",
131
- " 'xlim': (0, 15),\n",
132
- " 'ylim': (0, 0.4),\n",
133
- "}\n",
134
- "nbi.hist(hist_response_function, options=options, mean=(0, 10), sd=(0, 2.0, 0.2))"
135
- ]
136
- },
137
- {
138
- "cell_type": "markdown",
139
- "metadata": {},
140
- "source": [
141
- "You may call `nbinteract` plotting functions with plain data as the input as well:"
142
- ]
143
- },
144
- {
145
- "cell_type": "code",
146
- "execution_count": 6,
147
- "metadata": {},
148
- "outputs": [
149
- {
150
- "data": {
151
- "application/vnd.jupyter.widget-view+json": {
152
- "model_id": "dd38adef9d944bc692ab821c5fd9ce8e",
153
- "version_major": 2,
154
- "version_minor": 0
155
- },
156
- "text/plain": [
157
- "VBox(children=(interactive(children=(Output(),), _dom_classes=('widget-interact',)), Figure(axes=[Axis(scale=L…"
158
- ]
159
- },
160
- "metadata": {},
161
- "output_type": "display_data"
162
- }
163
- ],
164
- "source": [
165
- "nbi.hist(np.random.normal(size=1000))"
166
- ]
167
- },
168
- {
169
- "cell_type": "markdown",
170
- "metadata": {},
171
- "source": [
172
- "#### `nbinteract.bar`"
173
- ]
174
- },
175
- {
176
- "cell_type": "markdown",
177
- "metadata": {},
178
- "source": [
179
- "`bar` generates an bar plot that allows interaction with the parameters for the response functions.\n",
180
- "\n",
181
- "The first two arguments of `bar` are response functions that return the x and y-axis data arrays, respectively. Either argument can be arrays themselves. Arguments for the response functions must be passed in as keyword arguments to `bar` in the format expected by interact. The response function for the y-axis data will be called with the x-axis data as its first argument.\n",
182
- "\n",
183
- "For example, in the bar plot below `categories` generates the categories to plot on the x-axis and `heights` generates the y-axis heights. The `heights` function uses the parameter `xs` which is the array of x-axis data points. "
184
- ]
185
- },
186
- {
187
- "cell_type": "code",
188
- "execution_count": 7,
189
- "metadata": {},
190
- "outputs": [
191
- {
192
- "data": {
193
- "application/vnd.jupyter.widget-view+json": {
194
- "model_id": "f0cd2c3db7754af293d9d5bd60f348fa",
195
- "version_major": 2,
196
- "version_minor": 0
197
- },
198
- "text/plain": [
199
- "VBox(children=(interactive(children=(IntSlider(value=5, description='n', max=10), IntSlider(value=5, descripti…"
200
- ]
201
- },
202
- "metadata": {},
203
- "output_type": "display_data"
204
- }
205
- ],
206
- "source": [
207
- "def categories(n): \n",
208
- " return np.arange(n)\n",
209
- "\n",
210
- "def heights(xs, offset):\n",
211
- " return xs + offset\n",
212
- "\n",
213
- "opts = {\n",
214
- " 'ylim': (0, 20),\n",
215
- "}\n",
216
- "\n",
217
- "nbi.bar(categories, heights, n=(0, 10), offset=(1, 10), options=opts)"
218
- ]
219
- },
220
- {
221
- "cell_type": "markdown",
222
- "metadata": {},
223
- "source": [
224
- "#### `nbinteract.scatter_drag`"
225
- ]
226
- },
227
- {
228
- "cell_type": "markdown",
229
- "metadata": {},
230
- "source": [
231
- "`scatter_drag` generates a scatter plot that allows interaction through clicking and dragging the points on the graph. \n",
232
- "\n",
233
- "`scatter_drag` takes in two lists/arrays consisting of the x-coordinates and y-coordinates of the points to plot. It generates an interactive scatter plot where the points can be dragged by the user and a best fit line is updated automatically according to the placement of the points.\n",
234
- "\n",
235
- "`scatter_drag` does not allow response functions as inputs."
236
- ]
237
- },
238
- {
239
- "cell_type": "code",
240
- "execution_count": 8,
241
- "metadata": {
242
- "scrolled": false
243
- },
244
- "outputs": [
245
- {
246
- "data": {
247
- "application/vnd.jupyter.widget-view+json": {
248
- "model_id": "ddff91ef6f6048a19b4b605feda4c5f1",
249
- "version_major": 2,
250
- "version_minor": 0
251
- },
252
- "text/plain": [
253
- "VBox(children=(Label(value='y = 0.99x + 0.54'), Figure(animation_duration=250, axes=[Axis(scale=LinearScale(ma…"
254
- ]
255
- },
256
- "metadata": {},
257
- "output_type": "display_data"
258
- }
259
- ],
260
- "source": [
261
- "x_coords = np.arange(10)\n",
262
- "y_coords = np.arange(10) + np.random.rand(10)\n",
263
- "\n",
264
- "opts = {'xlim': (0, 9), 'ylim': (0, 11), 'animation_duration': 250}\n",
265
- "\n",
266
- "nbi.scatter_drag(x_coords, y_coords, options=opts)"
267
- ]
268
- },
269
- {
270
- "cell_type": "markdown",
271
- "metadata": {},
272
- "source": [
273
- "#### `nbinteract.scatter`"
274
- ]
275
- },
276
- {
277
- "cell_type": "markdown",
278
- "metadata": {},
279
- "source": [
280
- "`scatter` generates a scatter plot that allows interaction with the parameters to the response functions. \n",
281
- "This is different from scatter_drag which facilitates interaction using click and drag actions.\n",
282
- "\n",
283
- "The first two arguments of `scatter` are response functions that return the x and y-axis coordinates, respectively. Either argument can be arrays themselves. Arguments for the response functions must be passed in as keyword arguments to `scatter` in the format expected by interact. The response function for the y-coordinates will be called with the x-coordinates as its first argument."
284
- ]
285
- },
286
- {
287
- "cell_type": "code",
288
- "execution_count": 9,
289
- "metadata": {
290
- "scrolled": false
291
- },
292
- "outputs": [
293
- {
294
- "data": {
295
- "application/vnd.jupyter.widget-view+json": {
296
- "model_id": "c3d2e8896c424020b49d2e774d4c3b3e",
297
- "version_major": 2,
298
- "version_minor": 0
299
- },
300
- "text/plain": [
301
- "VBox(children=(interactive(children=(IntSlider(value=100, description='n', max=200), Output()), _dom_classes=(…"
302
- ]
303
- },
304
- "metadata": {},
305
- "output_type": "display_data"
306
- }
307
- ],
308
- "source": [
309
- "def x_values(n): return np.random.choice(100, n)\n",
310
- "def y_values(xs): return np.random.choice(100, len(xs))\n",
311
- "\n",
312
- "nbi.scatter(x_values, y_values, n=(0,200))"
313
- ]
314
- },
315
- {
316
- "cell_type": "markdown",
317
- "metadata": {},
318
- "source": [
319
- "#### `nbinteract.line`"
320
- ]
321
- },
322
- {
323
- "cell_type": "markdown",
324
- "metadata": {},
325
- "source": [
326
- "`line` generates a scatter plot that allows interaction with the parameters to the response functions. \n",
327
- "\n",
328
- "The first two arguments of `line` are response functions that return the x and y-axis coordinates, respectively. Either argument can be arrays themselves. Arguments for the response functions must be passed in as keyword arguments to `line` in the format expected by interact. The response function for the y-coordinates will be called with the x-coordinates as its first argument."
329
- ]
330
- },
331
- {
332
- "cell_type": "code",
333
- "execution_count": 10,
334
- "metadata": {},
335
- "outputs": [
336
- {
337
- "data": {
338
- "application/vnd.jupyter.widget-view+json": {
339
- "model_id": "17d1cc84daf9467f97e504d484e24485",
340
- "version_major": 2,
341
- "version_minor": 0
342
- },
343
- "text/plain": [
344
- "VBox(children=(interactive(children=(IntSlider(value=30, description='max', max=50, min=10), IntSlider(value=5…"
345
- ]
346
- },
347
- "metadata": {},
348
- "output_type": "display_data"
349
- }
350
- ],
351
- "source": [
352
- "def x_values(max): return np.arange(0, max)\n",
353
- "def y_values(xs, sd):\n",
354
- " return xs + np.random.normal(0, scale=sd, size=len(xs))\n",
355
- "\n",
356
- "opts = {\n",
357
- " 'xlim': (0, 50),\n",
358
- " 'ylim': (0, 55),\n",
359
- " 'animation_duration': 250,\n",
360
- "}\n",
361
- "\n",
362
- "nbi.line(x_values, y_values, max=(10, 50), sd=(1, 10), options=opts)"
363
- ]
364
- }
365
- ],
366
- "metadata": {
367
- "kernelspec": {
368
- "display_name": "Python 3",
369
- "language": "python",
370
- "name": "python3"
371
- },
372
- "language_info": {
373
- "codemirror_mode": {
374
- "name": "ipython",
375
- "version": 3
376
- },
377
- "file_extension": ".py",
378
- "mimetype": "text/x-python",
379
- "name": "python",
380
- "nbconvert_exporter": "python",
381
- "pygments_lexer": "ipython3",
382
- "version": "3.7.9"
383
- }
384
- },
385
- "nbformat": 4,
386
- "nbformat_minor": 2
387
- }