j1-template 2022.5.0 → 2022.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (410) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/attics/generator.html +5 -13
  3. data/_includes/themes/j1/procedures/global/date-german.proc +67 -0
  4. data/assets/data/banner.html +2 -2
  5. data/assets/data/menu.html +1 -1
  6. data/assets/data/mmenu.html +36 -36
  7. data/assets/themes/j1/adapter/js/attic.js +114 -62
  8. data/assets/themes/j1/adapter/js/cookieConsent.js +42 -25
  9. data/assets/themes/j1/adapter/js/mmenu.js +2 -2
  10. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +28 -3
  11. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  12. data/assets/themes/j1/modules/backstretch/js/backstretch.js +5 -5
  13. data/assets/themes/j1/modules/backstretch/js/backstretch.min.js +1 -1
  14. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.js +1696 -0
  15. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.min.js +20 -0
  16. data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.js +1627 -0
  17. data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.min.js +20 -0
  18. data/assets/themes/j1/modules/mmenuLight/README.md +22 -0
  19. data/assets/themes/j1/modules/mmenuLight/css/mmenu-light.css +224 -243
  20. data/assets/themes/j1/modules/mmenuLight/css/mmenu-light.min.css +3 -3
  21. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.css +95 -55
  22. data/assets/themes/j1/modules/mmenuLight/css/theme/uno/mmenu.min.css +1 -1
  23. data/assets/themes/j1/modules/mmenuLight/js/mmenu.js +57 -440
  24. data/assets/themes/j1/modules/mmenuLight/js/mmenu.min.js +4 -15
  25. data/assets/themes/j1/modules/{twemoji/js/picker → themeSwitcher}/LICENSE +21 -21
  26. data/assets/themes/j1/modules/themeSwitcher/README.md +166 -0
  27. data/assets/themes/j1/modules/themeSwitcher/js/switcher.js +2 -2
  28. data/assets/themes/j1/modules/themeSwitcher/js/switcher.min.js +1 -1
  29. data/lib/j1/version.rb +1 -1
  30. data/lib/starter_web/Gemfile +1 -1
  31. data/lib/starter_web/README.md +440 -175
  32. data/lib/starter_web/_config.yml +2 -2
  33. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  34. data/lib/starter_web/_data/modules/attics.yml +12 -0
  35. data/lib/starter_web/_data/modules/defaults/attics.yml +16 -1
  36. data/lib/starter_web/_data/modules/defaults/cookies.yml +1 -1
  37. data/lib/starter_web/_data/modules/navigator_menu.yml +28 -25
  38. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  39. data/lib/starter_web/assets/images/modules/attics/1920x1280/ben-kolde.jpg +0 -0
  40. data/lib/starter_web/assets/images/modules/attics/1920x1280/braden-collum.jpg +0 -0
  41. data/lib/starter_web/assets/images/modules/attics/1920x1280/ev.jpg +0 -0
  42. data/lib/starter_web/assets/images/modules/attics/1920x1280/firmbee-com.jpg +0 -0
  43. data/lib/starter_web/assets/images/modules/attics/1920x1280/max-harlynking.jpg +0 -0
  44. data/lib/starter_web/assets/images/modules/attics/guillaume-bolduc-1920x1280.jpg +0 -0
  45. data/lib/starter_web/assets/images/modules/attics/spacex-1920x1280.jpg +0 -0
  46. data/lib/starter_web/assets/videos/headers/{still → present_videos/still}/underground-broadway.jpg +0 -0
  47. data/lib/starter_web/assets/videos/headers/present_videos/underground-broadway.mp4 +0 -0
  48. data/lib/starter_web/collections/asciidoc_skeletons/simple-post/_posts/yyyy-mm-dd-your-post-name.asciidoc +3 -1
  49. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +3 -0
  50. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +2 -3
  51. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +3 -0
  52. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +3 -0
  53. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +3 -0
  54. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +3 -0
  55. data/lib/starter_web/index.html +68 -12
  56. data/lib/starter_web/package.json +1 -1
  57. data/lib/starter_web/pages/public/about/features.adoc +119 -0
  58. data/lib/starter_web/pages/public/about/reporting_issues.adoc +5 -1
  59. data/lib/starter_web/pages/public/about/{about_site.adoc → site.adoc} +20 -15
  60. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +3 -0
  61. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +3 -0
  62. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +3 -0
  63. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -0
  64. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +4 -1
  65. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +4 -1
  66. data/lib/starter_web/pages/public/blog/navigator/archive.html +4 -1
  67. data/lib/starter_web/pages/public/blog/navigator/index.html +4 -1
  68. data/lib/starter_web/pages/public/features/general.adoc +5 -1
  69. data/lib/starter_web/pages/public/features/template.adoc +4 -0
  70. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-circular-times-table.adoc +3 -0
  71. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-common-used-widgets.adoc +3 -0
  72. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-odes-in-python.adoc +3 -0
  73. data/lib/starter_web/pages/public/jupyter/examples/localized/j1_climate-change-forecast.adoc +3 -0
  74. data/lib/starter_web/pages/public/learn/quickstart.adoc +4 -1
  75. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +4 -1
  76. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +16 -5
  77. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +3 -0
  78. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +3 -0
  79. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +3 -0
  80. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +3 -0
  81. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +3 -0
  82. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +3 -0
  83. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +6 -2
  84. data/lib/starter_web/pages/public/learn/where_to_go.adoc +3 -0
  85. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +3 -0
  86. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +3 -0
  87. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +142 -0
  88. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +3 -0
  89. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +9 -1
  90. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +10 -2
  91. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +66 -3
  92. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +3 -0
  93. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +3 -0
  94. data/lib/starter_web/pages/public/plans/plans.adoc +3 -0
  95. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +4 -0
  96. data/lib/starter_web/pages/public/se/se-fake.adoc +4 -0
  97. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  98. data/lib/starter_web/utilsrv/package.json +1 -1
  99. metadata +21 -372
  100. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.css +0 -153
  101. data/assets/themes/j1/modules/twemoji/css/picker/twemoji-picker.min.css +0 -19
  102. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.js +0 -304
  103. data/assets/themes/j1/modules/twemoji/js/picker/twemoji-picker.min.js +0 -322
  104. data/assets/themes/j1/modules/twemoji/js/twemoji.js +0 -580
  105. data/assets/themes/j1/modules/twemoji/js/twemoji.min.js +0 -19
  106. data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.jpg +0 -0
  107. data/lib/starter_web/pages/public/_jupyter/docs/_includes/attributes.asciidoc +0 -67
  108. data/lib/starter_web/pages/public/_jupyter/docs/_includes/documents/j1_docs_example_static.asciidoc +0 -232
  109. data/lib/starter_web/pages/public/_jupyter/docs/binderhub.adoc +0 -631
  110. data/lib/starter_web/pages/public/_jupyter/docs/j1-nbinteract.adoc +0 -638
  111. data/lib/starter_web/pages/public/_jupyter/docs/jupyterhub.adoc +0 -248
  112. data/lib/starter_web/pages/public/_jupyter/docs/nbinteract-widget-manual.adoc +0 -928
  113. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-circular-times-table.adoc +0 -139
  114. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-common-used-widgets.adoc +0 -229
  115. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-odes-in-python.adoc +0 -112
  116. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-altair/j1-altair-visualisations.adoc +0 -142
  117. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bokeh-visualisations.adoc +0 -171
  118. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bqplot-eamples.adoc +0 -111
  119. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-plotly/j1-plotly-visualisations.adoc +0 -94
  120. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1_climate-change-forecast.adoc +0 -106
  121. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16260
  122. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_bgplot_line_plot-checkpoint.ipynb +0 -247
  123. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-Copy1-checkpoint.ipynb +0 -12382
  124. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-checkpoint.ipynb +0 -12387
  125. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-short-checkpoint.ipynb +0 -12170
  126. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast-checkpoint.ipynb +0 -1058
  127. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_example_dynamic-checkpoint.ipynb +0 -14478
  128. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-Copy1-checkpoint.ipynb +0 -379
  129. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-checkpoint.ipynb +0 -442
  130. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets-checkpoint.ipynb +0 -523
  131. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.line_charts-checkpoint.ipynb +0 -84
  132. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.questions-checkpoint.ipynb +0 -194
  133. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_chart-checkpoint.ipynb +0 -89
  134. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-Copy1-checkpoint.ipynb +0 -164
  135. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-checkpoint.ipynb +0 -173
  136. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts.1-checkpoint.ipynb +0 -256
  137. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_barcharts-checkpoint.ipynb +0 -126
  138. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_hist_chart-checkpoint.ipynb +0 -87
  139. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_chart-checkpoint.ipynb +0 -90
  140. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_charts-checkpoint.ipynb +0 -87
  141. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_multiple_choice-checkpoint.ipynb +0 -64
  142. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_short_answer-checkpoint.ipynb +0 -122
  143. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_questions-checkpoint.ipynb +0 -181
  144. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_chart-checkpoint.ipynb +0 -89
  145. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_charts-checkpoint.ipynb +0 -175
  146. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_drag_chart-checkpoint.ipynb +0 -87
  147. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_ode_selected-checkpoint.ipynb +0 -14478
  148. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_odes_in_python-checkpoint.ipynb +0 -15227
  149. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/factor_by_factor.mp4 +0 -0
  150. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_circular_times_table.ipynb +0 -12382
  151. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +0 -1058
  152. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +0 -14478
  153. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_interactive_widgets.ipynb +0 -442
  154. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets.ipynb +0 -523
  155. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_bar_chart.ipynb +0 -89
  156. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_hist_chart.ipynb +0 -87
  157. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_line_chart.ipynb +0 -90
  158. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_multiple_choice.ipynb +0 -64
  159. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_short_answer.ipynb +0 -122
  160. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_chart.ipynb +0 -89
  161. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_drag_chart.ipynb +0 -87
  162. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_odes_in_python.ipynb +0 -15227
  163. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/line_by_line.mp4 +0 -0
  164. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/point_by_point.mp4 +0 -0
  165. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16296
  166. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_non_interactive-checkpoint.ipynb +0 -15385
  167. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_interactive.ipynb +0 -16296
  168. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_non_interactive.ipynb +0 -15385
  169. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/00 - Introduction and Setup-checkpoint.ipynb +0 -717
  170. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/01 - Basic Plotting-checkpoint.ipynb +0 -1381
  171. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/02 - Styling and Theming-checkpoint.ipynb +0 -1440
  172. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/03 - Data Sources and Transformations-checkpoint.ipynb +0 -927
  173. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/04 - Adding Annotations-checkpoint.ipynb +0 -1105
  174. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/05 - Presentation Layouts-checkpoint.ipynb +0 -578
  175. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/06 - Linking and Interactions-checkpoint.ipynb +0 -1196
  176. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/07 - Bar and Categorical Data Plots-checkpoint.ipynb +0 -1681
  177. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/08 - Graph and Network Plots-checkpoint.ipynb +0 -680
  178. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/09 - Geographic Plots-checkpoint.ipynb +0 -693
  179. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/10 - Exporting and Embedding-checkpoint.ipynb +0 -751
  180. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/11 - Running Bokeh Applications-checkpoint.ipynb +0 -770
  181. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/bokeh_tut_00_introduction_and_setup-checkpoint.ipynb +0 -666
  182. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_01_basic_plotting-checkpoint.ipynb +0 -1365
  183. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_02_styling_and_theming-checkpoint.ipynb +0 -1405
  184. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_03_data_sources_and_transformations-checkpoint.ipynb +0 -856
  185. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_04_adding_annotations-checkpoint.ipynb +0 -1167
  186. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_05_presentation_layouts-checkpoint.ipynb +0 -601
  187. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_06_linking_and_interactions-checkpoint.ipynb +0 -1356
  188. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_07_bar_and_categorical_data_plots-checkpoint.ipynb +0 -1742
  189. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_08_graph_and_network_plots-checkpoint.ipynb +0 -625
  190. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_09_geographic_plots-checkpoint.ipynb +0 -685
  191. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.ipynb +0 -726
  192. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.org +0 -726
  193. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding.new-checkpoint.ipynb +0 -560
  194. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_11_running_bokeh_applications-checkpoint.ipynb +0 -716
  195. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_01_basic_plotting.ipynb +0 -1365
  196. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_02_styling_and_theming.ipynb +0 -1405
  197. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_03_data_sources_and_transformations.ipynb +0 -856
  198. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_04_adding_annotations.ipynb +0 -1167
  199. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_05_presentation_layouts.ipynb +0 -601
  200. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_06_linking_and_interactions.ipynb +0 -1356
  201. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_07_bar_and_categorical_data_plots.ipynb +0 -1742
  202. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_08_graph_and_network_plots.ipynb +0 -625
  203. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_09_geographic_plots.ipynb +0 -685
  204. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/.ipynb_checkpoints/j1_mathplot_vs_bqplot-checkpoint.ipynb +0 -336
  205. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/advanced/Feature_Vector_Distribution-Iris-Digits.ipynb +0 -433
  206. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_bgplot_line_plot.ipynb +0 -244
  207. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_circular_times_table-short.ipynb +0 -12170
  208. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_mathplot_vs_bqplot.ipynb +0 -336
  209. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Index-checkpoint.ipynb +0 -163
  210. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Tutorials-checkpoint.ipynb +0 -51
  211. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Advanced Plotting.ipynb +0 -289
  212. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Animations.ipynb +0 -266
  213. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Axis Properties.ipynb +0 -396
  214. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Plotting Dates.ipynb +0 -318
  215. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/Time Series.ipynb +0 -158
  216. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/spx_prices.csv +0 -6799
  217. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Feature_Vector_Distribution-Iris-Digits.ipynb +0 -470
  218. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Index.ipynb +0 -49
  219. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Logs Analytics/Logs Dashboard.ipynb +0 -378
  220. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Mobile Patent Suits.ipynb +0 -123
  221. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Neural Network.ipynb +0 -177
  222. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Outlier Detection.ipynb +0 -311
  223. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Bubble Chart.ipynb +0 -255
  224. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Choropleth.ipynb +0 -275
  225. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/nations.json +0 -1
  226. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/world_map_codes.csv +0 -234
  227. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Basic Plotting-checkpoint.ipynb +0 -186
  228. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Pyplot-checkpoint.ipynb +0 -794
  229. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Untitled-checkpoint.ipynb +0 -323
  230. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Basic Plotting.ipynb +0 -261
  231. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Pyplot.ipynb +0 -1489
  232. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Index.ipynb +0 -163
  233. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Interaction Layer.ipynb +0 -966
  234. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Mark Interactions.ipynb +0 -476
  235. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Selectors.ipynb +0 -427
  236. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Introduction.ipynb +0 -528
  237. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bars.ipynb +0 -480
  238. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bins.ipynb +0 -217
  239. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Boxplot.ipynb +0 -253
  240. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Candles.ipynb +0 -225
  241. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/FlexLine.ipynb +0 -123
  242. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Graph.ipynb +0 -357
  243. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/GridHeatMap.ipynb +0 -422
  244. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/HeatMap.ipynb +0 -157
  245. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Hist.ipynb +0 -176
  246. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Image.ipynb +0 -195
  247. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Label.ipynb +0 -189
  248. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Lines.ipynb +0 -565
  249. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Map.ipynb +0 -182
  250. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Market Map.ipynb +0 -315
  251. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Pie.ipynb +0 -465
  252. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Scatter.ipynb +0 -835
  253. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bars.ipynb +0 -362
  254. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bins.ipynb +0 -252
  255. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Boxplot.ipynb +0 -273
  256. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Candles.ipynb +0 -242
  257. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/GridHeatMap.ipynb +0 -417
  258. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/HeatMap.ipynb +0 -155
  259. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Hist.ipynb +0 -238
  260. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Image.ipynb +0 -152
  261. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Label.ipynb +0 -206
  262. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Lines.ipynb +0 -474
  263. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Map.ipynb +0 -181
  264. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Pie.ipynb +0 -310
  265. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Scatter.ipynb +0 -702
  266. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Scales/Color Scales.ipynb +0 -495
  267. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Feature_Vector_Distribution-Iris-Digits-checkpoint.ipynb +0 -433
  268. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Linking Plots With Widgets-checkpoint.ipynb +0 -326
  269. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-Copy1-checkpoint.ipynb +0 -177
  270. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-checkpoint.ipynb +0 -177
  271. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Brush Interval Selector.ipynb +0 -154
  272. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Fast Interval Selector.ipynb +0 -152
  273. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density Widget.ipynb +0 -128
  274. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density.ipynb +0 -113
  275. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Linking Plots With Widgets.ipynb +0 -326
  276. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Object Model.ipynb +0 -179
  277. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Pyplot.ipynb +0 -174
  278. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Updating Plots.ipynb +0 -177
  279. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials.ipynb +0 -51
  280. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/country_codes.csv +0 -213
  281. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/gdp_per_capita.csv +0 -56
  282. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/state_codes.csv +0 -52
  283. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/trees.jpg +0 -0
  284. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_central_limit_theorem-checkpoint.ipynb +0 -247
  285. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_variability_of_the_sample_mean-checkpoint.ipynb +0 -323
  286. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +0 -387
  287. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_interactive_questions-checkpoint.ipynb +0 -185
  288. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_layout-checkpoint.ipynb +0 -384
  289. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_interact-checkpoint.ipynb +0 -254
  290. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_monty_hall-checkpoint.ipynb +0 -732
  291. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_central_limit_theorem.ipynb +0 -247
  292. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_correlation.ipynb +0 -651
  293. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_empirical_distributions.ipynb +0 -773
  294. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_linear_regression.ipynb +0 -111
  295. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_probability_distribution_plots.ipynb +0 -199
  296. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_sampling_from_a_population.ipynb +0 -421
  297. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_variability_of_the_sample_mean.ipynb +0 -323
  298. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_graphing.ipynb +0 -387
  299. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_interactive_questions.ipynb +0 -185
  300. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_layout.ipynb +0 -384
  301. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_interact.ipynb +0 -254
  302. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_monty_hall.ipynb +0 -732
  303. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Advanced Plotting.html +0 -373
  304. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Animations.html +0 -361
  305. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Axis Properties.html +0 -569
  306. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bars.html +0 -487
  307. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Basic Plotting.html +0 -341
  308. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bins.html +0 -259
  309. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Boxplot.html +0 -277
  310. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Brush Interval Selector.html +0 -182
  311. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bubble Chart.html +0 -299
  312. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Candles.html +0 -252
  313. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Choropleth.html +0 -318
  314. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Color Scales.html +0 -514
  315. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Fast Interval Selector.html +0 -182
  316. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Feature_Vector_Distribution-Iris-Digits.html +0 -479
  317. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/FlexLine.html +0 -128
  318. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density Widget.html +0 -152
  319. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density.html +0 -137
  320. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Graph.html +0 -484
  321. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/GridHeatMap.html +0 -483
  322. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/HeatMap.html +0 -170
  323. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Hist.html +0 -349
  324. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Image.html +0 -177
  325. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Index.html +0 -29
  326. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Interaction Layer.html +0 -1372
  327. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Introduction.html +0 -749
  328. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Label.html +0 -268
  329. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Lines.html +0 -704
  330. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Linking Plots With Widgets.html +0 -389
  331. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Logs Dashboard.html +0 -455
  332. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Map.html +0 -229
  333. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mark Interactions.html +0 -613
  334. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Market Map.html +0 -413
  335. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mobile Patent Suits.html +0 -131
  336. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Neural Network.html +0 -190
  337. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Object Model.html +0 -193
  338. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Outlier Detection.html +0 -363
  339. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pie.html +0 -367
  340. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Plotting Dates.html +0 -337
  341. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pyplot.html +0 -196
  342. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Scatter.html +0 -948
  343. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Selectors.html +0 -489
  344. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Time Series.html +0 -173
  345. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Tutorials.html +0 -40
  346. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Updating Plots.html +0 -228
  347. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_interactive.html +0 -2216
  348. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_non_interactive.html +0 -1170
  349. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bgplot_line_plot.html +0 -318
  350. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_01_basic_plotting.html +0 -1479
  351. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_02_styling_and_theming.html +0 -1524
  352. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_03_data_sources_and_transformations.html +0 -983
  353. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_04_adding_annotations.html +0 -1280
  354. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_05_presentation_layouts.html +0 -660
  355. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_06_linking_and_interactions.html +0 -1563
  356. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_07_bar_and_categorical_data_plots.html +0 -1888
  357. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_08_graph_and_network_plots.html +0 -689
  358. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_09_geographic_plots.html +0 -767
  359. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table-short.html +0 -475
  360. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table.html +0 -747
  361. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_climate_change_forecast.html +0 -1250
  362. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +0 -186
  363. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_interactive_widgets.html +0 -512
  364. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_mathplot_vs_bqplot.html +0 -407
  365. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets.html +0 -629
  366. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +0 -95
  367. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +0 -93
  368. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +0 -96
  369. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +0 -70
  370. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +0 -156
  371. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +0 -95
  372. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +0 -93
  373. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_odes_in_python.html +0 -955
  374. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_central_limit_theorem.html +0 -290
  375. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_correlation.html +0 -818
  376. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_empirical_distributions.html +0 -351
  377. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_linear_regression.html +0 -106
  378. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_probability_distribution_plots.html +0 -228
  379. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_sampling_from_a_population.html +0 -518
  380. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_variability_of_the_sample_mean.html +0 -372
  381. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_graphing.html +0 -473
  382. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_interactive_questions.html +0 -242
  383. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_layout.html +0 -496
  384. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_interact.html +0 -329
  385. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_monty_hall.html +0 -866
  386. data/lib/starter_web/pages/public/_jupyter/where_to_go.adoc +0 -270
  387. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_images.adoc +0 -313
  388. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_videos.adoc +0 -281
  389. data/lib/starter_web/pages/public/learn/_roundtrip/200_typography.adoc +0 -253
  390. data/lib/starter_web/pages/public/learn/_roundtrip/300_icon_fonts.adoc +0 -579
  391. data/lib/starter_web/pages/public/learn/_roundtrip/400_asciidoc_extensions.adoc +0 -718
  392. data/lib/starter_web/pages/public/learn/_roundtrip/410_bs_modals_extentions.adoc +0 -91
  393. data/lib/starter_web/pages/public/learn/_roundtrip/420_responsive_tables_extensions.adoc +0 -420
  394. data/lib/starter_web/pages/public/learn/_roundtrip/500_themes.adoc +0 -250
  395. data/lib/starter_web/pages/public/learn/_roundtrip/600_quicksearch.adoc +0 -425
  396. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/attributes.asciidoc +0 -118
  397. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/100_gistblock.asciidoc +0 -28
  398. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_info.asciidoc +0 -14
  399. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +0 -11
  400. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +0 -11
  401. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_central_success.asciidoc +0 -11
  402. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_left_info.asciidoc +0 -11
  403. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_right_success.asciidoc +0 -11
  404. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +0 -47
  405. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_info.asciidoc +0 -11
  406. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_left_info.asciidoc +0 -11
  407. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_right_success.asciidoc +0 -11
  408. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +0 -337
  409. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +0 -47
  410. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/google-ad.js +0 -130
