j1-template 2022.2.2 → 2022.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) 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/adapter/js/analytics.js +13 -13
  7. data/assets/themes/j1/adapter/js/cookieConsent.js +1 -1
  8. data/assets/themes/j1/adapter/js/nbinteract.js +366 -120
  9. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +30 -40
  10. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
  11. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +85 -216
  12. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +2 -2
  13. data/assets/themes/j1/core/js/template.js +1 -1
  14. data/assets/themes/j1/core/js/template.min.js +1 -1
  15. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  16. data/assets/themes/j1/modules/carousel/css/theme/uno.css +5 -0
  17. data/assets/themes/j1/modules/carousel/css/theme/uno.min.css +1 -1
  18. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +1 -0
  19. data/assets/themes/j1/modules/justifiedGallery/css/justifiedGallery.css +6 -0
  20. data/assets/themes/j1/modules/justifiedGallery/css/justifiedGallery.min.css +1 -1
  21. data/assets/themes/j1/modules/mmenuLight/css/mmenu-light.css +2 -2
  22. data/assets/themes/j1/modules/mmenuLight/css/mmenu-light.min.css +1 -2
  23. data/assets/themes/j1/modules/nbInteract/README.md +169 -0
  24. data/assets/themes/j1/modules/nbInteract/css/nbinteract-core.css +4 -0
  25. data/assets/themes/j1/modules/nbInteract/css/nbinteract-core.min.css +4 -0
  26. data/assets/themes/j1/modules/nbInteract/css/theme/uno/nbinteract-core.css +33 -33
  27. data/assets/themes/j1/modules/nbInteract/css/theme/uno/nbinteract-core.min.css +1 -1
  28. data/assets/themes/j1/modules/nbInteract/js/requireJS/require.js +2068 -0
  29. data/assets/themes/j1/modules/nbInteract/js/requireJS/require.min.js +36 -0
  30. data/assets/themes/j1/modules/plotly/LICENSE +21 -0
  31. data/assets/themes/j1/modules/plotly/README.md +32 -0
  32. data/assets/themes/j1/modules/plotly/js/plotly.js +265345 -0
  33. data/assets/themes/j1/modules/plotly/js/plotly.min.js +65 -0
  34. data/assets/themes/j1/modules/requirejs/LICENSE +45 -0
  35. data/assets/themes/j1/modules/requirejs/README.md +79 -0
  36. data/assets/themes/j1/modules/requirejs/js/require.js +2068 -0
  37. data/assets/themes/j1/modules/requirejs/js/require.min.js +36 -0
  38. data/lib/j1/version.rb +1 -1
  39. data/lib/starter_web/Gemfile +1 -1
  40. data/lib/starter_web/_config.yml +1 -1
  41. data/lib/starter_web/_data/blocks/defaults/footer.yml +25 -17
  42. data/lib/starter_web/_data/blocks/footer.yml +78 -65
  43. data/lib/starter_web/_data/modules/analytics.yml +8 -23
  44. data/lib/starter_web/_data/modules/defaults/analytics.yml +1 -1
  45. data/lib/starter_web/_data/modules/defaults/cookieconsent.yml +4 -1
  46. data/lib/starter_web/_data/modules/justifiedGallery.yml +14 -8
  47. data/lib/starter_web/_data/modules/navigator_menu.yml +6 -3
  48. data/lib/starter_web/_data/modules/nbinteract.yml +12 -48
  49. data/lib/starter_web/_data/resources.yml +52 -18
  50. data/lib/starter_web/_includes/attributes.asciidoc +25 -0
  51. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  52. data/lib/starter_web/assets/images/pages/nbinteract/mandelbrot-menge-1920x1200.jpg +0 -0
  53. data/lib/starter_web/assets/images/pages/nbinteract/mandelbrot-menge.png +0 -0
  54. data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_bar.jpg +0 -0
  55. data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_hist.jpg +0 -0
  56. data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_line.jpg +0 -0
  57. data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_multiple_choice.jpg +0 -0
  58. data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_scatter.jpg +0 -0
  59. data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_scatter_drag.jpg +0 -0
  60. data/lib/starter_web/assets/images/pages/nbinteract/manual/nbi_short_answer.jpg +0 -0
  61. data/lib/starter_web/assets/images/pages/nbinteract/nbi-textbook-example.jpg +0 -0
  62. data/lib/starter_web/assets/videos/gallery/kick-it-old-school-poster.jpg +0 -0
  63. data/lib/starter_web/assets/videos/gallery/nye-party-shop-poster.jpg +0 -0
  64. data/lib/starter_web/assets/videos/gallery/stay-colorful-poster.jpg +0 -0
  65. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +1 -0
  66. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +1 -0
  67. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +1 -0
  68. data/lib/starter_web/package.json +1 -2
  69. data/lib/starter_web/pages/public/jupyter/docs/_includes/documents/j1_docs_example_static.asciidoc +232 -232
  70. data/lib/starter_web/pages/public/jupyter/docs/j1-nbinteract-doc.adoc +165 -149
  71. data/lib/starter_web/pages/public/jupyter/docs/nbi-widget-manual.adoc +156 -11
  72. data/lib/starter_web/pages/public/jupyter/docs/nbinteract-doc.adoc +11 -6
  73. data/lib/starter_web/pages/public/jupyter/examples/j1-circular-times-table.adoc +136 -0
  74. data/lib/starter_web/pages/public/jupyter/examples/j1-interactive-widgets.adoc +9 -5
  75. data/lib/starter_web/pages/public/jupyter/examples/j1-odes-in-python.adoc +16 -7
  76. data/lib/starter_web/pages/public/jupyter/examples/j1-testing-plotly.adoc +95 -0
  77. data/lib/starter_web/pages/public/jupyter/examples/j1_climate-change-forecast.adoc +4 -4
  78. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/{algebra_with_sympy-checkpoint.ipynb → j1_circular_times_table-checkpoint.ipynb} +5190 -7291
  79. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast-checkpoint.ipynb +2 -2
  80. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_example_dynamic-checkpoint.ipynb +1 -1
  81. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-checkpoint.ipynb +170 -15
  82. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_ode_selected-checkpoint.ipynb +1 -1
  83. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_odes_in_python-checkpoint.ipynb +520 -111
  84. data/lib/starter_web/pages/public/jupyter/notebooks/j1/factor_by_factor.mp4 +0 -0
  85. data/lib/starter_web/pages/public/jupyter/notebooks/j1/{.ipynb_checkpoints/j1_algebra_with_sympy-checkpoint.ipynb → j1_circular_times_table.ipynb} +5178 -7308
  86. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +2 -2
  87. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +1 -1
  88. data/lib/starter_web/pages/public/jupyter/notebooks/j1/j1_interactive_widgets.ipynb +170 -15
  89. data/lib/starter_web/pages/public/jupyter/notebooks/j1/{j1_ode_selected.ipynb → j1_odes_in_python.ipynb} +783 -34
  90. data/lib/starter_web/pages/public/jupyter/notebooks/j1/line_by_line.mp4 +0 -0
  91. data/lib/starter_web/pages/public/jupyter/notebooks/j1/point_by_point.mp4 +0 -0
  92. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_interactive_questions-checkpoint.ipynb +185 -0
  93. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_interact-checkpoint.ipynb +254 -0
  94. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_monty_hall-checkpoint.ipynb +732 -0
  95. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/nbi_docs_recipes_interactive_questions.ipynb +19 -22
  96. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/nbi_docs_tutorial_monty_hall.ipynb +25 -26
  97. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_circular_times_table.html +746 -0
  98. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_climate_change_forecast.html +2 -2
  99. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_interactive_widgets.html +217 -0
  100. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_odes_in_python.html +955 -0
  101. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/nbi_docs_recipes_interactive_questions.html +1 -2
  102. data/lib/starter_web/pages/public/jupyter/{apis/binderhub-api.adoc → services/binderhub.adoc} +25 -28
  103. data/lib/starter_web/pages/public/jupyter/{apis/jupyterhub-api.adoc → services/jupyterhub.adoc} +8 -9
  104. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +1 -1
  105. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +9 -15
  106. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +1 -1
  107. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +12 -1
  108. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
  109. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +1 -1
  110. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +1 -1
  111. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +117 -12
  112. data/lib/starter_web/pages/public/se/se-fake.adoc +47 -0
  113. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  114. data/lib/starter_web/utilsrv/package.json +1 -1
  115. metadata +41 -41
  116. data/lib/starter_web/_data/_resources.yml +0 -1668
  117. data/lib/starter_web/assets/images/pages/nbinteract/binderhub-architecture.png +0 -0
  118. data/lib/starter_web/assets/videos/gallery/adriana-lima-poster.jpg +0 -0
  119. data/lib/starter_web/pages/public/jupyter/notebooks/binder/binder-launches.ipynb +0 -385
  120. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/Untitled-checkpoint.ipynb +0 -6
  121. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/binder-launches-checkpoint.ipynb +0 -385
  122. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/climate-change-forecast-checkpoint.ipynb +0 -916
  123. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/google_altair-checkpoint.ipynb +0 -33
  124. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/ipympl_test_plots-checkpoint.ipynb +0 -14517
  125. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16493
  126. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive_test-checkpoint.ipynb +0 -14697
  127. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_visualization-checkpoint.ipynb +0 -15358
  128. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_visualization_full-checkpoint.ipynb +0 -2576
  129. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast.ipynb +0 -1060
  130. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_hist-checkpoint.ipynb +0 -98
  131. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive-checkpoint.ipynb +0 -560
  132. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_ipympl_test_plots-checkpoint.ipynb +0 -14511
  133. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_pandas_creating_reading_and_writing-checkpoint.ipynb +0 -328
  134. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/j1_recipes_layout-checkpoint.ipynb +0 -341
  135. data/lib/starter_web/pages/public/jupyter/notebooks/j1/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +0 -98
  136. data/lib/starter_web/pages/public/jupyter/notebooks/j1/binder-launches.ipynb +0 -411
  137. data/lib/starter_web/pages/public/jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_correlation-checkpoint.ipynb +0 -651
  138. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/binder-launches.html +0 -546
  139. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_ode_selected.html +0 -186
  140. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/excel.py +0 -55
  141. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/ggplot.py +0 -108
  142. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/ggplot2.py +0 -108
  143. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/husky.py +0 -121
  144. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/latimes.py +0 -149
  145. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/pcolor.py +0 -6
  146. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/quartz.py +0 -55
  147. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/spacy_base.py +0 -94
  148. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/spacy_mono.py +0 -158
  149. data/lib/starter_web/pages/public/jupyter/notebooks/themes/altair/sunsentinel.py +0 -125
