j1-template 2022.5.0.rc1 → 2022.5.0.rc4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/assets/data/banner.html +24 -1
- data/assets/themes/j1/adapter/js/masterslider.js +22 -5
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +56 -0
- data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/Gemfile +270 -270
- data/lib/starter_web/_config.yml +19 -9
- data/lib/starter_web/_data/blocks/banner.yml +17 -0
- data/lib/starter_web/_data/modules/defaults/masterslider.yml +1 -1
- data/lib/starter_web/_data/modules/justifiedGallery.yml +82 -0
- data/lib/starter_web/_data/modules/masterslider.yml +5 -9
- data/lib/starter_web/_data/modules/navigator_menu.yml +208 -168
- data/lib/starter_web/_includes/attributes.asciidoc +18 -14
- data/lib/starter_web/_includes/tables/template_variables.asciidoc +1 -1
- data/lib/starter_web/_plugins/asciidoctor-extensions/lightbox-block.rb +4 -4
- data/lib/starter_web/assets/images/pages/features/blog-post-navigator-1280x1000.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1280x800.png +0 -0
- data/lib/starter_web/assets/images/pages/features/clipboard-1280x600.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/comments-1280x600.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/cookie-consent-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/desktop-web-navigation-1280x1000.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/example-content-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/example-content-present-videos-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/fab-1280x500.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/full-text-search-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.png +0 -0
- data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.png +0 -0
- data/lib/starter_web/assets/images/pages/features/intro-panel-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/master-header-1280x600.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.png +0 -0
- data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.png +0 -0
- data/lib/starter_web/assets/images/pages/features/nav-module-1280x300.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/nbi-barchart-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/teaser-banner-1280x600.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/translator-1280x800.jpg +0 -0
- data/lib/starter_web/assets/images/sticker/600x600/sticker-new-version.png +0 -0
- data/lib/starter_web/assets/images/sticker/scalable/readme +0 -0
- data/lib/starter_web/package.json +6 -6
- data/lib/starter_web/pages/public/_jupyter/docs/_includes/attributes.asciidoc +67 -0
- data/lib/starter_web/pages/public/_jupyter/docs/_includes/documents/j1_docs_example_static.asciidoc +232 -0
- data/lib/starter_web/pages/public/_jupyter/docs/binderhub.adoc +631 -0
- data/lib/starter_web/pages/public/_jupyter/docs/j1-nbinteract.adoc +638 -0
- data/lib/starter_web/pages/public/_jupyter/docs/jupyterhub.adoc +248 -0
- data/lib/starter_web/pages/public/_jupyter/docs/nbinteract-widget-manual.adoc +928 -0
- data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-circular-times-table.adoc +139 -0
- data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-common-used-widgets.adoc +229 -0
- data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-odes-in-python.adoc +112 -0
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-altair/j1-altair-visualisations.adoc +142 -0
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bokeh-visualisations.adoc +171 -0
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bqplot-eamples.adoc +111 -0
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-plotly/j1-plotly-visualisations.adoc +94 -0
- data/lib/starter_web/pages/public/_jupyter/examples/localized/j1_climate-change-forecast.adoc +106 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +16260 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_bgplot_line_plot-checkpoint.ipynb +247 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-Copy1-checkpoint.ipynb +12382 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-checkpoint.ipynb +12387 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-short-checkpoint.ipynb +12170 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast-checkpoint.ipynb +1058 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_example_dynamic-checkpoint.ipynb +14478 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-Copy1-checkpoint.ipynb +379 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-checkpoint.ipynb +442 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets-checkpoint.ipynb +523 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.line_charts-checkpoint.ipynb +84 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.questions-checkpoint.ipynb +194 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_chart-checkpoint.ipynb +89 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-Copy1-checkpoint.ipynb +164 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-checkpoint.ipynb +173 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts.1-checkpoint.ipynb +256 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_barcharts-checkpoint.ipynb +126 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_hist_chart-checkpoint.ipynb +87 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_chart-checkpoint.ipynb +90 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_charts-checkpoint.ipynb +87 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_multiple_choice-checkpoint.ipynb +64 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_short_answer-checkpoint.ipynb +122 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_questions-checkpoint.ipynb +181 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_chart-checkpoint.ipynb +89 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_charts-checkpoint.ipynb +175 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_drag_chart-checkpoint.ipynb +87 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_ode_selected-checkpoint.ipynb +14478 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_odes_in_python-checkpoint.ipynb +15227 -0
- 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 +12382 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +1058 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +14478 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_interactive_widgets.ipynb +442 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets.ipynb +523 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_bar_chart.ipynb +89 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_hist_chart.ipynb +87 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_line_chart.ipynb +90 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_multiple_choice.ipynb +64 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_short_answer.ipynb +122 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_chart.ipynb +89 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_drag_chart.ipynb +87 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_odes_in_python.ipynb +15227 -0
- 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 +16296 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_non_interactive-checkpoint.ipynb +15385 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_interactive.ipynb +16296 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_non_interactive.ipynb +15385 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/00 - Introduction and Setup-checkpoint.ipynb +717 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/01 - Basic Plotting-checkpoint.ipynb +1381 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/02 - Styling and Theming-checkpoint.ipynb +1440 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/03 - Data Sources and Transformations-checkpoint.ipynb +927 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/04 - Adding Annotations-checkpoint.ipynb +1105 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/05 - Presentation Layouts-checkpoint.ipynb +578 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/06 - Linking and Interactions-checkpoint.ipynb +1196 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/07 - Bar and Categorical Data Plots-checkpoint.ipynb +1681 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/08 - Graph and Network Plots-checkpoint.ipynb +680 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/09 - Geographic Plots-checkpoint.ipynb +693 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/10 - Exporting and Embedding-checkpoint.ipynb +751 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/11 - Running Bokeh Applications-checkpoint.ipynb +770 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/bokeh_tut_00_introduction_and_setup-checkpoint.ipynb +666 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_01_basic_plotting-checkpoint.ipynb +1365 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_02_styling_and_theming-checkpoint.ipynb +1405 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_03_data_sources_and_transformations-checkpoint.ipynb +856 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_04_adding_annotations-checkpoint.ipynb +1167 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_05_presentation_layouts-checkpoint.ipynb +601 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_06_linking_and_interactions-checkpoint.ipynb +1356 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_07_bar_and_categorical_data_plots-checkpoint.ipynb +1742 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_08_graph_and_network_plots-checkpoint.ipynb +625 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_09_geographic_plots-checkpoint.ipynb +685 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.ipynb +726 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.org +726 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding.new-checkpoint.ipynb +560 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_11_running_bokeh_applications-checkpoint.ipynb +716 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_01_basic_plotting.ipynb +1365 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_02_styling_and_theming.ipynb +1405 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_03_data_sources_and_transformations.ipynb +856 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_04_adding_annotations.ipynb +1167 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_05_presentation_layouts.ipynb +601 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_06_linking_and_interactions.ipynb +1356 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_07_bar_and_categorical_data_plots.ipynb +1742 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_08_graph_and_network_plots.ipynb +625 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_09_geographic_plots.ipynb +685 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/.ipynb_checkpoints/j1_mathplot_vs_bqplot-checkpoint.ipynb +336 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/advanced/Feature_Vector_Distribution-Iris-Digits.ipynb +433 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_bgplot_line_plot.ipynb +244 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_circular_times_table-short.ipynb +12170 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_mathplot_vs_bqplot.ipynb +336 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Index-checkpoint.ipynb +163 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Tutorials-checkpoint.ipynb +51 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Advanced Plotting.ipynb +289 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Animations.ipynb +266 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Axis Properties.ipynb +396 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Plotting Dates.ipynb +318 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/Time Series.ipynb +158 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/spx_prices.csv +6799 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Feature_Vector_Distribution-Iris-Digits.ipynb +470 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Index.ipynb +49 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Logs Analytics/Logs Dashboard.ipynb +378 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Mobile Patent Suits.ipynb +123 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Neural Network.ipynb +177 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Outlier Detection.ipynb +311 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Bubble Chart.ipynb +255 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Choropleth.ipynb +275 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/nations.json +1 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/world_map_codes.csv +234 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Basic Plotting-checkpoint.ipynb +186 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Pyplot-checkpoint.ipynb +794 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Untitled-checkpoint.ipynb +323 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Basic Plotting.ipynb +261 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Pyplot.ipynb +1489 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Index.ipynb +163 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Interaction Layer.ipynb +966 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Mark Interactions.ipynb +476 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Selectors.ipynb +427 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Introduction.ipynb +528 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bars.ipynb +480 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bins.ipynb +217 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Boxplot.ipynb +253 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Candles.ipynb +225 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/FlexLine.ipynb +123 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Graph.ipynb +357 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/GridHeatMap.ipynb +422 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/HeatMap.ipynb +157 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Hist.ipynb +176 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Image.ipynb +195 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Label.ipynb +189 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Lines.ipynb +565 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Map.ipynb +182 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Market Map.ipynb +315 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Pie.ipynb +465 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Scatter.ipynb +835 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bars.ipynb +362 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bins.ipynb +252 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Boxplot.ipynb +273 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Candles.ipynb +242 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/GridHeatMap.ipynb +417 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/HeatMap.ipynb +155 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Hist.ipynb +238 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Image.ipynb +152 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Label.ipynb +206 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Lines.ipynb +474 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Map.ipynb +181 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Pie.ipynb +310 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Scatter.ipynb +702 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Scales/Color Scales.ipynb +495 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Feature_Vector_Distribution-Iris-Digits-checkpoint.ipynb +433 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Linking Plots With Widgets-checkpoint.ipynb +326 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-Copy1-checkpoint.ipynb +177 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-checkpoint.ipynb +177 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Brush Interval Selector.ipynb +154 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Fast Interval Selector.ipynb +152 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density Widget.ipynb +128 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density.ipynb +113 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Linking Plots With Widgets.ipynb +326 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Object Model.ipynb +179 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Pyplot.ipynb +174 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Updating Plots.ipynb +177 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials.ipynb +51 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/country_codes.csv +213 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/gdp_per_capita.csv +56 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/state_codes.csv +52 -0
- 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 +247 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_variability_of_the_sample_mean-checkpoint.ipynb +323 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +387 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_interactive_questions-checkpoint.ipynb +185 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_layout-checkpoint.ipynb +384 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_interact-checkpoint.ipynb +254 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_monty_hall-checkpoint.ipynb +732 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_central_limit_theorem.ipynb +247 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_correlation.ipynb +651 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_empirical_distributions.ipynb +773 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_linear_regression.ipynb +111 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_probability_distribution_plots.ipynb +199 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_sampling_from_a_population.ipynb +421 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_variability_of_the_sample_mean.ipynb +323 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_graphing.ipynb +387 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_interactive_questions.ipynb +185 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_layout.ipynb +384 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_interact.ipynb +254 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_monty_hall.ipynb +732 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Advanced Plotting.html +373 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Animations.html +361 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Axis Properties.html +569 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bars.html +487 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Basic Plotting.html +341 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bins.html +259 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Boxplot.html +277 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Brush Interval Selector.html +182 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bubble Chart.html +299 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Candles.html +252 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Choropleth.html +318 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Color Scales.html +514 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Fast Interval Selector.html +182 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Feature_Vector_Distribution-Iris-Digits.html +479 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/FlexLine.html +128 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density Widget.html +152 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density.html +137 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Graph.html +484 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/GridHeatMap.html +483 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/HeatMap.html +170 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Hist.html +349 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Image.html +177 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Index.html +29 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Interaction Layer.html +1372 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Introduction.html +749 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Label.html +268 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Lines.html +704 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Linking Plots With Widgets.html +389 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Logs Dashboard.html +455 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Map.html +229 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mark Interactions.html +613 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Market Map.html +413 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mobile Patent Suits.html +131 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Neural Network.html +190 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Object Model.html +193 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Outlier Detection.html +363 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pie.html +367 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Plotting Dates.html +337 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pyplot.html +196 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Scatter.html +948 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Selectors.html +489 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Time Series.html +173 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Tutorials.html +40 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Updating Plots.html +228 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_interactive.html +2216 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_non_interactive.html +1170 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bgplot_line_plot.html +318 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_01_basic_plotting.html +1479 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_02_styling_and_theming.html +1524 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_03_data_sources_and_transformations.html +983 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_04_adding_annotations.html +1280 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_05_presentation_layouts.html +660 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_06_linking_and_interactions.html +1563 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_07_bar_and_categorical_data_plots.html +1888 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_08_graph_and_network_plots.html +689 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_09_geographic_plots.html +767 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table-short.html +475 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table.html +747 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_climate_change_forecast.html +1250 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +186 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_interactive_widgets.html +512 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_mathplot_vs_bqplot.html +407 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets.html +629 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +95 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +93 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +96 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +70 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +156 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +95 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +93 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_odes_in_python.html +955 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_central_limit_theorem.html +290 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_correlation.html +818 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_empirical_distributions.html +351 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_linear_regression.html +106 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_probability_distribution_plots.html +228 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_sampling_from_a_population.html +518 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_variability_of_the_sample_mean.html +372 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_graphing.html +473 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_interactive_questions.html +242 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_layout.html +496 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_interact.html +329 -0
- data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_monty_hall.html +866 -0
- data/lib/starter_web/pages/public/_jupyter/where_to_go.adoc +270 -0
- data/lib/starter_web/pages/public/features/general.adoc +74 -33
- data/lib/starter_web/pages/public/features/template.adoc +159 -68
- 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/_roundtrip/100_present_images.adoc +313 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/100_present_videos.adoc +281 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/200_typography.adoc +253 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/300_icon_fonts.adoc +579 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/400_asciidoc_extensions.adoc +718 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/410_bs_modals_extentions.adoc +91 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/420_responsive_tables_extensions.adoc +420 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/500_themes.adoc +250 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/600_quicksearch.adoc +425 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/attributes.asciidoc +118 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/100_gistblock.asciidoc +28 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_info.asciidoc +14 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +11 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +11 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_central_success.asciidoc +11 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_left_info.asciidoc +11 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_right_success.asciidoc +11 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +47 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_info.asciidoc +11 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_left_info.asciidoc +11 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_right_success.asciidoc +11 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +337 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +47 -0
- data/lib/starter_web/pages/public/learn/_roundtrip/_includes/google-ad.js +130 -0
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +6 -5
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +1 -2
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +4 -2
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +384 -17
- data/lib/starter_web/_includes/_attributes.asciidoc +0 -575
- data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1080x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/comments-1080x600.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/cookie-consent-1080x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/example-content-present-videos-1080x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/fab-1080x500.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/full-text-search-1080x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/intro-panel-1080x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/nav-module-1080x300.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/teaser-banner-1080x600.jpg +0 -0
- data/lib/starter_web/assets/images/pages/features/translator-1080x800.jpg +0 -0
@@ -0,0 +1,326 @@
|
|
1
|
+
{
|
2
|
+
"cells": [
|
3
|
+
{
|
4
|
+
"cell_type": "markdown",
|
5
|
+
"metadata": {},
|
6
|
+
"source": [
|
7
|
+
"# Building interactive plots using `bqplot` and `ipywidgets`"
|
8
|
+
]
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"cell_type": "markdown",
|
12
|
+
"metadata": {},
|
13
|
+
"source": [
|
14
|
+
"* `bqplot` is built on top of the `ipywidgets` framework\n",
|
15
|
+
"* `ipwidgets` and `bqplot` widgets can be seamlessly integrated to build interactive plots\n",
|
16
|
+
"* `bqplot` figure widgets can be stacked with UI controls available in `ipywidgets` by using `Layout` classes (Box, HBox, VBox) in `ipywidgets`\n",
|
17
|
+
"(Note that *only* `Figure` objects (not `Mark` objects) inherit from `DOMWidget` class and can be combined with other widgets from `ipywidgets`)\n",
|
18
|
+
"* Trait attributes of widgets can be linked using callbacks. Callbacks should be registered using the `observe` method\n",
|
19
|
+
"\n",
|
20
|
+
"Please follow these links for detailed documentation on:\n",
|
21
|
+
"1. [Layout and Styling of Jupyter Widgets](https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Styling.html)\n",
|
22
|
+
"* [Linking Widgets](https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Events.html)\n",
|
23
|
+
"\n",
|
24
|
+
"<br>Let's look at examples of linking plots with UI controls"
|
25
|
+
]
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"cell_type": "code",
|
29
|
+
"execution_count": 1,
|
30
|
+
"metadata": {},
|
31
|
+
"outputs": [],
|
32
|
+
"source": [
|
33
|
+
"import numpy as np\n",
|
34
|
+
"import ipywidgets as widgets\n",
|
35
|
+
"from ipywidgets import interact, Layout, IntSlider, FloatSlider"
|
36
|
+
]
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"cell_type": "code",
|
40
|
+
"execution_count": 8,
|
41
|
+
"metadata": {},
|
42
|
+
"outputs": [],
|
43
|
+
"source": [
|
44
|
+
"import bqplot.pyplot as plt"
|
45
|
+
]
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"cell_type": "markdown",
|
49
|
+
"metadata": {},
|
50
|
+
"source": [
|
51
|
+
"Update the plot on a button click"
|
52
|
+
]
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"cell_type": "code",
|
56
|
+
"execution_count": 9,
|
57
|
+
"metadata": {},
|
58
|
+
"outputs": [
|
59
|
+
{
|
60
|
+
"data": {
|
61
|
+
"application/vnd.jupyter.widget-view+json": {
|
62
|
+
"model_id": "d92dcdfef7254641a947a4f28e0fbe0e",
|
63
|
+
"version_major": 2,
|
64
|
+
"version_minor": 0
|
65
|
+
},
|
66
|
+
"text/plain": [
|
67
|
+
"VBox(children=(Figure(animation_duration=750, axes=[Axis(scale=LinearScale()), Axis(orientation='vertical', sc…"
|
68
|
+
]
|
69
|
+
},
|
70
|
+
"metadata": {},
|
71
|
+
"output_type": "display_data"
|
72
|
+
}
|
73
|
+
],
|
74
|
+
"source": [
|
75
|
+
"y = np.random.randn(100).cumsum() # simple random walk\n",
|
76
|
+
"\n",
|
77
|
+
"# create a button\n",
|
78
|
+
"update_btn = widgets.Button(description=\"Update\", button_style=\"success\")\n",
|
79
|
+
"\n",
|
80
|
+
"# create a figure widget\n",
|
81
|
+
"fig1 = plt.figure(animation_duration=750)\n",
|
82
|
+
"line = plt.plot(y)\n",
|
83
|
+
"\n",
|
84
|
+
"# define an on_click function\n",
|
85
|
+
"def on_btn_click(btn):\n",
|
86
|
+
" # update the y attribute of line mark\n",
|
87
|
+
" line.y = np.random.randn(100).cumsum() # another random walk\n",
|
88
|
+
"\n",
|
89
|
+
"\n",
|
90
|
+
"# register the on_click function\n",
|
91
|
+
"update_btn.on_click(on_btn_click)\n",
|
92
|
+
"\n",
|
93
|
+
"# stack button and figure using VBox\n",
|
94
|
+
"widgets.VBox([fig1, update_btn])"
|
95
|
+
]
|
96
|
+
},
|
97
|
+
{
|
98
|
+
"cell_type": "markdown",
|
99
|
+
"metadata": {},
|
100
|
+
"source": [
|
101
|
+
"Let's look at an example where we link a plot to a dropdown menu"
|
102
|
+
]
|
103
|
+
},
|
104
|
+
{
|
105
|
+
"cell_type": "code",
|
106
|
+
"execution_count": 4,
|
107
|
+
"metadata": {},
|
108
|
+
"outputs": [],
|
109
|
+
"source": [
|
110
|
+
"import pandas as pd\n",
|
111
|
+
"\n",
|
112
|
+
"# create a dummy time series for 5 dummy stock tickers\n",
|
113
|
+
"dates = pd.date_range(start=\"20180101\", end=\"20181231\")\n",
|
114
|
+
"n = len(dates)\n",
|
115
|
+
"tickers = list(\"ABCDE\")\n",
|
116
|
+
"prices = pd.DataFrame(np.random.randn(n, 5).cumsum(axis=0), columns=tickers)"
|
117
|
+
]
|
118
|
+
},
|
119
|
+
{
|
120
|
+
"cell_type": "code",
|
121
|
+
"execution_count": 10,
|
122
|
+
"metadata": {
|
123
|
+
"scrolled": false
|
124
|
+
},
|
125
|
+
"outputs": [
|
126
|
+
{
|
127
|
+
"data": {
|
128
|
+
"application/vnd.jupyter.widget-view+json": {
|
129
|
+
"model_id": "ebf6ff3b071249bd8168bc8f22232336",
|
130
|
+
"version_major": 2,
|
131
|
+
"version_minor": 0
|
132
|
+
},
|
133
|
+
"text/plain": [
|
134
|
+
"VBox(children=(Dropdown(description='Ticker', options=('A', 'B', 'C', 'D', 'E'), value='A'), Figure(axes=[Axis…"
|
135
|
+
]
|
136
|
+
},
|
137
|
+
"metadata": {},
|
138
|
+
"output_type": "display_data"
|
139
|
+
}
|
140
|
+
],
|
141
|
+
"source": [
|
142
|
+
"# create a dropdown menu for tickers\n",
|
143
|
+
"dropdown = widgets.Dropdown(description=\"Ticker\", options=tickers)\n",
|
144
|
+
"\n",
|
145
|
+
"# create figure for plotting time series\n",
|
146
|
+
"current_ticker = dropdown.value\n",
|
147
|
+
"fig_title_tmpl = '\"{}\" Time Series' # string template for title of the figure\n",
|
148
|
+
"fig2 = plt.figure(title=fig_title_tmpl.format(current_ticker))\n",
|
149
|
+
"fig2.layout.width = \"900px\"\n",
|
150
|
+
"time_series = plt.plot(dates, prices[current_ticker])\n",
|
151
|
+
"plt.xlabel(\"Date\")\n",
|
152
|
+
"plt.ylabel(\"Price\")\n",
|
153
|
+
"\n",
|
154
|
+
"# 1. create a callback which updates the plot when dropdown item is selected\n",
|
155
|
+
"def update_plot(*args):\n",
|
156
|
+
" selected_ticker = dropdown.value\n",
|
157
|
+
"\n",
|
158
|
+
" # update the y attribute of the mark by selecting\n",
|
159
|
+
" # the column from the price data frame\n",
|
160
|
+
" time_series.y = prices[selected_ticker]\n",
|
161
|
+
"\n",
|
162
|
+
" # update the title of the figure\n",
|
163
|
+
" fig2.title = fig_title_tmpl.format(selected_ticker)\n",
|
164
|
+
"\n",
|
165
|
+
"\n",
|
166
|
+
"# 2. register the callback by using the 'observe' method\n",
|
167
|
+
"dropdown.observe(update_plot, \"value\")\n",
|
168
|
+
"\n",
|
169
|
+
"# stack the dropdown and fig widgets using VBox\n",
|
170
|
+
"widgets.VBox([dropdown, fig2])"
|
171
|
+
]
|
172
|
+
},
|
173
|
+
{
|
174
|
+
"cell_type": "markdown",
|
175
|
+
"metadata": {},
|
176
|
+
"source": [
|
177
|
+
"Let's now create a scatter plot where we select X and Y data from the two dropdown menus"
|
178
|
+
]
|
179
|
+
},
|
180
|
+
{
|
181
|
+
"cell_type": "code",
|
182
|
+
"execution_count": 6,
|
183
|
+
"metadata": {},
|
184
|
+
"outputs": [
|
185
|
+
{
|
186
|
+
"data": {
|
187
|
+
"application/vnd.jupyter.widget-view+json": {
|
188
|
+
"model_id": "38e7e130765f4822b773bcc6647812ec",
|
189
|
+
"version_major": 2,
|
190
|
+
"version_minor": 0
|
191
|
+
},
|
192
|
+
"text/plain": [
|
193
|
+
"VBox(children=(HBox(children=(Dropdown(description='X', options=('A', 'B', 'C', 'D', 'E'), value='A'), Dropdow…"
|
194
|
+
]
|
195
|
+
},
|
196
|
+
"metadata": {},
|
197
|
+
"output_type": "display_data"
|
198
|
+
}
|
199
|
+
],
|
200
|
+
"source": [
|
201
|
+
"# create two dropdown menus for X and Y attributes of scatter\n",
|
202
|
+
"x_dropdown = widgets.Dropdown(description=\"X\", options=tickers, value=\"A\")\n",
|
203
|
+
"y_dropdown = widgets.Dropdown(description=\"Y\", options=tickers, value=\"B\")\n",
|
204
|
+
"\n",
|
205
|
+
"# create figure for plotting the scatter\n",
|
206
|
+
"x_ticker = x_dropdown.value\n",
|
207
|
+
"y_ticker = y_dropdown.value\n",
|
208
|
+
"\n",
|
209
|
+
"# set up fig_margin to allow space to display color bar\n",
|
210
|
+
"fig_margin = dict(top=20, bottom=40, left=60, right=80)\n",
|
211
|
+
"fig3 = plt.figure(animation_duration=1000, fig_margin=fig_margin)\n",
|
212
|
+
"\n",
|
213
|
+
"# custom axis options for color data\n",
|
214
|
+
"axes_options = {\"color\": {\"tick_format\": \"%m/%y\", \"side\": \"right\", \"num_ticks\": 5}}\n",
|
215
|
+
"scatter = plt.scatter(\n",
|
216
|
+
" x=prices[x_ticker],\n",
|
217
|
+
" y=prices[y_ticker],\n",
|
218
|
+
" color=dates, # represent chronology using color scale\n",
|
219
|
+
" stroke=\"black\",\n",
|
220
|
+
" colors=[\"red\"],\n",
|
221
|
+
" default_size=32,\n",
|
222
|
+
" axes_options=axes_options,\n",
|
223
|
+
")\n",
|
224
|
+
"plt.xlabel(x_ticker)\n",
|
225
|
+
"plt.ylabel(y_ticker)\n",
|
226
|
+
"\n",
|
227
|
+
"# 1. create a callback which updates the plot when dropdown item is selected\n",
|
228
|
+
"def update_scatter(*args):\n",
|
229
|
+
" x_ticker = x_dropdown.value\n",
|
230
|
+
" y_ticker = y_dropdown.value\n",
|
231
|
+
"\n",
|
232
|
+
" # update the x and y attributes of the mark by selecting\n",
|
233
|
+
" # the column from the price data frame\n",
|
234
|
+
" with scatter.hold_sync():\n",
|
235
|
+
" scatter.x = prices[x_ticker]\n",
|
236
|
+
" scatter.y = prices[y_ticker]\n",
|
237
|
+
"\n",
|
238
|
+
" # update the title of the figure\n",
|
239
|
+
" plt.xlabel(x_ticker)\n",
|
240
|
+
" plt.ylabel(y_ticker)\n",
|
241
|
+
"\n",
|
242
|
+
"\n",
|
243
|
+
"# 2. register the callback by using the 'observe' method\n",
|
244
|
+
"x_dropdown.observe(update_scatter, \"value\")\n",
|
245
|
+
"y_dropdown.observe(update_scatter, \"value\")\n",
|
246
|
+
"\n",
|
247
|
+
"# stack the dropdown and fig widgets using VBox\n",
|
248
|
+
"widgets.VBox([widgets.HBox([x_dropdown, y_dropdown]), fig3])"
|
249
|
+
]
|
250
|
+
},
|
251
|
+
{
|
252
|
+
"cell_type": "markdown",
|
253
|
+
"metadata": {},
|
254
|
+
"source": [
|
255
|
+
"In the example below, we'll look at plots of trigonometic functions"
|
256
|
+
]
|
257
|
+
},
|
258
|
+
{
|
259
|
+
"cell_type": "code",
|
260
|
+
"execution_count": 11,
|
261
|
+
"metadata": {
|
262
|
+
"scrolled": false
|
263
|
+
},
|
264
|
+
"outputs": [
|
265
|
+
{
|
266
|
+
"data": {
|
267
|
+
"application/vnd.jupyter.widget-view+json": {
|
268
|
+
"model_id": "20ea9071584c4070a317e5b47fcce374",
|
269
|
+
"version_major": 2,
|
270
|
+
"version_minor": 0
|
271
|
+
},
|
272
|
+
"text/plain": [
|
273
|
+
"VBox(children=(Dropdown(description='Function', options={'sin': <ufunc 'sin'>, 'cos': <ufunc 'cos'>, 'tan': <u…"
|
274
|
+
]
|
275
|
+
},
|
276
|
+
"metadata": {},
|
277
|
+
"output_type": "display_data"
|
278
|
+
}
|
279
|
+
],
|
280
|
+
"source": [
|
281
|
+
"funcs = dict(sin=np.sin, cos=np.cos, tan=np.tan, sinh=np.sinh, tanh=np.tanh)\n",
|
282
|
+
"dropdown = widgets.Dropdown(options=funcs, description=\"Function\")\n",
|
283
|
+
"\n",
|
284
|
+
"fig = plt.figure(title=\"sin(x)\", animation_duration=1000)\n",
|
285
|
+
"\n",
|
286
|
+
"# create x and y data attributes for the line chart\n",
|
287
|
+
"x = np.arange(-10, 10, 0.1)\n",
|
288
|
+
"y = np.sin(x)\n",
|
289
|
+
"\n",
|
290
|
+
"line = plt.plot(x, y, \"m\")\n",
|
291
|
+
"\n",
|
292
|
+
"\n",
|
293
|
+
"def update_line(*args):\n",
|
294
|
+
" f = dropdown.value\n",
|
295
|
+
" fig.title = f\"{f.__name__}(x)\"\n",
|
296
|
+
" line.y = f(line.x)\n",
|
297
|
+
"\n",
|
298
|
+
"\n",
|
299
|
+
"dropdown.observe(update_line, \"value\")\n",
|
300
|
+
"\n",
|
301
|
+
"widgets.VBox([dropdown, fig])"
|
302
|
+
]
|
303
|
+
}
|
304
|
+
],
|
305
|
+
"metadata": {
|
306
|
+
"kernelspec": {
|
307
|
+
"display_name": "Python 3 (ipykernel)",
|
308
|
+
"language": "python",
|
309
|
+
"name": "python3"
|
310
|
+
},
|
311
|
+
"language_info": {
|
312
|
+
"codemirror_mode": {
|
313
|
+
"name": "ipython",
|
314
|
+
"version": 3
|
315
|
+
},
|
316
|
+
"file_extension": ".py",
|
317
|
+
"mimetype": "text/x-python",
|
318
|
+
"name": "python",
|
319
|
+
"nbconvert_exporter": "python",
|
320
|
+
"pygments_lexer": "ipython3",
|
321
|
+
"version": "3.7.9"
|
322
|
+
}
|
323
|
+
},
|
324
|
+
"nbformat": 4,
|
325
|
+
"nbformat_minor": 1
|
326
|
+
}
|
@@ -0,0 +1,179 @@
|
|
1
|
+
{
|
2
|
+
"cells": [
|
3
|
+
{
|
4
|
+
"cell_type": "markdown",
|
5
|
+
"metadata": {},
|
6
|
+
"source": [
|
7
|
+
"# Object Model"
|
8
|
+
]
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"cell_type": "markdown",
|
12
|
+
"metadata": {},
|
13
|
+
"source": [
|
14
|
+
"`bqplot` is based on **Grammar of Graphics** paradigm. The *Object Model* in `bqplot` gives the user the full flexibility to build custom plots. This means the API is verbose but fully customizable.\n",
|
15
|
+
"\n",
|
16
|
+
"The following are the steps to build a `Figure` in `bqplot` using the Object Model:\n",
|
17
|
+
"\n",
|
18
|
+
"* Build the scales for `x` and `y` quantities using the `Scale` classes (Scales map the data into pixels in the figure)\n",
|
19
|
+
"* Build the marks using the `Mark` classes. Marks represent the core plotting objects (lines, scatter, bars, pies etc.). Marks take the scale objects created in step 1 as arguments\n",
|
20
|
+
"* Build the `axes` for `x` and `y` scales\n",
|
21
|
+
"* Finally create a figure using `Figure` class. `Figure` takes marks and axes as inputs. `Figure` object is a widget (it inherits from `DOMWidget`) and can be rendered like any other jupyter widget\n",
|
22
|
+
"\n",
|
23
|
+
"Let's look a simple example to understand these concepts:"
|
24
|
+
]
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"cell_type": "code",
|
28
|
+
"execution_count": null,
|
29
|
+
"metadata": {},
|
30
|
+
"outputs": [],
|
31
|
+
"source": [
|
32
|
+
"from bqplot import (\n",
|
33
|
+
" LinearScale,\n",
|
34
|
+
" Axis,\n",
|
35
|
+
" Figure,\n",
|
36
|
+
" OrdinalScale,\n",
|
37
|
+
" LinearScale,\n",
|
38
|
+
" Bars,\n",
|
39
|
+
" Lines,\n",
|
40
|
+
" Scatter,\n",
|
41
|
+
")"
|
42
|
+
]
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"cell_type": "code",
|
46
|
+
"execution_count": null,
|
47
|
+
"metadata": {},
|
48
|
+
"outputs": [],
|
49
|
+
"source": [
|
50
|
+
"# first, let's create two vectors x and y to plot using a Lines mark\n",
|
51
|
+
"import numpy as np\n",
|
52
|
+
"\n",
|
53
|
+
"x = np.linspace(-10, 10, 100)\n",
|
54
|
+
"y = np.sin(x)\n",
|
55
|
+
"\n",
|
56
|
+
"# 1. Create the scales\n",
|
57
|
+
"xs = LinearScale()\n",
|
58
|
+
"ys = LinearScale()\n",
|
59
|
+
"\n",
|
60
|
+
"# 2. Create the axes for x and y\n",
|
61
|
+
"xax = Axis(scale=xs, label=\"X\")\n",
|
62
|
+
"yax = Axis(scale=ys, orientation=\"vertical\", label=\"Y\")\n",
|
63
|
+
"\n",
|
64
|
+
"# 3. Create a Lines mark by passing in the scales\n",
|
65
|
+
"# note that Lines object is stored in `line` which can be used later to update the plot\n",
|
66
|
+
"line = Lines(x=x, y=y, scales={\"x\": xs, \"y\": ys})\n",
|
67
|
+
"\n",
|
68
|
+
"# 4. Create a Figure object by assembling marks and axes\n",
|
69
|
+
"fig = Figure(marks=[line], axes=[xax, yax], title=\"Simple Line Chart\")\n",
|
70
|
+
"\n",
|
71
|
+
"# 5. Render the figure using display or just as is\n",
|
72
|
+
"fig"
|
73
|
+
]
|
74
|
+
},
|
75
|
+
{
|
76
|
+
"cell_type": "markdown",
|
77
|
+
"metadata": {},
|
78
|
+
"source": [
|
79
|
+
"For creating other marks (like scatter, pie, bars, etc.), only step 3 needs to be changed. Lets look a simple example to create a bar chart:"
|
80
|
+
]
|
81
|
+
},
|
82
|
+
{
|
83
|
+
"cell_type": "code",
|
84
|
+
"execution_count": null,
|
85
|
+
"metadata": {},
|
86
|
+
"outputs": [],
|
87
|
+
"source": [
|
88
|
+
"# first, let's create two vectors x and y to plot a bar chart\n",
|
89
|
+
"x = list(\"ABCDE\")\n",
|
90
|
+
"y = np.random.rand(5)\n",
|
91
|
+
"\n",
|
92
|
+
"# 1. Create the scales\n",
|
93
|
+
"xs = OrdinalScale() # note the use of ordinal scale to represent categorical data\n",
|
94
|
+
"ys = LinearScale()\n",
|
95
|
+
"\n",
|
96
|
+
"# 2. Create the axes for x and y\n",
|
97
|
+
"xax = Axis(scale=xs, label=\"X\", grid_lines=\"none\") # no grid lines needed for x\n",
|
98
|
+
"yax = Axis(\n",
|
99
|
+
" scale=ys, orientation=\"vertical\", label=\"Y\", tick_format=\".0%\"\n",
|
100
|
+
") # note the use of tick_format to format ticks\n",
|
101
|
+
"\n",
|
102
|
+
"# 3. Create a Bars mark by passing in the scales\n",
|
103
|
+
"# note that Bars object is stored in `bar` object which can be used later to update the plot\n",
|
104
|
+
"bar = Bars(x=x, y=y, scales={\"x\": xs, \"y\": ys}, padding=0.2)\n",
|
105
|
+
"\n",
|
106
|
+
"# 4. Create a Figure object by assembling marks and axes\n",
|
107
|
+
"Figure(marks=[bar], axes=[xax, yax], title=\"Simple Bar Chart\")"
|
108
|
+
]
|
109
|
+
},
|
110
|
+
{
|
111
|
+
"cell_type": "markdown",
|
112
|
+
"metadata": {},
|
113
|
+
"source": [
|
114
|
+
"Multiple marks can be rendered in a figure. It's as easy as passing a list of marks when constructing the `Figure` object"
|
115
|
+
]
|
116
|
+
},
|
117
|
+
{
|
118
|
+
"cell_type": "code",
|
119
|
+
"execution_count": null,
|
120
|
+
"metadata": {},
|
121
|
+
"outputs": [],
|
122
|
+
"source": [
|
123
|
+
"# first, let's create two vectors x and y\n",
|
124
|
+
"import numpy as np\n",
|
125
|
+
"\n",
|
126
|
+
"x = np.linspace(-10, 10, 25)\n",
|
127
|
+
"y = 3 * x + 5\n",
|
128
|
+
"y_noise = y + 10 * np.random.randn(25) # add some random noise to y\n",
|
129
|
+
"\n",
|
130
|
+
"# 1. Create the scales\n",
|
131
|
+
"xs = LinearScale()\n",
|
132
|
+
"ys = LinearScale()\n",
|
133
|
+
"\n",
|
134
|
+
"# 2. Create the axes for x and y\n",
|
135
|
+
"xax = Axis(scale=xs, label=\"X\")\n",
|
136
|
+
"yax = Axis(scale=ys, orientation=\"vertical\", label=\"Y\")\n",
|
137
|
+
"\n",
|
138
|
+
"# 3. Create a Lines and Scatter marks by passing in the scales\n",
|
139
|
+
"# additional attributes (stroke_width, colors etc.) can be passed as attributes to the mark objects as needed\n",
|
140
|
+
"line = Lines(x=x, y=y, scales={\"x\": xs, \"y\": ys}, colors=[\"green\"], stroke_width=3)\n",
|
141
|
+
"scatter = Scatter(\n",
|
142
|
+
" x=x, y=y_noise, scales={\"x\": xs, \"y\": ys}, colors=[\"red\"], stroke=\"black\"\n",
|
143
|
+
")\n",
|
144
|
+
"\n",
|
145
|
+
"# 4. Create a Figure object by assembling marks and axes\n",
|
146
|
+
"# pass both the marks (line and scatter) as a list to the marks attribute\n",
|
147
|
+
"Figure(marks=[line, scatter], axes=[xax, yax], title=\"Scatter and Line\")"
|
148
|
+
]
|
149
|
+
},
|
150
|
+
{
|
151
|
+
"cell_type": "markdown",
|
152
|
+
"metadata": {},
|
153
|
+
"source": [
|
154
|
+
"This introduction should be sufficient to get started with the *Object Model*. For detailed examples of rendering individual marks (with all their attributes) please look at the *Object Model* [examples](../Marks/Object Model)"
|
155
|
+
]
|
156
|
+
}
|
157
|
+
],
|
158
|
+
"metadata": {
|
159
|
+
"kernelspec": {
|
160
|
+
"display_name": "Python 3",
|
161
|
+
"language": "python",
|
162
|
+
"name": "python3"
|
163
|
+
},
|
164
|
+
"language_info": {
|
165
|
+
"codemirror_mode": {
|
166
|
+
"name": "ipython",
|
167
|
+
"version": 3
|
168
|
+
},
|
169
|
+
"file_extension": ".py",
|
170
|
+
"mimetype": "text/x-python",
|
171
|
+
"name": "python",
|
172
|
+
"nbconvert_exporter": "python",
|
173
|
+
"pygments_lexer": "ipython3",
|
174
|
+
"version": "3.7.6"
|
175
|
+
}
|
176
|
+
},
|
177
|
+
"nbformat": 4,
|
178
|
+
"nbformat_minor": 1
|
179
|
+
}
|
data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Pyplot.ipynb
ADDED
@@ -0,0 +1,174 @@
|
|
1
|
+
{
|
2
|
+
"cells": [
|
3
|
+
{
|
4
|
+
"cell_type": "markdown",
|
5
|
+
"metadata": {},
|
6
|
+
"source": [
|
7
|
+
"# Pyplot"
|
8
|
+
]
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"cell_type": "markdown",
|
12
|
+
"metadata": {},
|
13
|
+
"source": [
|
14
|
+
"`pyplot` is a context based functional API offering meaningful defaults. It's a concise API and very similar to matplotlib's pyplot. Users new to `bqplot` should use `pyplot` as a starting point. Users create figure and mark objects using `pyplot` functions.\n",
|
15
|
+
"\n",
|
16
|
+
"Steps for building plots in `pyplot`:\n",
|
17
|
+
"1. Create a figure object using plt.figure()\n",
|
18
|
+
"* (Optional steps)\n",
|
19
|
+
" * Scales can be customized using `plt.scales` function\n",
|
20
|
+
" * Axes options can customized by passing a dict to `axes_options` argument in the marks' functions\n",
|
21
|
+
"* Create marks using `pyplot` functions like `plot`, `bar`, `scatter` etc. (All the marks created will be automatically added to the figure object created in step 1)\n",
|
22
|
+
"* Render the figure object using the following approaches:\n",
|
23
|
+
" * Using `plt.show` function which renders the figure in the current context along with toolbar for panzoom etc.\n",
|
24
|
+
" * Using display on the figure object created in step 1 (toolbar doesn't show up in this case)\n",
|
25
|
+
"\n",
|
26
|
+
"`pyplot` also offers many helper functions. A few are listed here:\n",
|
27
|
+
"* plt.xlim: sets the domain bounds of the current 'x' scale\n",
|
28
|
+
"* plt.ylim: sets the domain bounds of the current 'y' scale\n",
|
29
|
+
"* plt.grids: shows/hides the axis grid lines\n",
|
30
|
+
"* plt.xlabel: sets the X-Axis label\n",
|
31
|
+
"* plt.ylabel: sets the Y-Axis label\n",
|
32
|
+
"* plt.hline: draws a horizontal line at a specified level\n",
|
33
|
+
"* plt.vline: draws a vertical line at a specified level\n",
|
34
|
+
"\n",
|
35
|
+
"Let's look at the same examples which were created in the [Object Model Notebook](Object Model.ipynb)"
|
36
|
+
]
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"cell_type": "code",
|
40
|
+
"execution_count": null,
|
41
|
+
"metadata": {},
|
42
|
+
"outputs": [],
|
43
|
+
"source": [
|
44
|
+
"import bqplot.pyplot as plt"
|
45
|
+
]
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"cell_type": "code",
|
49
|
+
"execution_count": null,
|
50
|
+
"metadata": {},
|
51
|
+
"outputs": [],
|
52
|
+
"source": [
|
53
|
+
"# first, let's create two vectors x and y to plot using a Lines mark\n",
|
54
|
+
"import numpy as np\n",
|
55
|
+
"\n",
|
56
|
+
"x = np.linspace(-10, 10, 100)\n",
|
57
|
+
"y = np.sin(x)\n",
|
58
|
+
"\n",
|
59
|
+
"# 1. Create the figure object\n",
|
60
|
+
"fig = plt.figure(title=\"Simple Line Chart\")\n",
|
61
|
+
"\n",
|
62
|
+
"# 2. By default axes are created with basic defaults. If you want to customize the axes create\n",
|
63
|
+
"# a dict and pass it to `axxes_options` argument in the marks\n",
|
64
|
+
"axes_opts = {\"x\": {\"label\": \"X\"}, \"y\": {\"label\": \"Y\"}}\n",
|
65
|
+
"\n",
|
66
|
+
"# 3. Create a Lines mark by calling plt.plot function\n",
|
67
|
+
"line = plt.plot(\n",
|
68
|
+
" x=x, y=y, axes_options=axes_opts\n",
|
69
|
+
") # note that custom axes options are passed here\n",
|
70
|
+
"\n",
|
71
|
+
"# 4. Render the figure using plt.show()\n",
|
72
|
+
"plt.show()"
|
73
|
+
]
|
74
|
+
},
|
75
|
+
{
|
76
|
+
"cell_type": "markdown",
|
77
|
+
"metadata": {},
|
78
|
+
"source": [
|
79
|
+
"For creating other marks (like scatter, pie, bars, etc.), only step 2 needs to be changed. Lets look a simple example to create a bar chart:"
|
80
|
+
]
|
81
|
+
},
|
82
|
+
{
|
83
|
+
"cell_type": "code",
|
84
|
+
"execution_count": null,
|
85
|
+
"metadata": {},
|
86
|
+
"outputs": [],
|
87
|
+
"source": [
|
88
|
+
"# first, let's create two vectors x and y to plot a bar chart\n",
|
89
|
+
"x = list(\"ABCDE\")\n",
|
90
|
+
"y = np.random.rand(5)\n",
|
91
|
+
"\n",
|
92
|
+
"# 1. Create the figure object\n",
|
93
|
+
"fig = plt.figure(title=\"Simple Bar Chart\")\n",
|
94
|
+
"\n",
|
95
|
+
"# 2. Customize the axes options\n",
|
96
|
+
"axes_opts = {\n",
|
97
|
+
" \"x\": {\"label\": \"X\", \"grid_lines\": \"none\"},\n",
|
98
|
+
" \"y\": {\"label\": \"Y\", \"tick_format\": \".0%\"},\n",
|
99
|
+
"}\n",
|
100
|
+
"\n",
|
101
|
+
"# 3. Create a Bars mark by calling plt.bar function\n",
|
102
|
+
"bar = plt.bar(x=x, y=y, padding=0.2, axes_options=axes_opts)\n",
|
103
|
+
"\n",
|
104
|
+
"# 4. directly display the figure object created in step 1 (note that the toolbar no longer shows up)\n",
|
105
|
+
"fig"
|
106
|
+
]
|
107
|
+
},
|
108
|
+
{
|
109
|
+
"cell_type": "markdown",
|
110
|
+
"metadata": {},
|
111
|
+
"source": [
|
112
|
+
"Multiple marks can be rendered in a figure. It's as easy as creating marks one after another. They'll all be added to the same figure!"
|
113
|
+
]
|
114
|
+
},
|
115
|
+
{
|
116
|
+
"cell_type": "code",
|
117
|
+
"execution_count": null,
|
118
|
+
"metadata": {},
|
119
|
+
"outputs": [],
|
120
|
+
"source": [
|
121
|
+
"# first, let's create two vectors x and y\n",
|
122
|
+
"import numpy as np\n",
|
123
|
+
"\n",
|
124
|
+
"x = np.linspace(-10, 10, 25)\n",
|
125
|
+
"y = 3 * x + 5\n",
|
126
|
+
"y_noise = y + 10 * np.random.randn(25) # add some random noise to y\n",
|
127
|
+
"\n",
|
128
|
+
"# 1. Create the figure object\n",
|
129
|
+
"fig = plt.figure(title=\"Scatter and Line\")\n",
|
130
|
+
"\n",
|
131
|
+
"# 3. Create line and scatter marks\n",
|
132
|
+
"# additional attributes (stroke_width, colors etc.) can be passed as attributes to the mark objects as needed\n",
|
133
|
+
"line = plt.plot(x=x, y=y, colors=[\"green\"], stroke_width=3)\n",
|
134
|
+
"scatter = plt.scatter(x=x, y=y_noise, colors=[\"red\"], stroke=\"black\")\n",
|
135
|
+
"\n",
|
136
|
+
"# setting x and y axis labels using pyplot functions. Note that these functions\n",
|
137
|
+
"# should be called only after creating the marks\n",
|
138
|
+
"plt.xlabel(\"X\")\n",
|
139
|
+
"plt.ylabel(\"Y\")\n",
|
140
|
+
"\n",
|
141
|
+
"# 4. render the figure\n",
|
142
|
+
"fig"
|
143
|
+
]
|
144
|
+
},
|
145
|
+
{
|
146
|
+
"cell_type": "markdown",
|
147
|
+
"metadata": {},
|
148
|
+
"source": [
|
149
|
+
"`pyplot` is a simpler and an intuitive API. It's available for all the marks except MarketMap. It should be used in almost all the cases by default since it offers a less verbose API compared to the Object Model. Please refer to the mark [examples](../Marks/Pyplot) using `pyplot` and also this [pyplot example](../Basic Plotting/Pyplot.ipynb) notebook"
|
150
|
+
]
|
151
|
+
}
|
152
|
+
],
|
153
|
+
"metadata": {
|
154
|
+
"kernelspec": {
|
155
|
+
"display_name": "Python 3",
|
156
|
+
"language": "python",
|
157
|
+
"name": "python3"
|
158
|
+
},
|
159
|
+
"language_info": {
|
160
|
+
"codemirror_mode": {
|
161
|
+
"name": "ipython",
|
162
|
+
"version": 3
|
163
|
+
},
|
164
|
+
"file_extension": ".py",
|
165
|
+
"mimetype": "text/x-python",
|
166
|
+
"name": "python",
|
167
|
+
"nbconvert_exporter": "python",
|
168
|
+
"pygments_lexer": "ipython3",
|
169
|
+
"version": "3.7.6"
|
170
|
+
}
|
171
|
+
},
|
172
|
+
"nbformat": 4,
|
173
|
+
"nbformat_minor": 1
|
174
|
+
}
|