@@ -1,1170 +0,0 @@
1
- <div class="cell text_cell">
2
- <button class="js-nbinteract-widget">
3
- Loading widgets...
4
- </button>
5
- </div>
6
-
7
-
8
-
9
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
10
- <div class="text_cell_render border-box-sizing rendered_html">
11
- <h3 id="Resources">Resources<a class="anchor-link" href="#Resources">&#182;</a></h3>
12
- </div>
13
- </div>
14
- </div>
15
-
16
-
17
-
18
- <div class="
19
- cell border-box-sizing code_cell rendered">
20
- <div class="input">
21
-
22
- <div class="inner_cell">
23
- <div class="input_area">
24
- <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">warnings</span>
25
- <span class="n">warnings</span><span class="o">.</span><span class="n">filterwarnings</span><span class="p">(</span><span class="s2">&quot;ignore&quot;</span><span class="p">)</span>
26
-
27
- <span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
28
- <span class="kn">import</span> <span class="nn">altair</span> <span class="k">as</span> <span class="nn">alt</span>
29
- </pre></div>
30
-
31
- </div>
32
- </div>
33
- </div>
34
-
35
- </div>
36
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
37
- <div class="text_cell_render border-box-sizing rendered_html">
38
- <h3 id="The-Movies-Dataset">The Movies Dataset<a class="anchor-link" href="#The-Movies-Dataset">&#182;</a></h3><p>We will be working with a table of data about motion pictures, taken from the vega-datasets collection. The data includes variables such as the film name, director, genre, release date, ratings, and gross revenues. However, be careful when working with this data: the films are from unevenly sampled years, using data combined from multiple sources. If you dig in you will find issues with missing values and even some subtle errors! Nevertheless, the data should prove interesting to explore...</p>
39
- <p>Let's retrieve the URL for the JSON data file from the vega_datasets package, and then read the data into a Pandas data frame so that we can inspect its contents.</p>
40
-
41
- </div>
42
- </div>
43
- </div>
44
-
45
-
46
-
47
- <div class="
48
- cell border-box-sizing code_cell rendered">
49
- <div class="input">
50
-
51
- <div class="inner_cell">
52
- <div class="input_area">
53
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">movies_url</span> <span class="o">=</span> <span class="s1">&#39;https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json&#39;</span>
54
- <span class="n">movies</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">read_json</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span>
55
- </pre></div>
56
-
57
- </div>
58
- </div>
59
- </div>
60
-
61
- </div>
62
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
63
- <div class="text_cell_render border-box-sizing rendered_html">
64
- <p>Now let's peek at the first 5 rows of the table to get a sense of the fields and data types...</p>
65
-
66
- </div>
67
- </div>
68
- </div>
69
-
70
-
71
-
72
- <div class="
73
- cell border-box-sizing code_cell rendered">
74
- <div class="input">
75
-
76
- <div class="inner_cell">
77
- <div class="input_area">
78
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">movies</span><span class="o">.</span><span class="n">head</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
79
- </pre></div>
80
-
81
- </div>
82
- </div>
83
- </div>
84
-
85
- <div class="output_wrapper">
86
- <div class="output">
87
-
88
-
89
- <div class="output_area">
90
-
91
-
92
-
93
-
94
- <div class="output_html rendered_html output_subarea output_execute_result">
95
- <div>
96
- <style scoped>
97
- .dataframe tbody tr th:only-of-type {
98
- vertical-align: middle;
99
- }
100
-
101
- .dataframe tbody tr th {
102
- vertical-align: top;
103
- }
104
-
105
- .dataframe thead th {
106
- text-align: right;
107
- }
108
- </style>
109
- <table border="1" class="dataframe">
110
- <thead>
111
- <tr style="text-align: right;">
112
- <th></th>
113
- <th>Title</th>
114
- <th>US_Gross</th>
115
- <th>Worldwide_Gross</th>
116
- <th>US_DVD_Sales</th>
117
- <th>Production_Budget</th>
118
- <th>Release_Date</th>
119
- <th>MPAA_Rating</th>
120
- <th>Running_Time_min</th>
121
- <th>Distributor</th>
122
- <th>Source</th>
123
- <th>Major_Genre</th>
124
- <th>Creative_Type</th>
125
- <th>Director</th>
126
- <th>Rotten_Tomatoes_Rating</th>
127
- <th>IMDB_Rating</th>
128
- <th>IMDB_Votes</th>
129
- </tr>
130
- </thead>
131
- <tbody>
132
- <tr>
133
- <th>0</th>
134
- <td>The Land Girls</td>
135
- <td>146083.0</td>
136
- <td>146083.0</td>
137
- <td>NaN</td>
138
- <td>8000000.0</td>
139
- <td>Jun 12 1998</td>
140
- <td>R</td>
141
- <td>NaN</td>
142
- <td>Gramercy</td>
143
- <td>None</td>
144
- <td>None</td>
145
- <td>None</td>
146
- <td>None</td>
147
- <td>NaN</td>
148
- <td>6.1</td>
149
- <td>1071.0</td>
150
- </tr>
151
- <tr>
152
- <th>1</th>
153
- <td>First Love, Last Rites</td>
154
- <td>10876.0</td>
155
- <td>10876.0</td>
156
- <td>NaN</td>
157
- <td>300000.0</td>
158
- <td>Aug 07 1998</td>
159
- <td>R</td>
160
- <td>NaN</td>
161
- <td>Strand</td>
162
- <td>None</td>
163
- <td>Drama</td>
164
- <td>None</td>
165
- <td>None</td>
166
- <td>NaN</td>
167
- <td>6.9</td>
168
- <td>207.0</td>
169
- </tr>
170
- <tr>
171
- <th>2</th>
172
- <td>I Married a Strange Person</td>
173
- <td>203134.0</td>
174
- <td>203134.0</td>
175
- <td>NaN</td>
176
- <td>250000.0</td>
177
- <td>Aug 28 1998</td>
178
- <td>None</td>
179
- <td>NaN</td>
180
- <td>Lionsgate</td>
181
- <td>None</td>
182
- <td>Comedy</td>
183
- <td>None</td>
184
- <td>None</td>
185
- <td>NaN</td>
186
- <td>6.8</td>
187
- <td>865.0</td>
188
- </tr>
189
- <tr>
190
- <th>3</th>
191
- <td>Let's Talk About Sex</td>
192
- <td>373615.0</td>
193
- <td>373615.0</td>
194
- <td>NaN</td>
195
- <td>300000.0</td>
196
- <td>Sep 11 1998</td>
197
- <td>None</td>
198
- <td>NaN</td>
199
- <td>Fine Line</td>
200
- <td>None</td>
201
- <td>Comedy</td>
202
- <td>None</td>
203
- <td>None</td>
204
- <td>13.0</td>
205
- <td>NaN</td>
206
- <td>NaN</td>
207
- </tr>
208
- <tr>
209
- <th>4</th>
210
- <td>Slam</td>
211
- <td>1009819.0</td>
212
- <td>1087521.0</td>
213
- <td>NaN</td>
214
- <td>1000000.0</td>
215
- <td>Oct 09 1998</td>
216
- <td>R</td>
217
- <td>NaN</td>
218
- <td>Trimark</td>
219
- <td>Original Screenplay</td>
220
- <td>Drama</td>
221
- <td>Contemporary Fiction</td>
222
- <td>None</td>
223
- <td>62.0</td>
224
- <td>3.4</td>
225
- <td>165.0</td>
226
- </tr>
227
- </tbody>
228
- </table>
229
- </div>
230
- </div>
231
-
232
- </div>
233
-
234
- </div>
235
- </div>
236
-
237
- </div>
238
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
239
- <div class="text_cell_render border-box-sizing rendered_html">
240
- <h3 id="Histograms">Histograms<a class="anchor-link" href="#Histograms">&#182;</a></h3><p>We'll start our transformation tour by binning data into discrete groups and counting records to summarize those groups. The resulting plots are known as histograms.</p>
241
- <p>Let's first look at unaggregated data: a scatter plot showing movie ratings from Rotten Tomatoes versus ratings from IMDB users. We'll provide data to Altair by passing the movies data URL to the Chart method. (We could also pass the Pandas data frame directly to get the same result.) We can then encode the Rotten Tomatoes and IMDB ratings fields using the x and y channels:</p>
242
-
243
- </div>
244
- </div>
245
- </div>
246
-
247
-
248
-
249
- <div class="
250
- cell border-box-sizing code_cell rendered">
251
- <div class="input">
252
-
253
- <div class="inner_cell">
254
- <div class="input_area">
255
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span><span class="o">.</span><span class="n">mark_circle</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
256
- <span class="n">alt</span><span class="o">.</span><span class="n">X</span><span class="p">(</span><span class="s1">&#39;Rotten_Tomatoes_Rating:Q&#39;</span><span class="p">),</span>
257
- <span class="n">alt</span><span class="o">.</span><span class="n">Y</span><span class="p">(</span><span class="s1">&#39;IMDB_Rating:Q&#39;</span><span class="p">)</span>
258
- <span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span>
259
- <span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
260
- <span class="n">height</span><span class="o">=</span><span class="mi">400</span>
261
- <span class="p">)</span>
262
- </pre></div>
263
-
264
- </div>
265
- </div>
266
- </div>
267
-
268
- <div class="output_wrapper">
269
- <div class="output">
270
-
271
-
272
- <div class="output_area">
273
-
274
-
275
-
276
-
277
- <div class="output_html rendered_html output_subarea output_execute_result">
278
-
279
- <div id="altair-viz-3fb77a8addc44bdbba64608b1b36043f"></div>
280
- <script type="text/javascript">
281
- var VEGA_DEBUG = (typeof VEGA_DEBUG == "undefined") ? {} : VEGA_DEBUG;
282
- (function(spec, embedOpt){
283
- let outputDiv = document.currentScript.previousElementSibling;
284
- if (outputDiv.id !== "altair-viz-3fb77a8addc44bdbba64608b1b36043f") {
285
- outputDiv = document.getElementById("altair-viz-3fb77a8addc44bdbba64608b1b36043f");
286
- }
287
- const paths = {
288
- "vega": "https://cdn.jsdelivr.net/npm//vega@5?noext",
289
- "vega-lib": "https://cdn.jsdelivr.net/npm//vega-lib?noext",
290
- "vega-lite": "https://cdn.jsdelivr.net/npm//vega-lite@4.17.0?noext",
291
- "vega-embed": "https://cdn.jsdelivr.net/npm//vega-embed@6?noext",
292
- };
293
-
294
- function maybeLoadScript(lib, version) {
295
- var key = `${lib.replace("-", "")}_version`;
296
- return (VEGA_DEBUG[key] == version) ?
297
- Promise.resolve(paths[lib]) :
298
- new Promise(function(resolve, reject) {
299
- var s = document.createElement('script');
300
- document.getElementsByTagName("head")[0].appendChild(s);
301
- s.async = true;
302
- s.onload = () => {
303
- VEGA_DEBUG[key] = version;
304
- return resolve(paths[lib]);
305
- };
306
- s.onerror = () => reject(`Error loading script: ${paths[lib]}`);
307
- s.src = paths[lib];
308
- });
309
- }
310
-
311
- function showError(err) {
312
- outputDiv.innerHTML = `<div class="error" style="color:red;">${err}</div>`;
313
- throw err;
314
- }
315
-
316
- function displayChart(vegaEmbed) {
317
- vegaEmbed(outputDiv, spec, embedOpt)
318
- .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));
319
- }
320
-
321
- if(typeof define === "function" && define.amd) {
322
- requirejs.config({paths});
323
- require(["vega-embed"], displayChart, err => showError(`Error loading script: ${err.message}`));
324
- } else {
325
- maybeLoadScript("vega", "5")
326
- .then(() => maybeLoadScript("vega-lite", "4.17.0"))
327
- .then(() => maybeLoadScript("vega-embed", "6"))
328
- .catch(showError)
329
- .then(() => displayChart(vegaEmbed));
330
- }
331
- })({"config": {"view": {"continuousWidth": 400, "continuousHeight": 300}}, "data": {"url": "https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json"}, "mark": "circle", "encoding": {"x": {"field": "Rotten_Tomatoes_Rating", "type": "quantitative"}, "y": {"field": "IMDB_Rating", "type": "quantitative"}}, "height": 400, "width": 800, "$schema": "https://vega.github.io/schema/vega-lite/v4.17.0.json"}, {"mode": "vega-lite"});
332
- </script>
333
- </div>
334
-
335
- </div>
336
-
337
- </div>
338
- </div>
339
-
340
- </div>
341
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
342
- <div class="text_cell_render border-box-sizing rendered_html">
343
- <p>To summarize this data, we can bin a data field to group numeric values into discrete groups. Here we bin along the x-axis by adding bin=True to the x encoding channel. The result is a set of ten bins of equal step size, each corresponding to a span of ten ratings points.</p>
344
-
345
- </div>
346
- </div>
347
- </div>
348
-
349
-
350
-
351
- <div class="
352
- cell border-box-sizing code_cell rendered">
353
- <div class="input">
354
-
355
- <div class="inner_cell">
356
- <div class="input_area">
357
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span><span class="o">.</span><span class="n">mark_circle</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
358
- <span class="n">alt</span><span class="o">.</span><span class="n">X</span><span class="p">(</span><span class="s1">&#39;Rotten_Tomatoes_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span>
359
- <span class="n">alt</span><span class="o">.</span><span class="n">Y</span><span class="p">(</span><span class="s1">&#39;IMDB_Rating:Q&#39;</span><span class="p">)</span>
360
- <span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span>
361
- <span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
362
- <span class="n">height</span><span class="o">=</span><span class="mi">400</span>
363
- <span class="p">)</span>
364
- </pre></div>
365
-
366
- </div>
367
- </div>
368
- </div>
369
-
370
- <div class="output_wrapper">
371
- <div class="output">
372
-
373
-
374
- <div class="output_area">
375
-
376
-
377
-
378
-
379
- <div class="output_html rendered_html output_subarea output_execute_result">
380
-
381
- <div id="altair-viz-d343c0fee35d45f097c050e5ec7a6ced"></div>
382
- <script type="text/javascript">
383
- var VEGA_DEBUG = (typeof VEGA_DEBUG == "undefined") ? {} : VEGA_DEBUG;
384
- (function(spec, embedOpt){
385
- let outputDiv = document.currentScript.previousElementSibling;
386
- if (outputDiv.id !== "altair-viz-d343c0fee35d45f097c050e5ec7a6ced") {
387
- outputDiv = document.getElementById("altair-viz-d343c0fee35d45f097c050e5ec7a6ced");
388
- }
389
- const paths = {
390
- "vega": "https://cdn.jsdelivr.net/npm//vega@5?noext",
391
- "vega-lib": "https://cdn.jsdelivr.net/npm//vega-lib?noext",
392
- "vega-lite": "https://cdn.jsdelivr.net/npm//vega-lite@4.17.0?noext",
393
- "vega-embed": "https://cdn.jsdelivr.net/npm//vega-embed@6?noext",
394
- };
395
-
396
- function maybeLoadScript(lib, version) {
397
- var key = `${lib.replace("-", "")}_version`;
398
- return (VEGA_DEBUG[key] == version) ?
399
- Promise.resolve(paths[lib]) :
400
- new Promise(function(resolve, reject) {
401
- var s = document.createElement('script');
402
- document.getElementsByTagName("head")[0].appendChild(s);
403
- s.async = true;
404
- s.onload = () => {
405
- VEGA_DEBUG[key] = version;
406
- return resolve(paths[lib]);
407
- };
408
- s.onerror = () => reject(`Error loading script: ${paths[lib]}`);
409
- s.src = paths[lib];
410
- });
411
- }
412
-
413
- function showError(err) {
414
- outputDiv.innerHTML = `<div class="error" style="color:red;">${err}</div>`;
415
- throw err;
416
- }
417
-
418
- function displayChart(vegaEmbed) {
419
- vegaEmbed(outputDiv, spec, embedOpt)
420
- .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));
421
- }
422
-
423
- if(typeof define === "function" && define.amd) {
424
- requirejs.config({paths});
425
- require(["vega-embed"], displayChart, err => showError(`Error loading script: ${err.message}`));
426
- } else {
427
- maybeLoadScript("vega", "5")
428
- .then(() => maybeLoadScript("vega-lite", "4.17.0"))
429
- .then(() => maybeLoadScript("vega-embed", "6"))
430
- .catch(showError)
431
- .then(() => displayChart(vegaEmbed));
432
- }
433
- })({"config": {"view": {"continuousWidth": 400, "continuousHeight": 300}}, "data": {"url": "https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json"}, "mark": "circle", "encoding": {"x": {"bin": true, "field": "Rotten_Tomatoes_Rating", "type": "quantitative"}, "y": {"field": "IMDB_Rating", "type": "quantitative"}}, "height": 400, "width": 800, "$schema": "https://vega.github.io/schema/vega-lite/v4.17.0.json"}, {"mode": "vega-lite"});
434
- </script>
435
- </div>
436
-
437
- </div>
438
-
439
- </div>
440
- </div>
441
-
442
- </div>
443
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
444
- <div class="text_cell_render border-box-sizing rendered_html">
445
- <p>Setting bin=True uses default binning settings, but we can exercise more control if desired. Let's instead set the maximum bin count (maxbins) to 20, which has the effect of doubling the number of bins. Now each bin corresponds to a span of five ratings points.</p>
446
-
447
- </div>
448
- </div>
449
- </div>
450
-
451
-
452
-
453
- <div class="
454
- cell border-box-sizing code_cell rendered">
455
- <div class="input">
456
-
457
- <div class="inner_cell">
458
- <div class="input_area">
459
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span><span class="o">.</span><span class="n">mark_circle</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
460
- <span class="n">alt</span><span class="o">.</span><span class="n">X</span><span class="p">(</span><span class="s1">&#39;Rotten_Tomatoes_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
461
- <span class="n">alt</span><span class="o">.</span><span class="n">Y</span><span class="p">(</span><span class="s1">&#39;IMDB_Rating:Q&#39;</span><span class="p">)</span>
462
- <span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span>
463
- <span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
464
- <span class="n">height</span><span class="o">=</span><span class="mi">400</span>
465
- <span class="p">)</span>
466
- </pre></div>
467
-
468
- </div>
469
- </div>
470
- </div>
471
-
472
- <div class="output_wrapper">
473
- <div class="output">
474
-
475
-
476
- <div class="output_area">
477
-
478
-
479
-
480
-
481
- <div class="output_html rendered_html output_subarea output_execute_result">
482
-
483
- <div id="altair-viz-b1e8c23da933405c8dbfa3441caaab02"></div>
484
- <script type="text/javascript">
485
- var VEGA_DEBUG = (typeof VEGA_DEBUG == "undefined") ? {} : VEGA_DEBUG;
486
- (function(spec, embedOpt){
487
- let outputDiv = document.currentScript.previousElementSibling;
488
- if (outputDiv.id !== "altair-viz-b1e8c23da933405c8dbfa3441caaab02") {
489
- outputDiv = document.getElementById("altair-viz-b1e8c23da933405c8dbfa3441caaab02");
490
- }
491
- const paths = {
492
- "vega": "https://cdn.jsdelivr.net/npm//vega@5?noext",
493
- "vega-lib": "https://cdn.jsdelivr.net/npm//vega-lib?noext",
494
- "vega-lite": "https://cdn.jsdelivr.net/npm//vega-lite@4.17.0?noext",
495
- "vega-embed": "https://cdn.jsdelivr.net/npm//vega-embed@6?noext",
496
- };
497
-
498
- function maybeLoadScript(lib, version) {
499
- var key = `${lib.replace("-", "")}_version`;
500
- return (VEGA_DEBUG[key] == version) ?
501
- Promise.resolve(paths[lib]) :
502
- new Promise(function(resolve, reject) {
503
- var s = document.createElement('script');
504
- document.getElementsByTagName("head")[0].appendChild(s);
505
- s.async = true;
506
- s.onload = () => {
507
- VEGA_DEBUG[key] = version;
508
- return resolve(paths[lib]);
509
- };
510
- s.onerror = () => reject(`Error loading script: ${paths[lib]}`);
511
- s.src = paths[lib];
512
- });
513
- }
514
-
515
- function showError(err) {
516
- outputDiv.innerHTML = `<div class="error" style="color:red;">${err}</div>`;
517
- throw err;
518
- }
519
-
520
- function displayChart(vegaEmbed) {
521
- vegaEmbed(outputDiv, spec, embedOpt)
522
- .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));
523
- }
524
-
525
- if(typeof define === "function" && define.amd) {
526
- requirejs.config({paths});
527
- require(["vega-embed"], displayChart, err => showError(`Error loading script: ${err.message}`));
528
- } else {
529
- maybeLoadScript("vega", "5")
530
- .then(() => maybeLoadScript("vega-lite", "4.17.0"))
531
- .then(() => maybeLoadScript("vega-embed", "6"))
532
- .catch(showError)
533
- .then(() => displayChart(vegaEmbed));
534
- }
535
- })({"config": {"view": {"continuousWidth": 400, "continuousHeight": 300}}, "data": {"url": "https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json"}, "mark": "circle", "encoding": {"x": {"bin": {"maxbins": 20}, "field": "Rotten_Tomatoes_Rating", "type": "quantitative"}, "y": {"field": "IMDB_Rating", "type": "quantitative"}}, "height": 400, "width": 800, "$schema": "https://vega.github.io/schema/vega-lite/v4.17.0.json"}, {"mode": "vega-lite"});
536
- </script>
537
- </div>
538
-
539
- </div>
540
-
541
- </div>
542
- </div>
543
-
544
- </div>
545
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
546
- <div class="text_cell_render border-box-sizing rendered_html">
547
- <p>With the data binned, let's now summarize the distribution of Rotten Tomatoes ratings. We will drop the IMDB ratings for now and instead use the y encoding channel to show an aggregate count of records, so that the vertical position of each point indicates the number of movies per Rotten Tomatoes rating bin.</p>
548
- <p>As the count aggregate counts the number of total records in each bin regardless of the field values, we do not need to include a field name in the y encoding.</p>
549
-
550
- </div>
551
- </div>
552
- </div>
553
-
554
-
555
-
556
- <div class="
557
- cell border-box-sizing code_cell rendered">
558
- <div class="input">
559
-
560
- <div class="inner_cell">
561
- <div class="input_area">
562
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span><span class="o">.</span><span class="n">mark_circle</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
563
- <span class="n">alt</span><span class="o">.</span><span class="n">X</span><span class="p">(</span><span class="s1">&#39;Rotten_Tomatoes_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
564
- <span class="n">alt</span><span class="o">.</span><span class="n">Y</span><span class="p">(</span><span class="s1">&#39;count()&#39;</span><span class="p">)</span>
565
- <span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span>
566
- <span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
567
- <span class="n">height</span><span class="o">=</span><span class="mi">400</span>
568
- <span class="p">)</span>
569
- </pre></div>
570
-
571
- </div>
572
- </div>
573
- </div>
574
-
575
- <div class="output_wrapper">
576
- <div class="output">
577
-
578
-
579
- <div class="output_area">
580
-
581
-
582
-
583
-
584
- <div class="output_html rendered_html output_subarea output_execute_result">
585
-
586
- <div id="altair-viz-e2a841b391c546048445e68b0c28f564"></div>
587
- <script type="text/javascript">
588
- var VEGA_DEBUG = (typeof VEGA_DEBUG == "undefined") ? {} : VEGA_DEBUG;
589
- (function(spec, embedOpt){
590
- let outputDiv = document.currentScript.previousElementSibling;
591
- if (outputDiv.id !== "altair-viz-e2a841b391c546048445e68b0c28f564") {
592
- outputDiv = document.getElementById("altair-viz-e2a841b391c546048445e68b0c28f564");
593
- }
594
- const paths = {
595
- "vega": "https://cdn.jsdelivr.net/npm//vega@5?noext",
596
- "vega-lib": "https://cdn.jsdelivr.net/npm//vega-lib?noext",
597
- "vega-lite": "https://cdn.jsdelivr.net/npm//vega-lite@4.17.0?noext",
598
- "vega-embed": "https://cdn.jsdelivr.net/npm//vega-embed@6?noext",
599
- };
600
-
601
- function maybeLoadScript(lib, version) {
602
- var key = `${lib.replace("-", "")}_version`;
603
- return (VEGA_DEBUG[key] == version) ?
604
- Promise.resolve(paths[lib]) :
605
- new Promise(function(resolve, reject) {
606
- var s = document.createElement('script');
607
- document.getElementsByTagName("head")[0].appendChild(s);
608
- s.async = true;
609
- s.onload = () => {
610
- VEGA_DEBUG[key] = version;
611
- return resolve(paths[lib]);
612
- };
613
- s.onerror = () => reject(`Error loading script: ${paths[lib]}`);
614
- s.src = paths[lib];
615
- });
616
- }
617
-
618
- function showError(err) {
619
- outputDiv.innerHTML = `<div class="error" style="color:red;">${err}</div>`;
620
- throw err;
621
- }
622
-
623
- function displayChart(vegaEmbed) {
624
- vegaEmbed(outputDiv, spec, embedOpt)
625
- .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));
626
- }
627
-
628
- if(typeof define === "function" && define.amd) {
629
- requirejs.config({paths});
630
- require(["vega-embed"], displayChart, err => showError(`Error loading script: ${err.message}`));
631
- } else {
632
- maybeLoadScript("vega", "5")
633
- .then(() => maybeLoadScript("vega-lite", "4.17.0"))
634
- .then(() => maybeLoadScript("vega-embed", "6"))
635
- .catch(showError)
636
- .then(() => displayChart(vegaEmbed));
637
- }
638
- })({"config": {"view": {"continuousWidth": 400, "continuousHeight": 300}}, "data": {"url": "https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json"}, "mark": "circle", "encoding": {"x": {"bin": {"maxbins": 20}, "field": "Rotten_Tomatoes_Rating", "type": "quantitative"}, "y": {"aggregate": "count", "type": "quantitative"}}, "height": 400, "width": 800, "$schema": "https://vega.github.io/schema/vega-lite/v4.17.0.json"}, {"mode": "vega-lite"});
639
- </script>
640
- </div>
641
-
642
- </div>
643
-
644
- </div>
645
- </div>
646
-
647
- </div>
648
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
649
- <div class="text_cell_render border-box-sizing rendered_html">
650
- <p>To arrive at a standard histogram, let's change the mark type from circle to bar:</p>
651
-
652
- </div>
653
- </div>
654
- </div>
655
-
656
-
657
-
658
- <div class="
659
- cell border-box-sizing code_cell rendered">
660
- <div class="input">
661
-
662
- <div class="inner_cell">
663
- <div class="input_area">
664
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span><span class="o">.</span><span class="n">mark_bar</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
665
- <span class="n">alt</span><span class="o">.</span><span class="n">X</span><span class="p">(</span><span class="s1">&#39;Rotten_Tomatoes_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
666
- <span class="n">alt</span><span class="o">.</span><span class="n">Y</span><span class="p">(</span><span class="s1">&#39;count()&#39;</span><span class="p">)</span>
667
- <span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span>
668
- <span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
669
- <span class="n">height</span><span class="o">=</span><span class="mi">400</span>
670
- <span class="p">)</span>
671
- </pre></div>
672
-
673
- </div>
674
- </div>
675
- </div>
676
-
677
- <div class="output_wrapper">
678
- <div class="output">
679
-
680
-
681
- <div class="output_area">
682
-
683
-
684
-
685
-
686
- <div class="output_html rendered_html output_subarea output_execute_result">
687
-
688
- <div id="altair-viz-890c699c81a343d785fabe95ccd77ce0"></div>
689
- <script type="text/javascript">
690
- var VEGA_DEBUG = (typeof VEGA_DEBUG == "undefined") ? {} : VEGA_DEBUG;
691
- (function(spec, embedOpt){
692
- let outputDiv = document.currentScript.previousElementSibling;
693
- if (outputDiv.id !== "altair-viz-890c699c81a343d785fabe95ccd77ce0") {
694
- outputDiv = document.getElementById("altair-viz-890c699c81a343d785fabe95ccd77ce0");
695
- }
696
- const paths = {
697
- "vega": "https://cdn.jsdelivr.net/npm//vega@5?noext",
698
- "vega-lib": "https://cdn.jsdelivr.net/npm//vega-lib?noext",
699
- "vega-lite": "https://cdn.jsdelivr.net/npm//vega-lite@4.17.0?noext",
700
- "vega-embed": "https://cdn.jsdelivr.net/npm//vega-embed@6?noext",
701
- };
702
-
703
- function maybeLoadScript(lib, version) {
704
- var key = `${lib.replace("-", "")}_version`;
705
- return (VEGA_DEBUG[key] == version) ?
706
- Promise.resolve(paths[lib]) :
707
- new Promise(function(resolve, reject) {
708
- var s = document.createElement('script');
709
- document.getElementsByTagName("head")[0].appendChild(s);
710
- s.async = true;
711
- s.onload = () => {
712
- VEGA_DEBUG[key] = version;
713
- return resolve(paths[lib]);
714
- };
715
- s.onerror = () => reject(`Error loading script: ${paths[lib]}`);
716
- s.src = paths[lib];
717
- });
718
- }
719
-
720
- function showError(err) {
721
- outputDiv.innerHTML = `<div class="error" style="color:red;">${err}</div>`;
722
- throw err;
723
- }
724
-
725
- function displayChart(vegaEmbed) {
726
- vegaEmbed(outputDiv, spec, embedOpt)
727
- .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));
728
- }
729
-
730
- if(typeof define === "function" && define.amd) {
731
- requirejs.config({paths});
732
- require(["vega-embed"], displayChart, err => showError(`Error loading script: ${err.message}`));
733
- } else {
734
- maybeLoadScript("vega", "5")
735
- .then(() => maybeLoadScript("vega-lite", "4.17.0"))
736
- .then(() => maybeLoadScript("vega-embed", "6"))
737
- .catch(showError)
738
- .then(() => displayChart(vegaEmbed));
739
- }
740
- })({"config": {"view": {"continuousWidth": 400, "continuousHeight": 300}}, "data": {"url": "https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json"}, "mark": "bar", "encoding": {"x": {"bin": {"maxbins": 20}, "field": "Rotten_Tomatoes_Rating", "type": "quantitative"}, "y": {"aggregate": "count", "type": "quantitative"}}, "height": 400, "width": 800, "$schema": "https://vega.github.io/schema/vega-lite/v4.17.0.json"}, {"mode": "vega-lite"});
741
- </script>
742
- </div>
743
-
744
- </div>
745
-
746
- </div>
747
- </div>
748
-
749
- </div>
750
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
751
- <div class="text_cell_render border-box-sizing rendered_html">
752
- <p>We can now examine the distribution of ratings more clearly: we can see fewer movies on the negative end, and a bit more movies on the high end, but a generally uniform distribution overall. Rotten Tomatoes ratings are determined by taking "thumbs up" and "thumbs down" judgments from film critics and calculating the percentage of positive reviews. It appears this approach does a good job of utilizing the full range of rating values.</p>
753
- <p>Similarly, we can create a histogram for IMDB ratings by changing the field in the x encoding channel:</p>
754
-
755
- </div>
756
- </div>
757
- </div>
758
-
759
-
760
-
761
- <div class="
762
- cell border-box-sizing code_cell rendered">
763
- <div class="input">
764
-
765
- <div class="inner_cell">
766
- <div class="input_area">
767
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span><span class="o">.</span><span class="n">mark_bar</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
768
- <span class="n">alt</span><span class="o">.</span><span class="n">X</span><span class="p">(</span><span class="s1">&#39;IMDB_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
769
- <span class="n">alt</span><span class="o">.</span><span class="n">Y</span><span class="p">(</span><span class="s1">&#39;count()&#39;</span><span class="p">)</span>
770
- <span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span>
771
- <span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
772
- <span class="n">height</span><span class="o">=</span><span class="mi">400</span>
773
- <span class="p">)</span>
774
- </pre></div>
775
-
776
- </div>
777
- </div>
778
- </div>
779
-
780
- <div class="output_wrapper">
781
- <div class="output">
782
-
783
-
784
- <div class="output_area">
785
-
786
-
787
-
788
-
789
- <div class="output_html rendered_html output_subarea output_execute_result">
790
-
791
- <div id="altair-viz-cee3059547d64f86bb7caf3d38da555c"></div>
792
- <script type="text/javascript">
793
- var VEGA_DEBUG = (typeof VEGA_DEBUG == "undefined") ? {} : VEGA_DEBUG;
794
- (function(spec, embedOpt){
795
- let outputDiv = document.currentScript.previousElementSibling;
796
- if (outputDiv.id !== "altair-viz-cee3059547d64f86bb7caf3d38da555c") {
797
- outputDiv = document.getElementById("altair-viz-cee3059547d64f86bb7caf3d38da555c");
798
- }
799
- const paths = {
800
- "vega": "https://cdn.jsdelivr.net/npm//vega@5?noext",
801
- "vega-lib": "https://cdn.jsdelivr.net/npm//vega-lib?noext",
802
- "vega-lite": "https://cdn.jsdelivr.net/npm//vega-lite@4.17.0?noext",
803
- "vega-embed": "https://cdn.jsdelivr.net/npm//vega-embed@6?noext",
804
- };
805
-
806
- function maybeLoadScript(lib, version) {
807
- var key = `${lib.replace("-", "")}_version`;
808
- return (VEGA_DEBUG[key] == version) ?
809
- Promise.resolve(paths[lib]) :
810
- new Promise(function(resolve, reject) {
811
- var s = document.createElement('script');
812
- document.getElementsByTagName("head")[0].appendChild(s);
813
- s.async = true;
814
- s.onload = () => {
815
- VEGA_DEBUG[key] = version;
816
- return resolve(paths[lib]);
817
- };
818
- s.onerror = () => reject(`Error loading script: ${paths[lib]}`);
819
- s.src = paths[lib];
820
- });
821
- }
822
-
823
- function showError(err) {
824
- outputDiv.innerHTML = `<div class="error" style="color:red;">${err}</div>`;
825
- throw err;
826
- }
827
-
828
- function displayChart(vegaEmbed) {
829
- vegaEmbed(outputDiv, spec, embedOpt)
830
- .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));
831
- }
832
-
833
- if(typeof define === "function" && define.amd) {
834
- requirejs.config({paths});
835
- require(["vega-embed"], displayChart, err => showError(`Error loading script: ${err.message}`));
836
- } else {
837
- maybeLoadScript("vega", "5")
838
- .then(() => maybeLoadScript("vega-lite", "4.17.0"))
839
- .then(() => maybeLoadScript("vega-embed", "6"))
840
- .catch(showError)
841
- .then(() => displayChart(vegaEmbed));
842
- }
843
- })({"config": {"view": {"continuousWidth": 400, "continuousHeight": 300}}, "data": {"url": "https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json"}, "mark": "bar", "encoding": {"x": {"bin": {"maxbins": 20}, "field": "IMDB_Rating", "type": "quantitative"}, "y": {"aggregate": "count", "type": "quantitative"}}, "height": 400, "width": 800, "$schema": "https://vega.github.io/schema/vega-lite/v4.17.0.json"}, {"mode": "vega-lite"});
844
- </script>
845
- </div>
846
-
847
- </div>
848
-
849
- </div>
850
- </div>
851
-
852
- </div>
853
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
854
- <div class="text_cell_render border-box-sizing rendered_html">
855
- <p>In contrast to the more uniform distribution we saw before, IMDB ratings exhibit a bell-shaped (though negatively skewed) distribution. IMDB ratings are formed by averaging scores (ranging from 1 to 10) provided by the site's users. We can see that this form of measurement leads to a different shape than the Rotten Tomatoes ratings. We can also see that the mode of the distribution is between 6.5 and 7: people generally enjoy watching movies, potentially explaining the positive bias!</p>
856
- <p>Now let's turn back to our scatter plot of Rotten Tomatoes and IMDB ratings. Here's what happens if we bin both axes of our original plot.</p>
857
-
858
- </div>
859
- </div>
860
- </div>
861
-
862
-
863
-
864
- <div class="
865
- cell border-box-sizing code_cell rendered">
866
- <div class="input">
867
-
868
- <div class="inner_cell">
869
- <div class="input_area">
870
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span><span class="o">.</span><span class="n">mark_circle</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
871
- <span class="n">alt</span><span class="o">.</span><span class="n">X</span><span class="p">(</span><span class="s1">&#39;Rotten_Tomatoes_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
872
- <span class="n">alt</span><span class="o">.</span><span class="n">Y</span><span class="p">(</span><span class="s1">&#39;IMDB_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
873
- <span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span>
874
- <span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
875
- <span class="n">height</span><span class="o">=</span><span class="mi">400</span>
876
- <span class="p">)</span>
877
- </pre></div>
878
-
879
- </div>
880
- </div>
881
- </div>
882
-
883
- <div class="output_wrapper">
884
- <div class="output">
885
-
886
-
887
- <div class="output_area">
888
-
889
-
890
-
891
-
892
- <div class="output_html rendered_html output_subarea output_execute_result">
893
-
894
- <div id="altair-viz-d192f47b42ac448db255588b3bf801eb"></div>
895
- <script type="text/javascript">
896
- var VEGA_DEBUG = (typeof VEGA_DEBUG == "undefined") ? {} : VEGA_DEBUG;
897
- (function(spec, embedOpt){
898
- let outputDiv = document.currentScript.previousElementSibling;
899
- if (outputDiv.id !== "altair-viz-d192f47b42ac448db255588b3bf801eb") {
900
- outputDiv = document.getElementById("altair-viz-d192f47b42ac448db255588b3bf801eb");
901
- }
902
- const paths = {
903
- "vega": "https://cdn.jsdelivr.net/npm//vega@5?noext",
904
- "vega-lib": "https://cdn.jsdelivr.net/npm//vega-lib?noext",
905
- "vega-lite": "https://cdn.jsdelivr.net/npm//vega-lite@4.17.0?noext",
906
- "vega-embed": "https://cdn.jsdelivr.net/npm//vega-embed@6?noext",
907
- };
908
-
909
- function maybeLoadScript(lib, version) {
910
- var key = `${lib.replace("-", "")}_version`;
911
- return (VEGA_DEBUG[key] == version) ?
912
- Promise.resolve(paths[lib]) :
913
- new Promise(function(resolve, reject) {
914
- var s = document.createElement('script');
915
- document.getElementsByTagName("head")[0].appendChild(s);
916
- s.async = true;
917
- s.onload = () => {
918
- VEGA_DEBUG[key] = version;
919
- return resolve(paths[lib]);
920
- };
921
- s.onerror = () => reject(`Error loading script: ${paths[lib]}`);
922
- s.src = paths[lib];
923
- });
924
- }
925
-
926
- function showError(err) {
927
- outputDiv.innerHTML = `<div class="error" style="color:red;">${err}</div>`;
928
- throw err;
929
- }
930
-
931
- function displayChart(vegaEmbed) {
932
- vegaEmbed(outputDiv, spec, embedOpt)
933
- .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));
934
- }
935
-
936
- if(typeof define === "function" && define.amd) {
937
- requirejs.config({paths});
938
- require(["vega-embed"], displayChart, err => showError(`Error loading script: ${err.message}`));
939
- } else {
940
- maybeLoadScript("vega", "5")
941
- .then(() => maybeLoadScript("vega-lite", "4.17.0"))
942
- .then(() => maybeLoadScript("vega-embed", "6"))
943
- .catch(showError)
944
- .then(() => displayChart(vegaEmbed));
945
- }
946
- })({"config": {"view": {"continuousWidth": 400, "continuousHeight": 300}}, "data": {"url": "https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json"}, "mark": "circle", "encoding": {"x": {"bin": {"maxbins": 20}, "field": "Rotten_Tomatoes_Rating", "type": "quantitative"}, "y": {"bin": {"maxbins": 20}, "field": "IMDB_Rating", "type": "quantitative"}}, "height": 400, "width": 800, "$schema": "https://vega.github.io/schema/vega-lite/v4.17.0.json"}, {"mode": "vega-lite"});
947
- </script>
948
- </div>
949
-
950
- </div>
951
-
952
- </div>
953
- </div>
954
-
955
- </div>
956
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
957
- <div class="text_cell_render border-box-sizing rendered_html">
958
- <p>Detail is lost due to overplotting, with many points drawn directly on top of each other.</p>
959
- <p>To form a two-dimensional histogram we can add a count aggregate as before. As both the x and y encoding channels are already taken, we must use a different encoding channel to convey the counts. Here is the result of using circular area by adding a size encoding channel.</p>
960
-
961
- </div>
962
- </div>
963
- </div>
964
-
965
-
966
-
967
- <div class="
968
- cell border-box-sizing code_cell rendered">
969
- <div class="input">
970
-
971
- <div class="inner_cell">
972
- <div class="input_area">
973
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span><span class="o">.</span><span class="n">mark_circle</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
974
- <span class="n">alt</span><span class="o">.</span><span class="n">X</span><span class="p">(</span><span class="s1">&#39;Rotten_Tomatoes_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
975
- <span class="n">alt</span><span class="o">.</span><span class="n">Y</span><span class="p">(</span><span class="s1">&#39;IMDB_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
976
- <span class="n">alt</span><span class="o">.</span><span class="n">Size</span><span class="p">(</span><span class="s1">&#39;count()&#39;</span><span class="p">)</span>
977
- <span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span>
978
- <span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
979
- <span class="n">height</span><span class="o">=</span><span class="mi">400</span>
980
- <span class="p">)</span>
981
- </pre></div>
982
-
983
- </div>
984
- </div>
985
- </div>
986
-
987
- <div class="output_wrapper">
988
- <div class="output">
989
-
990
-
991
- <div class="output_area">
992
-
993
-
994
-
995
-
996
- <div class="output_html rendered_html output_subarea output_execute_result">
997
-
998
- <div id="altair-viz-49f403013cbf44118f18d9bcf1f8fe5b"></div>
999
- <script type="text/javascript">
1000
- var VEGA_DEBUG = (typeof VEGA_DEBUG == "undefined") ? {} : VEGA_DEBUG;
1001
- (function(spec, embedOpt){
1002
- let outputDiv = document.currentScript.previousElementSibling;
1003
- if (outputDiv.id !== "altair-viz-49f403013cbf44118f18d9bcf1f8fe5b") {
1004
- outputDiv = document.getElementById("altair-viz-49f403013cbf44118f18d9bcf1f8fe5b");
1005
- }
1006
- const paths = {
1007
- "vega": "https://cdn.jsdelivr.net/npm//vega@5?noext",
1008
- "vega-lib": "https://cdn.jsdelivr.net/npm//vega-lib?noext",
1009
- "vega-lite": "https://cdn.jsdelivr.net/npm//vega-lite@4.17.0?noext",
1010
- "vega-embed": "https://cdn.jsdelivr.net/npm//vega-embed@6?noext",
1011
- };
1012
-
1013
- function maybeLoadScript(lib, version) {
1014
- var key = `${lib.replace("-", "")}_version`;
1015
- return (VEGA_DEBUG[key] == version) ?
1016
- Promise.resolve(paths[lib]) :
1017
- new Promise(function(resolve, reject) {
1018
- var s = document.createElement('script');
1019
- document.getElementsByTagName("head")[0].appendChild(s);
1020
- s.async = true;
1021
- s.onload = () => {
1022
- VEGA_DEBUG[key] = version;
1023
- return resolve(paths[lib]);
1024
- };
1025
- s.onerror = () => reject(`Error loading script: ${paths[lib]}`);
1026
- s.src = paths[lib];
1027
- });
1028
- }
1029
-
1030
- function showError(err) {
1031
- outputDiv.innerHTML = `<div class="error" style="color:red;">${err}</div>`;
1032
- throw err;
1033
- }
1034
-
1035
- function displayChart(vegaEmbed) {
1036
- vegaEmbed(outputDiv, spec, embedOpt)
1037
- .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));
1038
- }
1039
-
1040
- if(typeof define === "function" && define.amd) {
1041
- requirejs.config({paths});
1042
- require(["vega-embed"], displayChart, err => showError(`Error loading script: ${err.message}`));
1043
- } else {
1044
- maybeLoadScript("vega", "5")
1045
- .then(() => maybeLoadScript("vega-lite", "4.17.0"))
1046
- .then(() => maybeLoadScript("vega-embed", "6"))
1047
- .catch(showError)
1048
- .then(() => displayChart(vegaEmbed));
1049
- }
1050
- })({"config": {"view": {"continuousWidth": 400, "continuousHeight": 300}}, "data": {"url": "https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json"}, "mark": "circle", "encoding": {"size": {"aggregate": "count", "type": "quantitative"}, "x": {"bin": {"maxbins": 20}, "field": "Rotten_Tomatoes_Rating", "type": "quantitative"}, "y": {"bin": {"maxbins": 20}, "field": "IMDB_Rating", "type": "quantitative"}}, "height": 400, "width": 800, "$schema": "https://vega.github.io/schema/vega-lite/v4.17.0.json"}, {"mode": "vega-lite"});
1051
- </script>
1052
- </div>
1053
-
1054
- </div>
1055
-
1056
- </div>
1057
- </div>
1058
-
1059
- </div>
1060
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
1061
- <div class="text_cell_render border-box-sizing rendered_html">
1062
- <p>Alternatively, we can encode counts using the color channel and change the mark type to bar. The result is a two-dimensional histogram in the form of a heatmap.</p>
1063
-
1064
- </div>
1065
- </div>
1066
- </div>
1067
-
1068
-
1069
-
1070
- <div class="
1071
- cell border-box-sizing code_cell rendered">
1072
- <div class="input">
1073
-
1074
- <div class="inner_cell">
1075
- <div class="input_area">
1076
- <div class=" highlight hl-ipython3"><pre><span></span><span class="n">alt</span><span class="o">.</span><span class="n">Chart</span><span class="p">(</span><span class="n">movies_url</span><span class="p">)</span><span class="o">.</span><span class="n">mark_bar</span><span class="p">()</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span>
1077
- <span class="n">alt</span><span class="o">.</span><span class="n">X</span><span class="p">(</span><span class="s1">&#39;Rotten_Tomatoes_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
1078
- <span class="n">alt</span><span class="o">.</span><span class="n">Y</span><span class="p">(</span><span class="s1">&#39;IMDB_Rating:Q&#39;</span><span class="p">,</span> <span class="nb">bin</span><span class="o">=</span><span class="n">alt</span><span class="o">.</span><span class="n">BinParams</span><span class="p">(</span><span class="n">maxbins</span><span class="o">=</span><span class="mi">20</span><span class="p">)),</span>
1079
- <span class="n">alt</span><span class="o">.</span><span class="n">Color</span><span class="p">(</span><span class="s1">&#39;count()&#39;</span><span class="p">)</span>
1080
- <span class="p">)</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span>
1081
- <span class="n">width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
1082
- <span class="n">height</span><span class="o">=</span><span class="mi">400</span>
1083
- <span class="p">)</span>
1084
- </pre></div>
1085
-
1086
- </div>
1087
- </div>
1088
- </div>
1089
-
1090
- <div class="output_wrapper">
1091
- <div class="output">
1092
-
1093
-
1094
- <div class="output_area">
1095
-
1096
-
1097
-
1098
-
1099
- <div class="output_html rendered_html output_subarea output_execute_result">
1100
-
1101
- <div id="altair-viz-ea5c6bddfd524df484e60577255c49cc"></div>
1102
- <script type="text/javascript">
1103
- var VEGA_DEBUG = (typeof VEGA_DEBUG == "undefined") ? {} : VEGA_DEBUG;
1104
- (function(spec, embedOpt){
1105
- let outputDiv = document.currentScript.previousElementSibling;
1106
- if (outputDiv.id !== "altair-viz-ea5c6bddfd524df484e60577255c49cc") {
1107
- outputDiv = document.getElementById("altair-viz-ea5c6bddfd524df484e60577255c49cc");
1108
- }
1109
- const paths = {
1110
- "vega": "https://cdn.jsdelivr.net/npm//vega@5?noext",
1111
- "vega-lib": "https://cdn.jsdelivr.net/npm//vega-lib?noext",
1112
- "vega-lite": "https://cdn.jsdelivr.net/npm//vega-lite@4.17.0?noext",
1113
- "vega-embed": "https://cdn.jsdelivr.net/npm//vega-embed@6?noext",
1114
- };
1115
-
1116
- function maybeLoadScript(lib, version) {
1117
- var key = `${lib.replace("-", "")}_version`;
1118
- return (VEGA_DEBUG[key] == version) ?
1119
- Promise.resolve(paths[lib]) :
1120
- new Promise(function(resolve, reject) {
1121
- var s = document.createElement('script');
1122
- document.getElementsByTagName("head")[0].appendChild(s);
1123
- s.async = true;
1124
- s.onload = () => {
1125
- VEGA_DEBUG[key] = version;
1126
- return resolve(paths[lib]);
1127
- };
1128
- s.onerror = () => reject(`Error loading script: ${paths[lib]}`);
1129
- s.src = paths[lib];
1130
- });
1131
- }
1132
-
1133
- function showError(err) {
1134
- outputDiv.innerHTML = `<div class="error" style="color:red;">${err}</div>`;
1135
- throw err;
1136
- }
1137
-
1138
- function displayChart(vegaEmbed) {
1139
- vegaEmbed(outputDiv, spec, embedOpt)
1140
- .catch(err => showError(`Javascript Error: ${err.message}<br>This usually means there's a typo in your chart specification. See the javascript console for the full traceback.`));
1141
- }
1142
-
1143
- if(typeof define === "function" && define.amd) {
1144
- requirejs.config({paths});
1145
- require(["vega-embed"], displayChart, err => showError(`Error loading script: ${err.message}`));
1146
- } else {
1147
- maybeLoadScript("vega", "5")
1148
- .then(() => maybeLoadScript("vega-lite", "4.17.0"))
1149
- .then(() => maybeLoadScript("vega-embed", "6"))
1150
- .catch(showError)
1151
- .then(() => displayChart(vegaEmbed));
1152
- }
1153
- })({"config": {"view": {"continuousWidth": 400, "continuousHeight": 300}}, "data": {"url": "https://cdn.jsdelivr.net/npm/vega-datasets@1/data/movies.json"}, "mark": "bar", "encoding": {"color": {"aggregate": "count", "type": "quantitative"}, "x": {"bin": {"maxbins": 20}, "field": "Rotten_Tomatoes_Rating", "type": "quantitative"}, "y": {"bin": {"maxbins": 20}, "field": "IMDB_Rating", "type": "quantitative"}}, "height": 400, "width": 800, "$schema": "https://vega.github.io/schema/vega-lite/v4.17.0.json"}, {"mode": "vega-lite"});
1154
- </script>
1155
- </div>
1156
-
1157
- </div>
1158
-
1159
- </div>
1160
- </div>
1161
-
1162
- </div>
1163
- <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
1164
- <div class="text_cell_render border-box-sizing rendered_html">
1165
- <p>Compare the size and color-based 2D histograms above. Which encoding do you think should be preferred? Why? In which plot can you more precisely compare the magnitude of individual values? In which plot can you more accurately see the overall density of ratings?</p>
1166
-
1167
- </div>
1168
- </div>
1169
- </div>
1170
-