@@ -1,328 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 1,
6
- "id": "d4137d7a",
7
- "metadata": {
8
- "execution": {
9
- "iopub.execute_input": "2022-02-08T16:44:11.776774Z",
10
- "iopub.status.busy": "2022-02-08T16:44:11.775483Z",
11
- "iopub.status.idle": "2022-02-08T16:44:11.784138Z",
12
- "shell.execute_reply": "2022-02-08T16:44:11.784541Z"
13
- },
14
- "papermill": {
15
- "duration": 0.023901,
16
- "end_time": "2022-02-08T16:44:11.784806",
17
- "exception": false,
18
- "start_time": "2022-02-08T16:44:11.760905",
19
- "status": "completed"
20
- },
21
- "tags": []
22
- },
23
- "outputs": [],
24
- "source": [
25
- "import warnings\n",
26
- "# Ignore numpy dtype warnings. These warnings are caused by an interaction\n",
27
- "# between numpy and Cython and can be safely ignored.\n",
28
- "# Reference: https://stackoverflow.com/a/40846742\n",
29
- "warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\n",
30
- "warnings.filterwarnings(\"ignore\", message=\"numpy.ufunc size changed\")\n",
31
- "\n",
32
- "import numpy as np\n",
33
- "import matplotlib.pyplot as plt\n",
34
- "import pandas as pd\n",
35
- "%matplotlib inline\n",
36
- "import ipywidgets as widgets\n",
37
- "from ipywidgets import interact, interactive, fixed, interact_manual\n",
38
- "import nbinteract as nbi\n",
39
- "\n",
40
- "np.set_printoptions(threshold=20, precision=2, suppress=True)\n",
41
- "pd.options.display.max_rows = 7\n",
42
- "pd.options.display.max_columns = 8\n",
43
- "pd.set_option('precision', 2)\n",
44
- "# This option stops scientific notation for pandas\n",
45
- "# pd.set_option('display.float_format', '{:.2f}'.format)"
46
- ]
47
- },
48
- {
49
- "cell_type": "code",
50
- "execution_count": 2,
51
- "metadata": {},
52
- "outputs": [],
53
- "source": [
54
- "def df_interact(df, nrows=7, ncols=7):\n",
55
- " '''\n",
56
- " Outputs sliders that show rows and columns of df\n",
57
- " '''\n",
58
- " def peek(row=0, col=0):\n",
59
- " return df.iloc[row:row + nrows, col:col + ncols]\n",
60
- " if len(df.columns) <= ncols:\n",
61
- " interact(peek, row=(0, len(df) - nrows, nrows), col=fixed(0))\n",
62
- " else:\n",
63
- " interact(peek,\n",
64
- " row=(0, len(df) - nrows, nrows),\n",
65
- " col=(0, len(df.columns) - ncols))\n",
66
- " print('({} rows, {} columns) total'.format(df.shape[0], df.shape[1]))"
67
- ]
68
- },
69
- {
70
- "cell_type": "code",
71
- "execution_count": 3,
72
- "metadata": {},
73
- "outputs": [],
74
- "source": [
75
- "videos = pd.read_csv('https://github.com/SamLau95/nbinteract/raw/master/notebooks/youtube_trending.csv',\n",
76
- " parse_dates=['publish_time'],\n",
77
- " index_col='publish_time')"
78
- ]
79
- },
80
- {
81
- "cell_type": "code",
82
- "execution_count": 4,
83
- "metadata": {},
84
- "outputs": [
85
- {
86
- "data": {
87
- "text/html": [
88
- "<div>\n",
89
- "<style scoped>\n",
90
- " .dataframe tbody tr th:only-of-type {\n",
91
- " vertical-align: middle;\n",
92
- " }\n",
93
- "\n",
94
- " .dataframe tbody tr th {\n",
95
- " vertical-align: top;\n",
96
- " }\n",
97
- "\n",
98
- " .dataframe thead th {\n",
99
- " text-align: right;\n",
100
- " }\n",
101
- "</style>\n",
102
- "<table border=\"1\" class=\"dataframe\">\n",
103
- " <thead>\n",
104
- " <tr style=\"text-align: right;\">\n",
105
- " <th></th>\n",
106
- " <th>title</th>\n",
107
- " <th>channel_title</th>\n",
108
- " <th>category_id</th>\n",
109
- " <th>views</th>\n",
110
- " <th>likes</th>\n",
111
- " <th>dislikes</th>\n",
112
- " <th>comment_count</th>\n",
113
- " <th>category</th>\n",
114
- " </tr>\n",
115
- " <tr>\n",
116
- " <th>publish_time</th>\n",
117
- " <th></th>\n",
118
- " <th></th>\n",
119
- " <th></th>\n",
120
- " <th></th>\n",
121
- " <th></th>\n",
122
- " <th></th>\n",
123
- " <th></th>\n",
124
- " <th></th>\n",
125
- " </tr>\n",
126
- " </thead>\n",
127
- " <tbody>\n",
128
- " <tr>\n",
129
- " <th>2011-05-22 23:50:01</th>\n",
130
- " <td>U.S. v. Whistleblower Tom Drake</td>\n",
131
- " <td>CBS News</td>\n",
132
- " <td>25</td>\n",
133
- " <td>33797</td>\n",
134
- " <td>311</td>\n",
135
- " <td>36</td>\n",
136
- " <td>146</td>\n",
137
- " <td>News &amp; Politics</td>\n",
138
- " </tr>\n",
139
- " <tr>\n",
140
- " <th>2017-11-10 13:00:02</th>\n",
141
- " <td>Tesla's biggest problem is one nobody saw coming</td>\n",
142
- " <td>Business Insider</td>\n",
143
- " <td>25</td>\n",
144
- " <td>125970</td>\n",
145
- " <td>935</td>\n",
146
- " <td>507</td>\n",
147
- " <td>262</td>\n",
148
- " <td>News &amp; Politics</td>\n",
149
- " </tr>\n",
150
- " <tr>\n",
151
- " <th>2017-11-12 20:26:46</th>\n",
152
- " <td>Some NFL players call for an end to Thursday n...</td>\n",
153
- " <td>ABC News</td>\n",
154
- " <td>25</td>\n",
155
- " <td>7524</td>\n",
156
- " <td>67</td>\n",
157
- " <td>19</td>\n",
158
- " <td>56</td>\n",
159
- " <td>News &amp; Politics</td>\n",
160
- " </tr>\n",
161
- " <tr>\n",
162
- " <th>2017-11-12 21:16:40</th>\n",
163
- " <td>Iraq-Iran earthquake: Deadly tremor hits borde...</td>\n",
164
- " <td>BBC News</td>\n",
165
- " <td>25</td>\n",
166
- " <td>34785</td>\n",
167
- " <td>308</td>\n",
168
- " <td>26</td>\n",
169
- " <td>413</td>\n",
170
- " <td>News &amp; Politics</td>\n",
171
- " </tr>\n",
172
- " <tr>\n",
173
- " <th>2017-11-13 13:45:16</th>\n",
174
- " <td>Why the rise of the robots won’t mean the end ...</td>\n",
175
- " <td>Vox</td>\n",
176
- " <td>25</td>\n",
177
- " <td>256426</td>\n",
178
- " <td>12654</td>\n",
179
- " <td>1363</td>\n",
180
- " <td>2368</td>\n",
181
- " <td>News &amp; Politics</td>\n",
182
- " </tr>\n",
183
- " </tbody>\n",
184
- "</table>\n",
185
- "</div>"
186
- ],
187
- "text/plain": [
188
- " title \\\n",
189
- "publish_time \n",
190
- "2011-05-22 23:50:01 U.S. v. Whistleblower Tom Drake \n",
191
- "2017-11-10 13:00:02 Tesla's biggest problem is one nobody saw coming \n",
192
- "2017-11-12 20:26:46 Some NFL players call for an end to Thursday n... \n",
193
- "2017-11-12 21:16:40 Iraq-Iran earthquake: Deadly tremor hits borde... \n",
194
- "2017-11-13 13:45:16 Why the rise of the robots won’t mean the end ... \n",
195
- "\n",
196
- " channel_title category_id views likes dislikes \\\n",
197
- "publish_time \n",
198
- "2011-05-22 23:50:01 CBS News 25 33797 311 36 \n",
199
- "2017-11-10 13:00:02 Business Insider 25 125970 935 507 \n",
200
- "2017-11-12 20:26:46 ABC News 25 7524 67 19 \n",
201
- "2017-11-12 21:16:40 BBC News 25 34785 308 26 \n",
202
- "2017-11-13 13:45:16 Vox 25 256426 12654 1363 \n",
203
- "\n",
204
- " comment_count category \n",
205
- "publish_time \n",
206
- "2011-05-22 23:50:01 146 News & Politics \n",
207
- "2017-11-10 13:00:02 262 News & Politics \n",
208
- "2017-11-12 20:26:46 56 News & Politics \n",
209
- "2017-11-12 21:16:40 413 News & Politics \n",
210
- "2017-11-13 13:45:16 2368 News & Politics "
211
- ]
212
- },
213
- "execution_count": 4,
214
- "metadata": {},
215
- "output_type": "execute_result"
216
- }
217
- ],
218
- "source": [
219
- "videos.head()"
220
- ]
221
- },
222
- {
223
- "cell_type": "code",
224
- "execution_count": 5,
225
- "metadata": {},
226
- "outputs": [
227
- {
228
- "data": {
229
- "application/vnd.jupyter.widget-view+json": {
230
- "model_id": "4d1ed5d14df44836a3de89a5fb8bec2a",
231
- "version_major": 2,
232
- "version_minor": 0
233
- },
234
- "text/plain": [
235
- "interactive(children=(IntSlider(value=0, description='row', max=2428, step=7), IntSlider(value=0, description=…"
236
- ]
237
- },
238
- "metadata": {},
239
- "output_type": "display_data"
240
- },
241
- {
242
- "name": "stdout",
243
- "output_type": "stream",
244
- "text": [
245
- "(2435 rows, 8 columns) total\n"
246
- ]
247
- }
248
- ],
249
- "source": [
250
- "df_interact(videos)"
251
- ]
252
- },
253
- {
254
- "cell_type": "code",
255
- "execution_count": 6,
256
- "metadata": {},
257
- "outputs": [],
258
- "source": [
259
- "wine_reviews = pd.read_csv(\"https://github.com/jekyll-one/nbinteract-notebooks/raw/main/data/winemag-data-130k-v2.csv.zip\")\n",
260
- "my_review = wine_reviews.head(100)"
261
- ]
262
- },
263
- {
264
- "cell_type": "code",
265
- "execution_count": 7,
266
- "metadata": {},
267
- "outputs": [
268
- {
269
- "data": {
270
- "application/vnd.jupyter.widget-view+json": {
271
- "model_id": "bac533541b77479d86bf972294df6d38",
272
- "version_major": 2,
273
- "version_minor": 0
274
- },
275
- "text/plain": [
276
- "interactive(children=(IntSlider(value=0, description='row', max=93, step=7), IntSlider(value=0, description='c…"
277
- ]
278
- },
279
- "metadata": {},
280
- "output_type": "display_data"
281
- },
282
- {
283
- "name": "stdout",
284
- "output_type": "stream",
285
- "text": [
286
- "(100 rows, 14 columns) total\n"
287
- ]
288
- }
289
- ],
290
- "source": [
291
- "df_interact(my_review)"
292
- ]
293
- }
294
- ],
295
- "metadata": {
296
- "kernelspec": {
297
- "display_name": "Python 3",
298
- "language": "python",
299
- "name": "python3"
300
- },
301
- "language_info": {
302
- "codemirror_mode": {
303
- "name": "ipython",
304
- "version": 3
305
- },
306
- "file_extension": ".py",
307
- "mimetype": "text/x-python",
308
- "name": "python",
309
- "nbconvert_exporter": "python",
310
- "pygments_lexer": "ipython3",
311
- "version": "3.7.9"
312
- },
313
- "papermill": {
314
- "default_parameters": {},
315
- "duration": 12.263247,
316
- "end_time": "2022-02-08T16:44:15.771485",
317
- "environment_variables": {},
318
- "exception": null,
319
- "input_path": "__notebook__.ipynb",
320
- "output_path": "__notebook__.ipynb",
321
- "parameters": {},
322
- "start_time": "2022-02-08T16:44:03.508238",
323
- "version": "2.3.3"
324
- }
325
- },
326
- "nbformat": 4,
327
- "nbformat_minor": 5
328
- }
@@ -1,341 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "code",
5
- "execution_count": 1,
6
- "metadata": {},
7
- "outputs": [],
8
- "source": [
9
- "# nbi:hide_in\n",
10
- "import warnings\n",
11
- "# Ignore numpy dtype warnings. These warnings are caused by an interaction\n",
12
- "# between numpy and Cython and can be safely ignored.\n",
13
- "# Reference: https://stackoverflow.com/a/40846742\n",
14
- "warnings.filterwarnings(\"ignore\", message=\"numpy.dtype size changed\")\n",
15
- "warnings.filterwarnings(\"ignore\", message=\"numpy.ufunc size changed\")\n",
16
- "\n",
17
- "import numpy as np\n",
18
- "import matplotlib.pyplot as plt\n",
19
- "import pandas as pd\n",
20
- "%matplotlib inline\n",
21
- "import ipywidgets as widgets\n",
22
- "from ipywidgets import interact, interactive, fixed, interact_manual\n",
23
- "import nbinteract as nbi\n",
24
- "\n",
25
- "np.set_printoptions(threshold=20, precision=2, suppress=True)\n",
26
- "pd.options.display.max_rows = 7\n",
27
- "pd.options.display.max_columns = 8\n",
28
- "pd.set_option('precision', 2)\n",
29
- "# This option stops scientific notation for pandas\n",
30
- "# pd.set_option('display.float_format', '{:.2f}'.format)"
31
- ]
32
- },
33
- {
34
- "cell_type": "code",
35
- "execution_count": 2,
36
- "metadata": {},
37
- "outputs": [],
38
- "source": [
39
- "# nbi:hide_in\n",
40
- "def df_interact(df, nrows=7, ncols=7):\n",
41
- " '''\n",
42
- " Outputs sliders that show rows and columns of df\n",
43
- " '''\n",
44
- " def peek(row=0, col=0):\n",
45
- " return df.iloc[row:row + nrows, col:col + ncols]\n",
46
- " if len(df.columns) <= ncols:\n",
47
- " interact(peek, row=(0, len(df) - nrows, nrows), col=fixed(0))\n",
48
- " else:\n",
49
- " interact(peek,\n",
50
- " row=(0, len(df) - nrows, nrows),\n",
51
- " col=(0, len(df.columns) - ncols))\n",
52
- " print('({} rows, {} columns) total'.format(df.shape[0], df.shape[1]))"
53
- ]
54
- },
55
- {
56
- "cell_type": "code",
57
- "execution_count": 3,
58
- "metadata": {},
59
- "outputs": [],
60
- "source": [
61
- "# nbi:hide_in\n",
62
- "videos = pd.read_csv('https://github.com/SamLau95/nbinteract/raw/master/notebooks/youtube_trending.csv',\n",
63
- " parse_dates=['publish_time'],\n",
64
- " index_col='publish_time')"
65
- ]
66
- },
67
- {
68
- "cell_type": "markdown",
69
- "metadata": {},
70
- "source": [
71
- "### Page Layout and Dashboarding\n",
72
- "`nbinteract` gives basic page layout functionality using special comments in your code. Include one or more of these markers in a Python comment and `nbinteract` will add their corresponding CSS classes to the generated cells.\n",
73
- "\n",
74
- "| Marker | Description | CSS class added |\n",
75
- "| --------- | --------- | --------- |\n",
76
- "| `nbi:left` | Floats cell to the left | `nbinteract-left` |\n",
77
- "| `nbi:right` | Floats cell to the right | `nbinteract-right` |\n",
78
- "| `nbi:hide_in` | Hides cell input | `nbinteract-hide_in` |\n",
79
- "| `nbi:hide_out` | Hides cell output | `nbinteract-hide_out` |\n",
80
- "\n",
81
- "By default, only the `full` template will automatically provide styling for these classes. For other templates, `nbinteract` assumes that the embedding page will use the CSS classes to style the cells.\n",
82
- "\n",
83
- "You can use the layout markers to create simple dashboards. In this page, we create a dashboard using a dataset of trending videos on YouTube. We first create a dashboard showing the code used to generate the plots. Further down the page, we replicate the dashboard without showing the code."
84
- ]
85
- },
86
- {
87
- "cell_type": "code",
88
- "execution_count": 4,
89
- "metadata": {},
90
- "outputs": [
91
- {
92
- "data": {
93
- "application/vnd.jupyter.widget-view+json": {
94
- "model_id": "e0125ef8a64f48d68c4f459623f3be93",
95
- "version_major": 2,
96
- "version_minor": 0
97
- },
98
- "text/plain": [
99
- "interactive(children=(IntSlider(value=0, description='row', max=2428, step=7), IntSlider(value=0, description=…"
100
- ]
101
- },
102
- "metadata": {},
103
- "output_type": "display_data"
104
- },
105
- {
106
- "name": "stdout",
107
- "output_type": "stream",
108
- "text": [
109
- "(2435 rows, 8 columns) total\n"
110
- ]
111
- }
112
- ],
113
- "source": [
114
- "df_interact(videos)"
115
- ]
116
- },
117
- {
118
- "cell_type": "code",
119
- "execution_count": 5,
120
- "metadata": {},
121
- "outputs": [
122
- {
123
- "data": {
124
- "application/vnd.jupyter.widget-view+json": {
125
- "model_id": "29a0ed22c7494de7a593d3399c7135a1",
126
- "version_major": 2,
127
- "version_minor": 0
128
- },
129
- "text/plain": [
130
- "VBox(children=(interactive(children=(Dropdown(description='channel', options=('The View', 'CBS This Morning', …"
131
- ]
132
- },
133
- "metadata": {},
134
- "output_type": "display_data"
135
- }
136
- ],
137
- "source": [
138
- "# nbi:left\n",
139
- "options = {\n",
140
- " 'title': 'Views for Trending Videos',\n",
141
- " 'xlabel': 'Date Trending',\n",
142
- " 'ylabel': 'Views',\n",
143
- " 'animation_duration': 500,\n",
144
- " 'aspect_ratio': 1.0,\n",
145
- "}\n",
146
- "\n",
147
- "def xs(channel):\n",
148
- " return videos.loc[videos['channel_title'] == channel].index\n",
149
- "\n",
150
- "def ys(xs):\n",
151
- " return videos.loc[xs, 'views']\n",
152
- "\n",
153
- "nbi.scatter(xs, ys,\n",
154
- " channel=videos['channel_title'].unique()[9:15],\n",
155
- " options=options)"
156
- ]
157
- },
158
- {
159
- "cell_type": "code",
160
- "execution_count": 6,
161
- "metadata": {},
162
- "outputs": [
163
- {
164
- "data": {
165
- "application/vnd.jupyter.widget-view+json": {
166
- "model_id": "534e4ac50eeb4e0fbc11b905c5cb541f",
167
- "version_major": 2,
168
- "version_minor": 0
169
- },
170
- "text/plain": [
171
- "VBox(children=(interactive(children=(ToggleButtons(description='col', options=('views', 'likes', 'dislikes', '…"
172
- ]
173
- },
174
- "metadata": {},
175
- "output_type": "display_data"
176
- }
177
- ],
178
- "source": [
179
- "# nbi:right\n",
180
- "options={\n",
181
- " 'ylabel': 'Proportion per Unit',\n",
182
- " 'bins': 100,\n",
183
- " 'aspect_ratio': 1.0,\n",
184
- "}\n",
185
- "\n",
186
- "\n",
187
- "def values(col):\n",
188
- " vals = videos[col]\n",
189
- " return vals[vals < vals.quantile(0.8)]\n",
190
- "\n",
191
- "nbi.hist(values, col=widgets.ToggleButtons(options=['views', 'likes', 'dislikes', 'comment_count']), options=options)"
192
- ]
193
- },
194
- {
195
- "cell_type": "markdown",
196
- "metadata": {},
197
- "source": [
198
- " "
199
- ]
200
- },
201
- {
202
- "cell_type": "markdown",
203
- "metadata": {},
204
- "source": [
205
- "#### Dashboard (without showing code)"
206
- ]
207
- },
208
- {
209
- "cell_type": "code",
210
- "execution_count": 7,
211
- "metadata": {},
212
- "outputs": [
213
- {
214
- "data": {
215
- "application/vnd.jupyter.widget-view+json": {
216
- "model_id": "d780bd58810c4f03a20c29b6220b7924",
217
- "version_major": 2,
218
- "version_minor": 0
219
- },
220
- "text/plain": [
221
- "interactive(children=(IntSlider(value=0, description='row', max=2428, step=7), IntSlider(value=0, description=…"
222
- ]
223
- },
224
- "metadata": {},
225
- "output_type": "display_data"
226
- },
227
- {
228
- "name": "stdout",
229
- "output_type": "stream",
230
- "text": [
231
- "(2435 rows, 8 columns) total\n"
232
- ]
233
- }
234
- ],
235
- "source": [
236
- "# nbi:hide_in\n",
237
- "df_interact(videos)"
238
- ]
239
- },
240
- {
241
- "cell_type": "code",
242
- "execution_count": 8,
243
- "metadata": {},
244
- "outputs": [
245
- {
246
- "data": {
247
- "application/vnd.jupyter.widget-view+json": {
248
- "model_id": "031a7cdc657249949261954d56569292",
249
- "version_major": 2,
250
- "version_minor": 0
251
- },
252
- "text/plain": [
253
- "VBox(children=(interactive(children=(Dropdown(description='channel', options=('The View', 'CBS This Morning', …"
254
- ]
255
- },
256
- "metadata": {},
257
- "output_type": "display_data"
258
- }
259
- ],
260
- "source": [
261
- "# nbi:hide_in\n",
262
- "# nbi:left\n",
263
- "options = {\n",
264
- " 'title': 'Views for Trending Videos',\n",
265
- " 'xlabel': 'Date Trending',\n",
266
- " 'ylabel': 'Views',\n",
267
- " 'animation_duration': 500,\n",
268
- " 'aspect_ratio': 1.0,\n",
269
- "}\n",
270
- "\n",
271
- "def xs(channel):\n",
272
- " return videos.loc[videos['channel_title'] == channel].index\n",
273
- "\n",
274
- "def ys(xs):\n",
275
- " return videos.loc[xs, 'views']\n",
276
- "\n",
277
- "nbi.scatter(xs, ys,\n",
278
- " channel=videos['channel_title'].unique()[9:15],\n",
279
- " options=options)"
280
- ]
281
- },
282
- {
283
- "cell_type": "code",
284
- "execution_count": 9,
285
- "metadata": {},
286
- "outputs": [
287
- {
288
- "data": {
289
- "application/vnd.jupyter.widget-view+json": {
290
- "model_id": "b947b2cbb59d456fb44049b4e132df1d",
291
- "version_major": 2,
292
- "version_minor": 0
293
- },
294
- "text/plain": [
295
- "VBox(children=(interactive(children=(ToggleButtons(description='col', options=('views', 'likes', 'dislikes', '…"
296
- ]
297
- },
298
- "metadata": {},
299
- "output_type": "display_data"
300
- }
301
- ],
302
- "source": [
303
- "# nbi:hide_in\n",
304
- "# nbi:right\n",
305
- "options={\n",
306
- " 'ylabel': 'Proportion per Unit',\n",
307
- " 'bins': 100,\n",
308
- " 'aspect_ratio': 1.0,\n",
309
- "}\n",
310
- "\n",
311
- "\n",
312
- "def values(col):\n",
313
- " vals = videos[col]\n",
314
- " return vals[vals < vals.quantile(0.8)]\n",
315
- "\n",
316
- "nbi.hist(values, col=widgets.ToggleButtons(options=['views', 'likes', 'dislikes', 'comment_count']), options=options)"
317
- ]
318
- }
319
- ],
320
- "metadata": {
321
- "kernelspec": {
322
- "display_name": "Python 3",
323
- "language": "python",
324
- "name": "python3"
325
- },
326
- "language_info": {
327
- "codemirror_mode": {
328
- "name": "ipython",
329
- "version": 3
330
- },
331
- "file_extension": ".py",
332
- "mimetype": "text/x-python",
333
- "name": "python",
334
- "nbconvert_exporter": "python",
335
- "pygments_lexer": "ipython3",
336
- "version": "3.7.9"
337
- }
338
- },
339
- "nbformat": 4,
340
- "nbformat_minor": 2
341
- }