j1-template 2022.5.0.rc3 → 2022.5.1.rc0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/_includes/themes/j1/modules/attics/generator.html +5 -13
- data/assets/data/banner.html +2 -2
- data/assets/themes/j1/adapter/js/attic.js +106 -62
- data/assets/themes/j1/adapter/js/masterslider.js +22 -5
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +26 -1
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
- data/assets/themes/j1/modules/backstretch/js/backstretch.js +1 -1
- data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.js +1696 -0
- data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.min.js +20 -0
- data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.js +1627 -0
- data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.min.js +20 -0
- data/assets/themes/j1/modules/cryptoJS/js/rc4.js +2 -2
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/README.md +440 -175
- data/lib/starter_web/_config.yml +3 -3
- data/lib/starter_web/_data/blocks/banner.yml +1 -1
- data/lib/starter_web/_data/modules/attics.yml +12 -0
- data/lib/starter_web/_data/modules/defaults/attics.yml +16 -1
- data/lib/starter_web/_data/modules/defaults/masterslider.yml +1 -1
- data/lib/starter_web/_data/modules/masterslider.yml +0 -4
- data/lib/starter_web/_data/modules/navigator_menu.yml +31 -25
- data/lib/starter_web/_includes/attributes.asciidoc +2 -0
- data/lib/starter_web/_plugins/lunr_index.rb +1 -1
- data/lib/starter_web/assets/images/modules/attics/1920x1280/ben-kolde.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/braden-collum.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/ev.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/firmbee-com.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/1920x1280/max-harlynking.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/guillaume-bolduc-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/images/modules/attics/spacex-1920x1280.jpg +0 -0
- data/lib/starter_web/assets/videos/headers/{still → present_videos/still}/underground-broadway.jpg +0 -0
- data/lib/starter_web/assets/videos/headers/present_videos/underground-broadway.mp4 +0 -0
- data/lib/starter_web/collections/asciidoc_skeletons/simple-post/_posts/yyyy-mm-dd-your-post-name.asciidoc +3 -1
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +3 -0
- data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +2 -3
- data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +3 -0
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +3 -0
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +3 -0
- data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +3 -0
- data/lib/starter_web/index.html +41 -7
- data/lib/starter_web/package.json +2 -2
- data/lib/starter_web/pages/public/about/features.adoc +119 -0
- data/lib/starter_web/pages/public/about/reporting_issues.adoc +78 -0
- data/lib/starter_web/pages/public/about/{about_site.adoc → site.adoc} +20 -15
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +3 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +3 -0
- data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +3 -0
- data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -0
- data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +4 -1
- data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +4 -1
- data/lib/starter_web/pages/public/blog/navigator/archive.html +4 -1
- data/lib/starter_web/pages/public/blog/navigator/index.html +4 -1
- data/lib/starter_web/pages/public/features/general.adoc +5 -1
- data/lib/starter_web/pages/public/features/template.adoc +4 -0
- data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-circular-times-table.adoc +3 -0
- data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-common-used-widgets.adoc +3 -0
- data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-odes-in-python.adoc +3 -0
- data/lib/starter_web/pages/public/jupyter/examples/localized/j1_climate-change-forecast.adoc +3 -0
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_interactive_widgets.html +512 -512
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets.html +629 -629
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +95 -95
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +93 -93
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +96 -96
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +70 -70
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +156 -156
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +95 -95
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +93 -93
- data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_odes_in_python.html +955 -955
- data/lib/starter_web/pages/public/learn/quickstart.adoc +4 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +4 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +16 -5
- data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +3 -0
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +3 -0
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +3 -0
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +3 -0
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +3 -0
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +3 -0
- data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +6 -2
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +3 -0
- data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +3 -0
- data/lib/starter_web/pages/public/legal/de/100_impress.adoc +3 -0
- data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +3 -0
- data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +3 -0
- data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +9 -1
- data/lib/starter_web/pages/public/legal/en/200_impress.adoc +10 -2
- data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +3 -0
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +3 -0
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +3 -0
- data/lib/starter_web/pages/public/plans/plans.adoc +3 -0
- data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +4 -0
- data/lib/starter_web/pages/public/se/se-fake.adoc +4 -0
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +18 -365
- data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.jpg +0 -0
- data/lib/starter_web/pages/public/_jupyter/docs/_includes/attributes.asciidoc +0 -67
- data/lib/starter_web/pages/public/_jupyter/docs/_includes/documents/j1_docs_example_static.asciidoc +0 -232
- data/lib/starter_web/pages/public/_jupyter/docs/binderhub.adoc +0 -631
- data/lib/starter_web/pages/public/_jupyter/docs/j1-nbinteract.adoc +0 -638
- data/lib/starter_web/pages/public/_jupyter/docs/jupyterhub.adoc +0 -248
- data/lib/starter_web/pages/public/_jupyter/docs/nbinteract-widget-manual.adoc +0 -928
- data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-circular-times-table.adoc +0 -139
- data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-common-used-widgets.adoc +0 -229
- data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-odes-in-python.adoc +0 -112
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-altair/j1-altair-visualisations.adoc +0 -142
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bokeh-visualisations.adoc +0 -171
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bqplot-eamples.adoc +0 -111
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-plotly/j1-plotly-visualisations.adoc +0 -94
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1_climate-change-forecast.adoc +0 -106
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16260
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_bgplot_line_plot-checkpoint.ipynb +0 -247
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-Copy1-checkpoint.ipynb +0 -12382
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-checkpoint.ipynb +0 -12387
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-short-checkpoint.ipynb +0 -12170
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast-checkpoint.ipynb +0 -1058
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_example_dynamic-checkpoint.ipynb +0 -14478
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-Copy1-checkpoint.ipynb +0 -379
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-checkpoint.ipynb +0 -442
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets-checkpoint.ipynb +0 -523
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.line_charts-checkpoint.ipynb +0 -84
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.questions-checkpoint.ipynb +0 -194
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_chart-checkpoint.ipynb +0 -89
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-Copy1-checkpoint.ipynb +0 -164
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-checkpoint.ipynb +0 -173
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts.1-checkpoint.ipynb +0 -256
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_barcharts-checkpoint.ipynb +0 -126
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_hist_chart-checkpoint.ipynb +0 -87
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_chart-checkpoint.ipynb +0 -90
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_charts-checkpoint.ipynb +0 -87
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_multiple_choice-checkpoint.ipynb +0 -64
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_short_answer-checkpoint.ipynb +0 -122
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_questions-checkpoint.ipynb +0 -181
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_chart-checkpoint.ipynb +0 -89
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_charts-checkpoint.ipynb +0 -175
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_drag_chart-checkpoint.ipynb +0 -87
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_ode_selected-checkpoint.ipynb +0 -14478
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_odes_in_python-checkpoint.ipynb +0 -15227
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/factor_by_factor.mp4 +0 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_circular_times_table.ipynb +0 -12382
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +0 -1058
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +0 -14478
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_interactive_widgets.ipynb +0 -442
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets.ipynb +0 -523
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_bar_chart.ipynb +0 -89
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_hist_chart.ipynb +0 -87
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_line_chart.ipynb +0 -90
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_multiple_choice.ipynb +0 -64
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_short_answer.ipynb +0 -122
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_chart.ipynb +0 -89
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_drag_chart.ipynb +0 -87
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_odes_in_python.ipynb +0 -15227
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/line_by_line.mp4 +0 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/point_by_point.mp4 +0 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16296
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_non_interactive-checkpoint.ipynb +0 -15385
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_interactive.ipynb +0 -16296
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_non_interactive.ipynb +0 -15385
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/00 - Introduction and Setup-checkpoint.ipynb +0 -717
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/01 - Basic Plotting-checkpoint.ipynb +0 -1381
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/02 - Styling and Theming-checkpoint.ipynb +0 -1440
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/03 - Data Sources and Transformations-checkpoint.ipynb +0 -927
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/04 - Adding Annotations-checkpoint.ipynb +0 -1105
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/05 - Presentation Layouts-checkpoint.ipynb +0 -578
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/06 - Linking and Interactions-checkpoint.ipynb +0 -1196
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/07 - Bar and Categorical Data Plots-checkpoint.ipynb +0 -1681
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/08 - Graph and Network Plots-checkpoint.ipynb +0 -680
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/09 - Geographic Plots-checkpoint.ipynb +0 -693
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/10 - Exporting and Embedding-checkpoint.ipynb +0 -751
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/11 - Running Bokeh Applications-checkpoint.ipynb +0 -770
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/bokeh_tut_00_introduction_and_setup-checkpoint.ipynb +0 -666
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_01_basic_plotting-checkpoint.ipynb +0 -1365
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_02_styling_and_theming-checkpoint.ipynb +0 -1405
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_03_data_sources_and_transformations-checkpoint.ipynb +0 -856
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_04_adding_annotations-checkpoint.ipynb +0 -1167
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_05_presentation_layouts-checkpoint.ipynb +0 -601
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_06_linking_and_interactions-checkpoint.ipynb +0 -1356
- 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
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_08_graph_and_network_plots-checkpoint.ipynb +0 -625
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_09_geographic_plots-checkpoint.ipynb +0 -685
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.ipynb +0 -726
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.org +0 -726
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding.new-checkpoint.ipynb +0 -560
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_11_running_bokeh_applications-checkpoint.ipynb +0 -716
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_01_basic_plotting.ipynb +0 -1365
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_02_styling_and_theming.ipynb +0 -1405
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_03_data_sources_and_transformations.ipynb +0 -856
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_04_adding_annotations.ipynb +0 -1167
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_05_presentation_layouts.ipynb +0 -601
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_06_linking_and_interactions.ipynb +0 -1356
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_07_bar_and_categorical_data_plots.ipynb +0 -1742
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_08_graph_and_network_plots.ipynb +0 -625
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_09_geographic_plots.ipynb +0 -685
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/.ipynb_checkpoints/j1_mathplot_vs_bqplot-checkpoint.ipynb +0 -336
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/advanced/Feature_Vector_Distribution-Iris-Digits.ipynb +0 -433
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_bgplot_line_plot.ipynb +0 -244
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_circular_times_table-short.ipynb +0 -12170
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_mathplot_vs_bqplot.ipynb +0 -336
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Index-checkpoint.ipynb +0 -163
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Tutorials-checkpoint.ipynb +0 -51
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Advanced Plotting.ipynb +0 -289
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Animations.ipynb +0 -266
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Axis Properties.ipynb +0 -396
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Plotting Dates.ipynb +0 -318
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/Time Series.ipynb +0 -158
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/spx_prices.csv +0 -6799
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Feature_Vector_Distribution-Iris-Digits.ipynb +0 -470
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Index.ipynb +0 -49
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Logs Analytics/Logs Dashboard.ipynb +0 -378
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Mobile Patent Suits.ipynb +0 -123
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Neural Network.ipynb +0 -177
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Outlier Detection.ipynb +0 -311
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Bubble Chart.ipynb +0 -255
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Choropleth.ipynb +0 -275
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/nations.json +0 -1
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/world_map_codes.csv +0 -234
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Basic Plotting-checkpoint.ipynb +0 -186
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Pyplot-checkpoint.ipynb +0 -794
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Untitled-checkpoint.ipynb +0 -323
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Basic Plotting.ipynb +0 -261
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Pyplot.ipynb +0 -1489
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Index.ipynb +0 -163
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Interaction Layer.ipynb +0 -966
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Mark Interactions.ipynb +0 -476
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Selectors.ipynb +0 -427
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Introduction.ipynb +0 -528
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bars.ipynb +0 -480
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bins.ipynb +0 -217
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Boxplot.ipynb +0 -253
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Candles.ipynb +0 -225
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/FlexLine.ipynb +0 -123
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Graph.ipynb +0 -357
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/GridHeatMap.ipynb +0 -422
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/HeatMap.ipynb +0 -157
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Hist.ipynb +0 -176
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Image.ipynb +0 -195
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Label.ipynb +0 -189
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Lines.ipynb +0 -565
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Map.ipynb +0 -182
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Market Map.ipynb +0 -315
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Pie.ipynb +0 -465
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Scatter.ipynb +0 -835
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bars.ipynb +0 -362
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bins.ipynb +0 -252
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Boxplot.ipynb +0 -273
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Candles.ipynb +0 -242
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/GridHeatMap.ipynb +0 -417
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/HeatMap.ipynb +0 -155
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Hist.ipynb +0 -238
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Image.ipynb +0 -152
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Label.ipynb +0 -206
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Lines.ipynb +0 -474
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Map.ipynb +0 -181
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Pie.ipynb +0 -310
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Scatter.ipynb +0 -702
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Scales/Color Scales.ipynb +0 -495
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Feature_Vector_Distribution-Iris-Digits-checkpoint.ipynb +0 -433
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Linking Plots With Widgets-checkpoint.ipynb +0 -326
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-Copy1-checkpoint.ipynb +0 -177
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-checkpoint.ipynb +0 -177
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Brush Interval Selector.ipynb +0 -154
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Fast Interval Selector.ipynb +0 -152
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density Widget.ipynb +0 -128
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density.ipynb +0 -113
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Linking Plots With Widgets.ipynb +0 -326
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Object Model.ipynb +0 -179
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Pyplot.ipynb +0 -174
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Updating Plots.ipynb +0 -177
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials.ipynb +0 -51
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/country_codes.csv +0 -213
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/gdp_per_capita.csv +0 -56
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/state_codes.csv +0 -52
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/trees.jpg +0 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_central_limit_theorem-checkpoint.ipynb +0 -247
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_variability_of_the_sample_mean-checkpoint.ipynb +0 -323
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +0 -387
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_interactive_questions-checkpoint.ipynb +0 -185
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_layout-checkpoint.ipynb +0 -384
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_interact-checkpoint.ipynb +0 -254
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_monty_hall-checkpoint.ipynb +0 -732
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_central_limit_theorem.ipynb +0 -247
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_correlation.ipynb +0 -651
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_empirical_distributions.ipynb +0 -773
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_linear_regression.ipynb +0 -111
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_probability_distribution_plots.ipynb +0 -199
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_sampling_from_a_population.ipynb +0 -421
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_variability_of_the_sample_mean.ipynb +0 -323
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_graphing.ipynb +0 -387
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_interactive_questions.ipynb +0 -185
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_layout.ipynb +0 -384
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_interact.ipynb +0 -254
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_monty_hall.ipynb +0 -732
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Advanced Plotting.html +0 -373
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Animations.html +0 -361
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Axis Properties.html +0 -569
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bars.html +0 -487
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Basic Plotting.html +0 -341
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bins.html +0 -259
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Boxplot.html +0 -277
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Brush Interval Selector.html +0 -182
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bubble Chart.html +0 -299
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Candles.html +0 -252
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Choropleth.html +0 -318
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Color Scales.html +0 -514
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Fast Interval Selector.html +0 -182
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Feature_Vector_Distribution-Iris-Digits.html +0 -479
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/FlexLine.html +0 -128
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density Widget.html +0 -152
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density.html +0 -137
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Graph.html +0 -484
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/GridHeatMap.html +0 -483
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/HeatMap.html +0 -170
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Hist.html +0 -349
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Image.html +0 -177
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Index.html +0 -29
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Interaction Layer.html +0 -1372
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Introduction.html +0 -749
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Label.html +0 -268
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Lines.html +0 -704
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Linking Plots With Widgets.html +0 -389
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Logs Dashboard.html +0 -455
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Map.html +0 -229
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mark Interactions.html +0 -613
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Market Map.html +0 -413
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mobile Patent Suits.html +0 -131
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Neural Network.html +0 -190
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Object Model.html +0 -193
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Outlier Detection.html +0 -363
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pie.html +0 -367
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Plotting Dates.html +0 -337
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pyplot.html +0 -196
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Scatter.html +0 -948
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Selectors.html +0 -489
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Time Series.html +0 -173
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Tutorials.html +0 -40
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Updating Plots.html +0 -228
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_interactive.html +0 -2216
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_non_interactive.html +0 -1170
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bgplot_line_plot.html +0 -318
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_01_basic_plotting.html +0 -1479
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_02_styling_and_theming.html +0 -1524
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_03_data_sources_and_transformations.html +0 -983
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_04_adding_annotations.html +0 -1280
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_05_presentation_layouts.html +0 -660
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_06_linking_and_interactions.html +0 -1563
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_07_bar_and_categorical_data_plots.html +0 -1888
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_08_graph_and_network_plots.html +0 -689
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_09_geographic_plots.html +0 -767
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table-short.html +0 -475
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table.html +0 -747
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_climate_change_forecast.html +0 -1250
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +0 -186
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_interactive_widgets.html +0 -512
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_mathplot_vs_bqplot.html +0 -407
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets.html +0 -629
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +0 -95
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +0 -93
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +0 -96
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +0 -70
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +0 -156
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +0 -95
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +0 -93
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_odes_in_python.html +0 -955
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_central_limit_theorem.html +0 -290
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_correlation.html +0 -818
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_empirical_distributions.html +0 -351
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_linear_regression.html +0 -106
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_probability_distribution_plots.html +0 -228
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_sampling_from_a_population.html +0 -518
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_variability_of_the_sample_mean.html +0 -372
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_graphing.html +0 -473
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_interactive_questions.html +0 -242
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_layout.html +0 -496
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_interact.html +0 -329
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_monty_hall.html +0 -866
- data/lib/starter_web/pages/public/_jupyter/where_to_go.adoc +0 -270
- data/lib/starter_web/pages/public/learn/_roundtrip/100_present_images.adoc +0 -313
- data/lib/starter_web/pages/public/learn/_roundtrip/100_present_videos.adoc +0 -281
- data/lib/starter_web/pages/public/learn/_roundtrip/200_typography.adoc +0 -253
- data/lib/starter_web/pages/public/learn/_roundtrip/300_icon_fonts.adoc +0 -579
- data/lib/starter_web/pages/public/learn/_roundtrip/400_asciidoc_extensions.adoc +0 -718
- data/lib/starter_web/pages/public/learn/_roundtrip/410_bs_modals_extentions.adoc +0 -91
- data/lib/starter_web/pages/public/learn/_roundtrip/420_responsive_tables_extensions.adoc +0 -420
- data/lib/starter_web/pages/public/learn/_roundtrip/500_themes.adoc +0 -250
- data/lib/starter_web/pages/public/learn/_roundtrip/600_quicksearch.adoc +0 -425
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/attributes.asciidoc +0 -118
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/100_gistblock.asciidoc +0 -28
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_info.asciidoc +0 -14
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_central_success.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_left_info.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_right_success.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +0 -47
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_info.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_left_info.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_right_success.asciidoc +0 -11
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +0 -337
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +0 -47
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/google-ad.js +0 -130
@@ -1,311 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"cells": [
|
3
|
-
{
|
4
|
-
"cell_type": "markdown",
|
5
|
-
"metadata": {},
|
6
|
-
"source": [
|
7
|
-
"### Outlier Detection with `bqplot`\n",
|
8
|
-
"---"
|
9
|
-
]
|
10
|
-
},
|
11
|
-
{
|
12
|
-
"cell_type": "markdown",
|
13
|
-
"metadata": {},
|
14
|
-
"source": [
|
15
|
-
"In this notebook, we create a class `DNA` that leverages the new bqplot canvas based [HeatMap](https://github.com/bloomberg/bqplot/blob/master/examples/Marks/HeatMap.ipynb) along with the ipywidgets Range Slider to help us detect and clean outliers in our data. The class accepts a DataFrame and allows you to visually and programmatically filter your outliers. The cleaned DataFrame can then be retrieved through a simple convenience function."
|
16
|
-
]
|
17
|
-
},
|
18
|
-
{
|
19
|
-
"cell_type": "code",
|
20
|
-
"execution_count": null,
|
21
|
-
"metadata": {},
|
22
|
-
"outputs": [],
|
23
|
-
"source": [
|
24
|
-
"from bqplot import (\n",
|
25
|
-
" DateScale,\n",
|
26
|
-
" ColorScale,\n",
|
27
|
-
" HeatMap,\n",
|
28
|
-
" Figure,\n",
|
29
|
-
" LinearScale,\n",
|
30
|
-
" OrdinalScale,\n",
|
31
|
-
" Axis,\n",
|
32
|
-
")\n",
|
33
|
-
"from scipy.stats import percentileofscore\n",
|
34
|
-
"from scipy.interpolate import interp1d\n",
|
35
|
-
"import bqplot.pyplot as plt\n",
|
36
|
-
"from traitlets import List, Float, observe\n",
|
37
|
-
"from ipywidgets import IntRangeSlider, Layout, VBox, HBox, jslink\n",
|
38
|
-
"from pandas import DatetimeIndex\n",
|
39
|
-
"import numpy as np\n",
|
40
|
-
"import pandas as pd\n",
|
41
|
-
"\n",
|
42
|
-
"\n",
|
43
|
-
"def quantile_space(x, q1=0.1, q2=0.9):\n",
|
44
|
-
" \"\"\"\n",
|
45
|
-
" Returns a function that squashes quantiles between q1 and q2\n",
|
46
|
-
" \"\"\"\n",
|
47
|
-
" q1_x, q2_x = np.percentile(x, [q1, q2])\n",
|
48
|
-
" qs = np.percentile(x, np.linspace(0, 100, 100))\n",
|
49
|
-
"\n",
|
50
|
-
" def get_quantile(t):\n",
|
51
|
-
" return np.interp(t, qs, np.linspace(0, 100, 100))\n",
|
52
|
-
"\n",
|
53
|
-
" def f(y):\n",
|
54
|
-
" return np.interp(get_quantile(y), [0, q1, q2, 100], [-1, 0, 0, 1])\n",
|
55
|
-
"\n",
|
56
|
-
" return f\n",
|
57
|
-
"\n",
|
58
|
-
"\n",
|
59
|
-
"class DNA(VBox):\n",
|
60
|
-
"\n",
|
61
|
-
" colors = List()\n",
|
62
|
-
" q1 = Float()\n",
|
63
|
-
" q2 = Float()\n",
|
64
|
-
"\n",
|
65
|
-
" def __init__(self, data, **kwargs):\n",
|
66
|
-
" self.data = data\n",
|
67
|
-
" date_x, date_y = False, False\n",
|
68
|
-
" transpose = kwargs.pop(\"transpose\", False)\n",
|
69
|
-
" if transpose is True:\n",
|
70
|
-
" if type(data.index) is DatetimeIndex:\n",
|
71
|
-
" self.x_scale = DateScale()\n",
|
72
|
-
" if type(data.columns) is DatetimeIndex:\n",
|
73
|
-
" self.y_scale = DateScale()\n",
|
74
|
-
" x, y = list(data.columns.values), data.index.values\n",
|
75
|
-
" else:\n",
|
76
|
-
" if type(data.index) is DatetimeIndex:\n",
|
77
|
-
" date_x = True\n",
|
78
|
-
" if type(data.columns) is DatetimeIndex:\n",
|
79
|
-
" date_y = True\n",
|
80
|
-
" x, y = data.index.values, list(data.columns.values)\n",
|
81
|
-
"\n",
|
82
|
-
" self.q1, self.q2 = kwargs.pop(\"quantiles\", (1, 99))\n",
|
83
|
-
"\n",
|
84
|
-
" self.quant_func = quantile_space(\n",
|
85
|
-
" self.data.values.flatten(), q1=self.q1, q2=self.q2\n",
|
86
|
-
" )\n",
|
87
|
-
" self.colors = kwargs.pop(\"colors\", [\"Red\", \"Black\", \"Green\"])\n",
|
88
|
-
"\n",
|
89
|
-
" self.x_scale = DateScale() if date_x is True else LinearScale()\n",
|
90
|
-
" self.y_scale = DateScale() if date_y is True else OrdinalScale(padding_y=0)\n",
|
91
|
-
" self.color_scale = ColorScale(colors=self.colors)\n",
|
92
|
-
" self.heat_map = HeatMap(\n",
|
93
|
-
" color=self.quant_func(self.data.T),\n",
|
94
|
-
" x=x,\n",
|
95
|
-
" y=y,\n",
|
96
|
-
" scales={\"x\": self.x_scale, \"y\": self.y_scale, \"color\": self.color_scale},\n",
|
97
|
-
" )\n",
|
98
|
-
" self.x_ax = Axis(scale=self.x_scale)\n",
|
99
|
-
" self.y_ax = Axis(scale=self.y_scale, orientation=\"vertical\")\n",
|
100
|
-
" show_axes = kwargs.pop(\"show_axes\", True)\n",
|
101
|
-
" self.axes = [self.x_ax, self.y_ax] if show_axes is True else []\n",
|
102
|
-
"\n",
|
103
|
-
" self.height = kwargs.pop(\"height\", \"800px\")\n",
|
104
|
-
" self.layout = kwargs.pop(\n",
|
105
|
-
" \"layout\", Layout(width=\"100%\", height=self.height, flex=\"1\")\n",
|
106
|
-
" )\n",
|
107
|
-
" self.fig_margin = kwargs.pop(\n",
|
108
|
-
" \"fig_margin\", {\"top\": 60, \"bottom\": 60, \"left\": 150, \"right\": 0}\n",
|
109
|
-
" )\n",
|
110
|
-
" kwargs.setdefault(\"padding_y\", 0.0)\n",
|
111
|
-
"\n",
|
112
|
-
" self.create_interaction(**kwargs)\n",
|
113
|
-
"\n",
|
114
|
-
" self.figure = Figure(\n",
|
115
|
-
" marks=[self.heat_map],\n",
|
116
|
-
" axes=self.axes,\n",
|
117
|
-
" fig_margin=self.fig_margin,\n",
|
118
|
-
" layout=self.layout,\n",
|
119
|
-
" min_aspect_ratio=0.0,\n",
|
120
|
-
" **kwargs\n",
|
121
|
-
" )\n",
|
122
|
-
"\n",
|
123
|
-
" super(VBox, self).__init__(\n",
|
124
|
-
" children=[self.range_slider, self.figure],\n",
|
125
|
-
" layout=Layout(align_items=\"center\", width=\"100%\", height=\"100%\"),\n",
|
126
|
-
" **kwargs\n",
|
127
|
-
" )\n",
|
128
|
-
"\n",
|
129
|
-
" def create_interaction(self, **kwargs):\n",
|
130
|
-
" self.range_slider = IntRangeSlider(\n",
|
131
|
-
" description=\"Filter Range\",\n",
|
132
|
-
" value=(self.q1, self.q2),\n",
|
133
|
-
" layout=Layout(width=\"100%\"),\n",
|
134
|
-
" )\n",
|
135
|
-
" self.range_slider.observe(self.slid_changed, \"value\")\n",
|
136
|
-
" self.observe(self.changed, [\"q1\", \"q2\"])\n",
|
137
|
-
"\n",
|
138
|
-
" def slid_changed(self, new):\n",
|
139
|
-
" self.q1 = self.range_slider.value[0]\n",
|
140
|
-
" self.q2 = self.range_slider.value[1]\n",
|
141
|
-
"\n",
|
142
|
-
" def changed(self, new):\n",
|
143
|
-
" self.range_slider.value = (self.q1, self.q2)\n",
|
144
|
-
"\n",
|
145
|
-
" self.quant_func = quantile_space(\n",
|
146
|
-
" self.data.values.flatten(), q1=self.q1, q2=self.q2\n",
|
147
|
-
" )\n",
|
148
|
-
" self.heat_map.color = self.quant_func(self.data.T)\n",
|
149
|
-
"\n",
|
150
|
-
" def get_filtered_df(self, fill_type=\"median\"):\n",
|
151
|
-
" q1_x, q2_x = np.percentile(self.data, [self.q1, self.q2])\n",
|
152
|
-
" if fill_type == \"median\":\n",
|
153
|
-
" return self.data[(self.data >= q1_x) & (self.data <= q2_x)].apply(\n",
|
154
|
-
" lambda x: x.fillna(x.median())\n",
|
155
|
-
" )\n",
|
156
|
-
" elif fill_type == \"mean\":\n",
|
157
|
-
" return self.data[(self.data >= q1_x) & (self.data <= q2_x)].apply(\n",
|
158
|
-
" lambda x: x.fillna(x.mean())\n",
|
159
|
-
" )\n",
|
160
|
-
" else:\n",
|
161
|
-
" raise ValueError(\"fill_type must be one of ('median', 'mean')\")"
|
162
|
-
]
|
163
|
-
},
|
164
|
-
{
|
165
|
-
"cell_type": "markdown",
|
166
|
-
"metadata": {},
|
167
|
-
"source": [
|
168
|
-
"We define the size of our matrix here. Larger matrices require a larger height."
|
169
|
-
]
|
170
|
-
},
|
171
|
-
{
|
172
|
-
"cell_type": "code",
|
173
|
-
"execution_count": null,
|
174
|
-
"metadata": {},
|
175
|
-
"outputs": [],
|
176
|
-
"source": [
|
177
|
-
"size = 100"
|
178
|
-
]
|
179
|
-
},
|
180
|
-
{
|
181
|
-
"cell_type": "code",
|
182
|
-
"execution_count": null,
|
183
|
-
"metadata": {},
|
184
|
-
"outputs": [],
|
185
|
-
"source": [
|
186
|
-
"def num_to_col_letters(num):\n",
|
187
|
-
" letters = \"\"\n",
|
188
|
-
" while num:\n",
|
189
|
-
" mod = (num - 1) % 26\n",
|
190
|
-
" letters += chr(mod + 65)\n",
|
191
|
-
" num = (num - 1) // 26\n",
|
192
|
-
" return \"\".join(reversed(letters))\n",
|
193
|
-
"\n",
|
194
|
-
"\n",
|
195
|
-
"letters = []\n",
|
196
|
-
"\n",
|
197
|
-
"for i in range(1, size + 1):\n",
|
198
|
-
" letters.append(num_to_col_letters(i))"
|
199
|
-
]
|
200
|
-
},
|
201
|
-
{
|
202
|
-
"cell_type": "code",
|
203
|
-
"execution_count": null,
|
204
|
-
"metadata": {},
|
205
|
-
"outputs": [],
|
206
|
-
"source": [
|
207
|
-
"data = pd.DataFrame(np.random.randn(size, size), columns=letters)"
|
208
|
-
]
|
209
|
-
},
|
210
|
-
{
|
211
|
-
"cell_type": "code",
|
212
|
-
"execution_count": null,
|
213
|
-
"metadata": {},
|
214
|
-
"outputs": [],
|
215
|
-
"source": [
|
216
|
-
"data_dna = DNA(\n",
|
217
|
-
" data, title=\"DNA of our Data\", height=\"1400px\", colors=[\"Red\", \"White\", \"Green\"]\n",
|
218
|
-
")\n",
|
219
|
-
"data_dna"
|
220
|
-
]
|
221
|
-
},
|
222
|
-
{
|
223
|
-
"cell_type": "markdown",
|
224
|
-
"metadata": {},
|
225
|
-
"source": [
|
226
|
-
"Instead of setting the quantiles by the sliders, we can also set them programmatically. Using a range of (5, 95) restricts the data considerably."
|
227
|
-
]
|
228
|
-
},
|
229
|
-
{
|
230
|
-
"cell_type": "code",
|
231
|
-
"execution_count": null,
|
232
|
-
"metadata": {},
|
233
|
-
"outputs": [],
|
234
|
-
"source": [
|
235
|
-
"data_dna.q1, data_dna.q2 = 5, 95"
|
236
|
-
]
|
237
|
-
},
|
238
|
-
{
|
239
|
-
"cell_type": "markdown",
|
240
|
-
"metadata": {},
|
241
|
-
"source": [
|
242
|
-
"Now, we can use the convenience function to extract a clean DataFrame."
|
243
|
-
]
|
244
|
-
},
|
245
|
-
{
|
246
|
-
"cell_type": "code",
|
247
|
-
"execution_count": null,
|
248
|
-
"metadata": {
|
249
|
-
"scrolled": true
|
250
|
-
},
|
251
|
-
"outputs": [],
|
252
|
-
"source": [
|
253
|
-
"data_clean = data_dna.get_filtered_df()"
|
254
|
-
]
|
255
|
-
},
|
256
|
-
{
|
257
|
-
"cell_type": "markdown",
|
258
|
-
"metadata": {},
|
259
|
-
"source": [
|
260
|
-
"The DNA fills outliers with the mean of the column. Alternately, we can fill the outliers by the mean."
|
261
|
-
]
|
262
|
-
},
|
263
|
-
{
|
264
|
-
"cell_type": "code",
|
265
|
-
"execution_count": null,
|
266
|
-
"metadata": {},
|
267
|
-
"outputs": [],
|
268
|
-
"source": [
|
269
|
-
"data_mean = data_dna.get_filtered_df(fill_type=\"mean\")"
|
270
|
-
]
|
271
|
-
},
|
272
|
-
{
|
273
|
-
"cell_type": "markdown",
|
274
|
-
"metadata": {},
|
275
|
-
"source": [
|
276
|
-
"We can also visualize the new DataFrame the same way to test how our outliers look now."
|
277
|
-
]
|
278
|
-
},
|
279
|
-
{
|
280
|
-
"cell_type": "code",
|
281
|
-
"execution_count": null,
|
282
|
-
"metadata": {},
|
283
|
-
"outputs": [],
|
284
|
-
"source": [
|
285
|
-
"DNA(data_clean, title=\"Cleaned Data\", height=\"1200px\", colors=[\"Red\", \"White\", \"Green\"])"
|
286
|
-
]
|
287
|
-
}
|
288
|
-
],
|
289
|
-
"metadata": {
|
290
|
-
"anaconda-cloud": {},
|
291
|
-
"kernelspec": {
|
292
|
-
"display_name": "Python 3",
|
293
|
-
"language": "python",
|
294
|
-
"name": "python3"
|
295
|
-
},
|
296
|
-
"language_info": {
|
297
|
-
"codemirror_mode": {
|
298
|
-
"name": "ipython",
|
299
|
-
"version": 3
|
300
|
-
},
|
301
|
-
"file_extension": ".py",
|
302
|
-
"mimetype": "text/x-python",
|
303
|
-
"name": "python",
|
304
|
-
"nbconvert_exporter": "python",
|
305
|
-
"pygments_lexer": "ipython3",
|
306
|
-
"version": "3.7.6"
|
307
|
-
}
|
308
|
-
},
|
309
|
-
"nbformat": 4,
|
310
|
-
"nbformat_minor": 2
|
311
|
-
}
|
@@ -1,255 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"cells": [
|
3
|
-
{
|
4
|
-
"cell_type": "markdown",
|
5
|
-
"metadata": {},
|
6
|
-
"source": [
|
7
|
-
"This is a `bqplot` recreation of Mike Bostock's [Wealth of Nations](https://bost.ocks.org/mike/nations/). This was also done by [Gapminder](http://www.gapminder.org/world/#$majorMode=chart$is;shi=t;ly=2003;lb=f;il=t;fs=11;al=30;stl=t;st=t;nsl=t;se=t$wst;tts=C$ts;sp=5.59290322580644;ti=2013$zpv;v=0$inc_x;mmid=XCOORDS;iid=phAwcNAVuyj1jiMAkmq1iMg;by=ind$inc_y;mmid=YCOORDS;iid=phAwcNAVuyj2tPLxKvvnNPA;by=ind$inc_s;uniValue=8.21;iid=phAwcNAVuyj0XOoBL_n5tAQ;by=ind$inc_c;uniValue=255;gid=CATID0;by=grp$map_x;scale=log;dataMin=194;dataMax=96846$map_y;scale=lin;dataMin=23;dataMax=86$map_s;sma=49;smi=2.65$cd;bd=0$inds=;modified=60). It is originally based on a TED Talk by [Hans Rosling](http://www.ted.com/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen)."
|
8
|
-
]
|
9
|
-
},
|
10
|
-
{
|
11
|
-
"cell_type": "code",
|
12
|
-
"execution_count": null,
|
13
|
-
"metadata": {},
|
14
|
-
"outputs": [],
|
15
|
-
"source": [
|
16
|
-
"import numpy as np\n",
|
17
|
-
"import pandas as pd\n",
|
18
|
-
"\n",
|
19
|
-
"import ipywidgets as widgets\n",
|
20
|
-
"import bqplot as bq\n",
|
21
|
-
"import bqplot.pyplot as plt"
|
22
|
-
]
|
23
|
-
},
|
24
|
-
{
|
25
|
-
"cell_type": "code",
|
26
|
-
"execution_count": null,
|
27
|
-
"metadata": {},
|
28
|
-
"outputs": [],
|
29
|
-
"source": [
|
30
|
-
"initial_year = 1800"
|
31
|
-
]
|
32
|
-
},
|
33
|
-
{
|
34
|
-
"cell_type": "code",
|
35
|
-
"execution_count": null,
|
36
|
-
"metadata": {
|
37
|
-
"scrolled": false
|
38
|
-
},
|
39
|
-
"outputs": [],
|
40
|
-
"source": [
|
41
|
-
"data = pd.read_json(\"nations.json\")"
|
42
|
-
]
|
43
|
-
},
|
44
|
-
{
|
45
|
-
"cell_type": "code",
|
46
|
-
"execution_count": null,
|
47
|
-
"metadata": {},
|
48
|
-
"outputs": [],
|
49
|
-
"source": [
|
50
|
-
"def clean_data(data):\n",
|
51
|
-
" for column in [\"income\", \"lifeExpectancy\", \"population\"]:\n",
|
52
|
-
" data = data.drop(data[data[column].apply(len) <= 4].index)\n",
|
53
|
-
" return data\n",
|
54
|
-
"\n",
|
55
|
-
"\n",
|
56
|
-
"def extrap_interp(data):\n",
|
57
|
-
" data = np.array(data)\n",
|
58
|
-
" x_range = np.arange(1800, 2009, 1.0)\n",
|
59
|
-
" y_range = np.interp(x_range, data[:, 0], data[:, 1])\n",
|
60
|
-
" return y_range\n",
|
61
|
-
"\n",
|
62
|
-
"\n",
|
63
|
-
"def extrap_data(data):\n",
|
64
|
-
" for column in [\"income\", \"lifeExpectancy\", \"population\"]:\n",
|
65
|
-
" data[column] = data[column].apply(extrap_interp)\n",
|
66
|
-
" return data"
|
67
|
-
]
|
68
|
-
},
|
69
|
-
{
|
70
|
-
"cell_type": "code",
|
71
|
-
"execution_count": null,
|
72
|
-
"metadata": {},
|
73
|
-
"outputs": [],
|
74
|
-
"source": [
|
75
|
-
"data = clean_data(data)\n",
|
76
|
-
"data = extrap_data(data)"
|
77
|
-
]
|
78
|
-
},
|
79
|
-
{
|
80
|
-
"cell_type": "code",
|
81
|
-
"execution_count": null,
|
82
|
-
"metadata": {
|
83
|
-
"scrolled": true
|
84
|
-
},
|
85
|
-
"outputs": [],
|
86
|
-
"source": [
|
87
|
-
"income_min, income_max = np.min(data[\"income\"].apply(np.min)), np.max(\n",
|
88
|
-
" data[\"income\"].apply(np.max)\n",
|
89
|
-
")\n",
|
90
|
-
"life_exp_min, life_exp_max = np.min(data[\"lifeExpectancy\"].apply(np.min)), np.max(\n",
|
91
|
-
" data[\"lifeExpectancy\"].apply(np.max)\n",
|
92
|
-
")\n",
|
93
|
-
"pop_min, pop_max = np.min(data[\"population\"].apply(np.min)), np.max(\n",
|
94
|
-
" data[\"population\"].apply(np.max)\n",
|
95
|
-
")"
|
96
|
-
]
|
97
|
-
},
|
98
|
-
{
|
99
|
-
"cell_type": "code",
|
100
|
-
"execution_count": null,
|
101
|
-
"metadata": {},
|
102
|
-
"outputs": [],
|
103
|
-
"source": [
|
104
|
-
"def get_data(year):\n",
|
105
|
-
" year_index = year - 1800\n",
|
106
|
-
" income = data[\"income\"].apply(lambda x: x[year_index])\n",
|
107
|
-
" life_exp = data[\"lifeExpectancy\"].apply(lambda x: x[year_index])\n",
|
108
|
-
" pop = data[\"population\"].apply(lambda x: x[year_index])\n",
|
109
|
-
" return income, life_exp, pop"
|
110
|
-
]
|
111
|
-
},
|
112
|
-
{
|
113
|
-
"cell_type": "code",
|
114
|
-
"execution_count": null,
|
115
|
-
"metadata": {},
|
116
|
-
"outputs": [],
|
117
|
-
"source": [
|
118
|
-
"time_interval = 100\n",
|
119
|
-
"fig_layout = widgets.Layout(width=\"1000px\", height=\"700px\", overflow_x=\"hidden\")\n",
|
120
|
-
"fig = plt.figure(\n",
|
121
|
-
" layout=fig_layout,\n",
|
122
|
-
" fig_margin=dict(top=60, bottom=80, left=40, right=20),\n",
|
123
|
-
" title=\"Health and Wealth of Nations\",\n",
|
124
|
-
" animation_duration=time_interval,\n",
|
125
|
-
")\n",
|
126
|
-
"\n",
|
127
|
-
"plt.scales(\n",
|
128
|
-
" scales={\n",
|
129
|
-
" \"x\": bq.LogScale(min=min(200, income_min), max=income_max),\n",
|
130
|
-
" \"y\": bq.LinearScale(min=life_exp_min, max=life_exp_max),\n",
|
131
|
-
" \"color\": bq.OrdinalColorScale(\n",
|
132
|
-
" domain=data[\"region\"].unique().tolist(), colors=bq.CATEGORY10[:6]\n",
|
133
|
-
" ),\n",
|
134
|
-
" \"size\": bq.LinearScale(min=pop_min, max=pop_max),\n",
|
135
|
-
" }\n",
|
136
|
-
")\n",
|
137
|
-
"\n",
|
138
|
-
"# add custom x tick values\n",
|
139
|
-
"ticks = [2, 4, 6, 8, 10]\n",
|
140
|
-
"income_ticks = (\n",
|
141
|
-
" [t * 100 for t in ticks] + [t * 1000 for t in ticks] + [t * 10000 for t in ticks]\n",
|
142
|
-
")\n",
|
143
|
-
"\n",
|
144
|
-
"# custom axis options\n",
|
145
|
-
"axes_options = {\n",
|
146
|
-
" \"x\": dict(\n",
|
147
|
-
" label=\"Income per Capita\",\n",
|
148
|
-
" label_location=\"end\",\n",
|
149
|
-
" label_offset=\"-2ex\",\n",
|
150
|
-
" tick_format=\"~s\",\n",
|
151
|
-
" tick_values=income_ticks,\n",
|
152
|
-
" ),\n",
|
153
|
-
" \"y\": dict(\n",
|
154
|
-
" label=\"Life Expectancy\",\n",
|
155
|
-
" orientation=\"vertical\",\n",
|
156
|
-
" side=\"left\",\n",
|
157
|
-
" label_location=\"end\",\n",
|
158
|
-
" label_offset=\"-1em\",\n",
|
159
|
-
" ),\n",
|
160
|
-
" \"color\": dict(label=\"Region\"),\n",
|
161
|
-
"}\n",
|
162
|
-
"\n",
|
163
|
-
"tooltip = bq.Tooltip(\n",
|
164
|
-
" fields=[\"name\", \"x\", \"y\"],\n",
|
165
|
-
" labels=[\"Country Name\", \"Income per Capita\", \"Life Expectancy\"],\n",
|
166
|
-
")\n",
|
167
|
-
"\n",
|
168
|
-
"year_label = bq.Label(\n",
|
169
|
-
" x=[0.75],\n",
|
170
|
-
" y=[0.10],\n",
|
171
|
-
" default_size=46,\n",
|
172
|
-
" font_weight=\"bolder\",\n",
|
173
|
-
" colors=[\"orange\"],\n",
|
174
|
-
" text=[str(initial_year)],\n",
|
175
|
-
" enable_move=True,\n",
|
176
|
-
")\n",
|
177
|
-
"\n",
|
178
|
-
"# Start with the first year's data\n",
|
179
|
-
"cap_income, life_exp, pop = get_data(initial_year)\n",
|
180
|
-
"\n",
|
181
|
-
"wealth_scat = plt.scatter(\n",
|
182
|
-
" cap_income,\n",
|
183
|
-
" life_exp,\n",
|
184
|
-
" color=data[\"region\"],\n",
|
185
|
-
" size=pop,\n",
|
186
|
-
" names=data[\"name\"],\n",
|
187
|
-
" display_names=False,\n",
|
188
|
-
" default_size=20000,\n",
|
189
|
-
" tooltip=tooltip,\n",
|
190
|
-
" stroke=\"Black\",\n",
|
191
|
-
" axes_options=axes_options,\n",
|
192
|
-
" unhovered_style={\"opacity\": 0.5},\n",
|
193
|
-
")\n",
|
194
|
-
"nation_line = plt.plot(\n",
|
195
|
-
" data[\"income\"][0], data[\"lifeExpectancy\"][0], colors=[\"Gray\"], visible=False\n",
|
196
|
-
")\n",
|
197
|
-
"\n",
|
198
|
-
"# slider for the year\n",
|
199
|
-
"year_slider = widgets.IntSlider(\n",
|
200
|
-
" min=1800, max=2008, description=\"Year\", value=initial_year\n",
|
201
|
-
")\n",
|
202
|
-
"\n",
|
203
|
-
"# register callbacks\n",
|
204
|
-
"def hover_changed(change):\n",
|
205
|
-
" if change.new is not None:\n",
|
206
|
-
" nation_line.x = data[data[\"name\"] == wealth_scat.names[change.new]][\n",
|
207
|
-
" \"income\"\n",
|
208
|
-
" ].values[0]\n",
|
209
|
-
" nation_line.y = data[data[\"name\"] == wealth_scat.names[change.new]][\n",
|
210
|
-
" \"lifeExpectancy\"\n",
|
211
|
-
" ].values[0]\n",
|
212
|
-
" nation_line.visible = True\n",
|
213
|
-
" else:\n",
|
214
|
-
" nation_line.visible = False\n",
|
215
|
-
"\n",
|
216
|
-
"\n",
|
217
|
-
"wealth_scat.observe(hover_changed, \"hovered_point\")\n",
|
218
|
-
"\n",
|
219
|
-
"\n",
|
220
|
-
"def year_changed(change):\n",
|
221
|
-
" wealth_scat.x, wealth_scat.y, wealth_scat.size = get_data(year_slider.value)\n",
|
222
|
-
" year_label.text = [str(year_slider.value)]\n",
|
223
|
-
"\n",
|
224
|
-
"\n",
|
225
|
-
"year_slider.observe(year_changed, \"value\")\n",
|
226
|
-
"\n",
|
227
|
-
"play_button = widgets.Play(min=1800, max=2008, interval=time_interval)\n",
|
228
|
-
"widgets.jslink((play_button, \"value\"), (year_slider, \"value\"))\n",
|
229
|
-
"\n",
|
230
|
-
"widgets.VBox([widgets.HBox([play_button, year_slider]), fig])"
|
231
|
-
]
|
232
|
-
}
|
233
|
-
],
|
234
|
-
"metadata": {
|
235
|
-
"kernelspec": {
|
236
|
-
"display_name": "Python 3",
|
237
|
-
"language": "python",
|
238
|
-
"name": "python3"
|
239
|
-
},
|
240
|
-
"language_info": {
|
241
|
-
"codemirror_mode": {
|
242
|
-
"name": "ipython",
|
243
|
-
"version": 3
|
244
|
-
},
|
245
|
-
"file_extension": ".py",
|
246
|
-
"mimetype": "text/x-python",
|
247
|
-
"name": "python",
|
248
|
-
"nbconvert_exporter": "python",
|
249
|
-
"pygments_lexer": "ipython3",
|
250
|
-
"version": "3.8.2"
|
251
|
-
}
|
252
|
-
},
|
253
|
-
"nbformat": 4,
|
254
|
-
"nbformat_minor": 1
|
255
|
-
}
|