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,1888 +0,0 @@
|
|
1
|
-
<div class="cell text_cell">
|
2
|
-
<button class="js-nbinteract-widget">
|
3
|
-
Loading widgets...
|
4
|
-
</button>
|
5
|
-
</div>
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
10
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
11
|
-
<h2 id="7.-Bar-and-Categorical-Data-Plots">7. Bar and Categorical Data Plots<a class="anchor-link" href="#7.-Bar-and-Categorical-Data-Plots">¶</a></h2>
|
12
|
-
</div>
|
13
|
-
</div>
|
14
|
-
</div>
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<div class="
|
19
|
-
cell border-box-sizing code_cell rendered">
|
20
|
-
<div class="input">
|
21
|
-
|
22
|
-
<div class="inner_cell">
|
23
|
-
<div class="input_area">
|
24
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bokeh.io</span> <span class="kn">import</span> <span class="n">show</span><span class="p">,</span> <span class="n">output_notebook</span>
|
25
|
-
<span class="kn">from</span> <span class="nn">bokeh.plotting</span> <span class="kn">import</span> <span class="n">figure</span>
|
26
|
-
</pre></div>
|
27
|
-
|
28
|
-
</div>
|
29
|
-
</div>
|
30
|
-
</div>
|
31
|
-
|
32
|
-
</div>
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
<div class="nbinteract-hide_out
|
37
|
-
cell border-box-sizing code_cell rendered">
|
38
|
-
<div class="input">
|
39
|
-
|
40
|
-
<div class="inner_cell">
|
41
|
-
<div class="input_area">
|
42
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># nbi:hide_out</span>
|
43
|
-
<span class="c1"># Make all outputs INLINE for default (why a hell this is needed !!!)</span>
|
44
|
-
<span class="n">output_notebook</span><span class="p">()</span>
|
45
|
-
</pre></div>
|
46
|
-
|
47
|
-
</div>
|
48
|
-
</div>
|
49
|
-
</div>
|
50
|
-
|
51
|
-
<div class="output_wrapper">
|
52
|
-
<div class="output">
|
53
|
-
|
54
|
-
|
55
|
-
<div class="output_area">
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
<div class="output_html rendered_html output_subarea ">
|
61
|
-
<div class="bk-root">
|
62
|
-
<a href="https://bokeh.org" target="_blank" class="bk-logo bk-logo-small bk-logo-notebook"></a>
|
63
|
-
<span id="1002">Loading BokehJS ...</span>
|
64
|
-
</div>
|
65
|
-
|
66
|
-
</div>
|
67
|
-
|
68
|
-
</div>
|
69
|
-
|
70
|
-
<div class="output_area">
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
<div id="b8e5f426-f2c3-47f6-8c2e-ded54f273046"></div>
|
78
|
-
<div class="output_subarea output_javascript ">
|
79
|
-
<script type="text/javascript">
|
80
|
-
var element = $('#b8e5f426-f2c3-47f6-8c2e-ded54f273046');
|
81
|
-
(function(root) {
|
82
|
-
function now() {
|
83
|
-
return new Date();
|
84
|
-
}
|
85
|
-
|
86
|
-
const force = true;
|
87
|
-
|
88
|
-
if (typeof root._bokeh_onload_callbacks === "undefined" || force === true) {
|
89
|
-
root._bokeh_onload_callbacks = [];
|
90
|
-
root._bokeh_is_loading = undefined;
|
91
|
-
}
|
92
|
-
|
93
|
-
const JS_MIME_TYPE = 'application/javascript';
|
94
|
-
const HTML_MIME_TYPE = 'text/html';
|
95
|
-
const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';
|
96
|
-
const CLASS_NAME = 'output_bokeh rendered_html';
|
97
|
-
|
98
|
-
/**
|
99
|
-
* Render data to the DOM node
|
100
|
-
*/
|
101
|
-
function render(props, node) {
|
102
|
-
const script = document.createElement("script");
|
103
|
-
node.appendChild(script);
|
104
|
-
}
|
105
|
-
|
106
|
-
/**
|
107
|
-
* Handle when an output is cleared or removed
|
108
|
-
*/
|
109
|
-
function handleClearOutput(event, handle) {
|
110
|
-
const cell = handle.cell;
|
111
|
-
|
112
|
-
const id = cell.output_area._bokeh_element_id;
|
113
|
-
const server_id = cell.output_area._bokeh_server_id;
|
114
|
-
// Clean up Bokeh references
|
115
|
-
if (id != null && id in Bokeh.index) {
|
116
|
-
Bokeh.index[id].model.document.clear();
|
117
|
-
delete Bokeh.index[id];
|
118
|
-
}
|
119
|
-
|
120
|
-
if (server_id !== undefined) {
|
121
|
-
// Clean up Bokeh references
|
122
|
-
const cmd_clean = "from bokeh.io.state import curstate; print(curstate().uuid_to_server['" + server_id + "'].get_sessions()[0].document.roots[0]._id)";
|
123
|
-
cell.notebook.kernel.execute(cmd_clean, {
|
124
|
-
iopub: {
|
125
|
-
output: function(msg) {
|
126
|
-
const id = msg.content.text.trim();
|
127
|
-
if (id in Bokeh.index) {
|
128
|
-
Bokeh.index[id].model.document.clear();
|
129
|
-
delete Bokeh.index[id];
|
130
|
-
}
|
131
|
-
}
|
132
|
-
}
|
133
|
-
});
|
134
|
-
// Destroy server and session
|
135
|
-
const cmd_destroy = "import bokeh.io.notebook as ion; ion.destroy_server('" + server_id + "')";
|
136
|
-
cell.notebook.kernel.execute(cmd_destroy);
|
137
|
-
}
|
138
|
-
}
|
139
|
-
|
140
|
-
/**
|
141
|
-
* Handle when a new output is added
|
142
|
-
*/
|
143
|
-
function handleAddOutput(event, handle) {
|
144
|
-
const output_area = handle.output_area;
|
145
|
-
const output = handle.output;
|
146
|
-
|
147
|
-
// limit handleAddOutput to display_data with EXEC_MIME_TYPE content only
|
148
|
-
if ((output.output_type != "display_data") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {
|
149
|
-
return
|
150
|
-
}
|
151
|
-
|
152
|
-
const toinsert = output_area.element.find("." + CLASS_NAME.split(' ')[0]);
|
153
|
-
|
154
|
-
if (output.metadata[EXEC_MIME_TYPE]["id"] !== undefined) {
|
155
|
-
toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];
|
156
|
-
// store reference to embed id on output_area
|
157
|
-
output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE]["id"];
|
158
|
-
}
|
159
|
-
if (output.metadata[EXEC_MIME_TYPE]["server_id"] !== undefined) {
|
160
|
-
const bk_div = document.createElement("div");
|
161
|
-
bk_div.innerHTML = output.data[HTML_MIME_TYPE];
|
162
|
-
const script_attrs = bk_div.children[0].attributes;
|
163
|
-
for (let i = 0; i < script_attrs.length; i++) {
|
164
|
-
toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);
|
165
|
-
toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent
|
166
|
-
}
|
167
|
-
// store reference to server id on output_area
|
168
|
-
output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE]["server_id"];
|
169
|
-
}
|
170
|
-
}
|
171
|
-
|
172
|
-
function register_renderer(events, OutputArea) {
|
173
|
-
|
174
|
-
function append_mime(data, metadata, element) {
|
175
|
-
// create a DOM node to render to
|
176
|
-
const toinsert = this.create_output_subarea(
|
177
|
-
metadata,
|
178
|
-
CLASS_NAME,
|
179
|
-
EXEC_MIME_TYPE
|
180
|
-
);
|
181
|
-
this.keyboard_manager.register_events(toinsert);
|
182
|
-
// Render to node
|
183
|
-
const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};
|
184
|
-
render(props, toinsert[toinsert.length - 1]);
|
185
|
-
element.append(toinsert);
|
186
|
-
return toinsert
|
187
|
-
}
|
188
|
-
|
189
|
-
/* Handle when an output is cleared or removed */
|
190
|
-
events.on('clear_output.CodeCell', handleClearOutput);
|
191
|
-
events.on('delete.Cell', handleClearOutput);
|
192
|
-
|
193
|
-
/* Handle when a new output is added */
|
194
|
-
events.on('output_added.OutputArea', handleAddOutput);
|
195
|
-
|
196
|
-
/**
|
197
|
-
* Register the mime type and append_mime function with output_area
|
198
|
-
*/
|
199
|
-
OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {
|
200
|
-
/* Is output safe? */
|
201
|
-
safe: true,
|
202
|
-
/* Index of renderer in `output_area.display_order` */
|
203
|
-
index: 0
|
204
|
-
});
|
205
|
-
}
|
206
|
-
|
207
|
-
// register the mime type if in Jupyter Notebook environment and previously unregistered
|
208
|
-
if (root.Jupyter !== undefined) {
|
209
|
-
const events = require('base/js/events');
|
210
|
-
const OutputArea = require('notebook/js/outputarea').OutputArea;
|
211
|
-
|
212
|
-
if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {
|
213
|
-
register_renderer(events, OutputArea);
|
214
|
-
}
|
215
|
-
}
|
216
|
-
if (typeof (root._bokeh_timeout) === "undefined" || force === true) {
|
217
|
-
root._bokeh_timeout = Date.now() + 5000;
|
218
|
-
root._bokeh_failed_load = false;
|
219
|
-
}
|
220
|
-
|
221
|
-
const NB_LOAD_WARNING = {'data': {'text/html':
|
222
|
-
"<div style='background-color: #fdd'>\n"+
|
223
|
-
"<p>\n"+
|
224
|
-
"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \n"+
|
225
|
-
"may be due to a slow or bad network connection. Possible fixes:\n"+
|
226
|
-
"</p>\n"+
|
227
|
-
"<ul>\n"+
|
228
|
-
"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\n"+
|
229
|
-
"<li>use INLINE resources instead, as so:</li>\n"+
|
230
|
-
"</ul>\n"+
|
231
|
-
"<code>\n"+
|
232
|
-
"from bokeh.resources import INLINE\n"+
|
233
|
-
"output_notebook(resources=INLINE)\n"+
|
234
|
-
"</code>\n"+
|
235
|
-
"</div>"}};
|
236
|
-
|
237
|
-
function display_loaded() {
|
238
|
-
const el = document.getElementById("1002");
|
239
|
-
if (el != null) {
|
240
|
-
el.textContent = "BokehJS is loading...";
|
241
|
-
}
|
242
|
-
if (root.Bokeh !== undefined) {
|
243
|
-
if (el != null) {
|
244
|
-
el.textContent = "BokehJS " + root.Bokeh.version + " successfully loaded.";
|
245
|
-
}
|
246
|
-
} else if (Date.now() < root._bokeh_timeout) {
|
247
|
-
setTimeout(display_loaded, 100)
|
248
|
-
}
|
249
|
-
}
|
250
|
-
|
251
|
-
function run_callbacks() {
|
252
|
-
try {
|
253
|
-
root._bokeh_onload_callbacks.forEach(function(callback) {
|
254
|
-
if (callback != null)
|
255
|
-
callback();
|
256
|
-
});
|
257
|
-
} finally {
|
258
|
-
delete root._bokeh_onload_callbacks
|
259
|
-
}
|
260
|
-
console.debug("Bokeh: all callbacks have finished");
|
261
|
-
}
|
262
|
-
|
263
|
-
function load_libs(css_urls, js_urls, callback) {
|
264
|
-
if (css_urls == null) css_urls = [];
|
265
|
-
if (js_urls == null) js_urls = [];
|
266
|
-
|
267
|
-
root._bokeh_onload_callbacks.push(callback);
|
268
|
-
if (root._bokeh_is_loading > 0) {
|
269
|
-
console.debug("Bokeh: BokehJS is being loaded, scheduling callback at", now());
|
270
|
-
return null;
|
271
|
-
}
|
272
|
-
if (js_urls == null || js_urls.length === 0) {
|
273
|
-
run_callbacks();
|
274
|
-
return null;
|
275
|
-
}
|
276
|
-
console.debug("Bokeh: BokehJS not loaded, scheduling load and callback at", now());
|
277
|
-
root._bokeh_is_loading = css_urls.length + js_urls.length;
|
278
|
-
|
279
|
-
function on_load() {
|
280
|
-
root._bokeh_is_loading--;
|
281
|
-
if (root._bokeh_is_loading === 0) {
|
282
|
-
console.debug("Bokeh: all BokehJS libraries/stylesheets loaded");
|
283
|
-
run_callbacks()
|
284
|
-
}
|
285
|
-
}
|
286
|
-
|
287
|
-
function on_error(url) {
|
288
|
-
console.error("failed to load " + url);
|
289
|
-
}
|
290
|
-
|
291
|
-
for (let i = 0; i < css_urls.length; i++) {
|
292
|
-
const url = css_urls[i];
|
293
|
-
const element = document.createElement("link");
|
294
|
-
element.onload = on_load;
|
295
|
-
element.onerror = on_error.bind(null, url);
|
296
|
-
element.rel = "stylesheet";
|
297
|
-
element.type = "text/css";
|
298
|
-
element.href = url;
|
299
|
-
console.debug("Bokeh: injecting link tag for BokehJS stylesheet: ", url);
|
300
|
-
document.body.appendChild(element);
|
301
|
-
}
|
302
|
-
|
303
|
-
for (let i = 0; i < js_urls.length; i++) {
|
304
|
-
const url = js_urls[i];
|
305
|
-
const element = document.createElement('script');
|
306
|
-
element.onload = on_load;
|
307
|
-
element.onerror = on_error.bind(null, url);
|
308
|
-
element.async = false;
|
309
|
-
element.src = url;
|
310
|
-
console.debug("Bokeh: injecting script tag for BokehJS library: ", url);
|
311
|
-
document.head.appendChild(element);
|
312
|
-
}
|
313
|
-
};
|
314
|
-
|
315
|
-
function inject_raw_css(css) {
|
316
|
-
const element = document.createElement("style");
|
317
|
-
element.appendChild(document.createTextNode(css));
|
318
|
-
document.body.appendChild(element);
|
319
|
-
}
|
320
|
-
|
321
|
-
const js_urls = ["https://cdn.bokeh.org/bokeh/release/bokeh-2.4.3.min.js", "https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.3.min.js", "https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.3.min.js", "https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.3.min.js", "https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.3.min.js"];
|
322
|
-
const css_urls = [];
|
323
|
-
|
324
|
-
const inline_js = [ function(Bokeh) {
|
325
|
-
Bokeh.set_log_level("info");
|
326
|
-
},
|
327
|
-
function(Bokeh) {
|
328
|
-
}
|
329
|
-
];
|
330
|
-
|
331
|
-
function run_inline_js() {
|
332
|
-
if (root.Bokeh !== undefined || force === true) {
|
333
|
-
for (let i = 0; i < inline_js.length; i++) {
|
334
|
-
inline_js[i].call(root, root.Bokeh);
|
335
|
-
}
|
336
|
-
if (force === true) {
|
337
|
-
display_loaded();
|
338
|
-
}} else if (Date.now() < root._bokeh_timeout) {
|
339
|
-
setTimeout(run_inline_js, 100);
|
340
|
-
} else if (!root._bokeh_failed_load) {
|
341
|
-
console.log("Bokeh: BokehJS failed to load within specified timeout.");
|
342
|
-
root._bokeh_failed_load = true;
|
343
|
-
} else if (force !== true) {
|
344
|
-
const cell = $(document.getElementById("1002")).parents('.cell').data().cell;
|
345
|
-
cell.output_area.append_execute_result(NB_LOAD_WARNING)
|
346
|
-
}
|
347
|
-
}
|
348
|
-
|
349
|
-
if (root._bokeh_is_loading === 0) {
|
350
|
-
console.debug("Bokeh: BokehJS loaded, going straight to plotting");
|
351
|
-
run_inline_js();
|
352
|
-
} else {
|
353
|
-
load_libs(css_urls, js_urls, function() {
|
354
|
-
console.debug("Bokeh: BokehJS plotting callback run at", now());
|
355
|
-
run_inline_js();
|
356
|
-
});
|
357
|
-
}
|
358
|
-
}(window));
|
359
|
-
</script>
|
360
|
-
</div>
|
361
|
-
|
362
|
-
</div>
|
363
|
-
|
364
|
-
</div>
|
365
|
-
</div>
|
366
|
-
|
367
|
-
</div>
|
368
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
369
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
370
|
-
<h3 id="Basic-Bar-Charts">Basic Bar Charts<a class="anchor-link" href="#Basic-Bar-Charts">¶</a></h3><p>Bar charts are a common and important type of plot. Bokeh makes it simple to create all sorts of stacked or nested bar charts, and to deal with categorical data in general.
|
371
|
-
The example below shows a simple bar chart created using the <code>vbar</code> method for drawing vertical bars. (There is a corresponding <code>hbar</code> for horizontal bars.) We also set a few plot properties to make the chart look nicer, see chapter <strong>Styles and Themes</strong> for information about visual properties.</p>
|
372
|
-
|
373
|
-
</div>
|
374
|
-
</div>
|
375
|
-
</div>
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
<div class="
|
380
|
-
cell border-box-sizing code_cell rendered">
|
381
|
-
<div class="input">
|
382
|
-
|
383
|
-
<div class="inner_cell">
|
384
|
-
<div class="input_area">
|
385
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Here is a list of categorical values (or factors)</span>
|
386
|
-
<span class="n">fruits</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'Apples'</span><span class="p">,</span> <span class="s1">'Pears'</span><span class="p">,</span> <span class="s1">'Nectarines'</span><span class="p">,</span> <span class="s1">'Plums'</span><span class="p">,</span> <span class="s1">'Grapes'</span><span class="p">,</span> <span class="s1">'Strawberries'</span><span class="p">]</span>
|
387
|
-
|
388
|
-
<span class="c1"># Set the x_range to the list of categories above</span>
|
389
|
-
<span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span>
|
390
|
-
<span class="n">plot_height</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span>
|
391
|
-
<span class="n">plot_width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
|
392
|
-
<span class="n">x_range</span><span class="o">=</span><span class="n">fruits</span><span class="p">,</span>
|
393
|
-
<span class="n">title</span><span class="o">=</span><span class="s2">"Fruit Counts"</span>
|
394
|
-
<span class="p">)</span>
|
395
|
-
|
396
|
-
<span class="c1"># Categorical values can also be used as coordinates</span>
|
397
|
-
<span class="n">p</span><span class="o">.</span><span class="n">vbar</span><span class="p">(</span>
|
398
|
-
<span class="n">x</span><span class="o">=</span><span class="n">fruits</span><span class="p">,</span>
|
399
|
-
<span class="n">top</span><span class="o">=</span><span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">6</span><span class="p">],</span>
|
400
|
-
<span class="n">width</span><span class="o">=</span><span class="mf">0.9</span>
|
401
|
-
<span class="p">)</span>
|
402
|
-
|
403
|
-
<span class="c1"># Set some properties to make the plot look better</span>
|
404
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xgrid</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="kc">None</span>
|
405
|
-
<span class="n">p</span><span class="o">.</span><span class="n">y_range</span><span class="o">.</span><span class="n">start</span> <span class="o">=</span> <span class="mi">0</span>
|
406
|
-
|
407
|
-
<span class="c1"># show the results</span>
|
408
|
-
<span class="n">show</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
|
409
|
-
</pre></div>
|
410
|
-
|
411
|
-
</div>
|
412
|
-
</div>
|
413
|
-
</div>
|
414
|
-
|
415
|
-
<div class="output_wrapper">
|
416
|
-
<div class="output">
|
417
|
-
|
418
|
-
|
419
|
-
<div class="output_area">
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
<div class="output_html rendered_html output_subarea ">
|
425
|
-
|
426
|
-
<div class="bk-root" id="d3c87e97-4e3d-4b40-b001-7eaff8258cfb" data-root-id="1003"></div>
|
427
|
-
|
428
|
-
</div>
|
429
|
-
|
430
|
-
</div>
|
431
|
-
|
432
|
-
<div class="output_area">
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
<div id="1492fbd0-4939-488d-939e-65a0bf4352b1"></div>
|
440
|
-
<div class="output_subarea output_javascript ">
|
441
|
-
<script type="text/javascript">
|
442
|
-
var element = $('#1492fbd0-4939-488d-939e-65a0bf4352b1');
|
443
|
-
(function(root) {
|
444
|
-
function embed_document(root) {
|
445
|
-
const docs_json = {"a6933a3a-239f-45c1-b48e-7136ba3ba9c2":{"defs":[],"roots":{"references":[{"attributes":{"below":[{"id":"1014"}],"center":[{"id":"1016"},{"id":"1020"}],"height":400,"left":[{"id":"1017"}],"renderers":[{"id":"1039"}],"title":{"id":"1004"},"toolbar":{"id":"1028"},"width":800,"x_range":{"id":"1006"},"x_scale":{"id":"1010"},"y_range":{"id":"1008"},"y_scale":{"id":"1012"}},"id":"1003","subtype":"Figure","type":"Plot"},{"attributes":{"coordinates":null,"formatter":{"id":"1043"},"group":null,"major_label_policy":{"id":"1044"},"ticker":{"id":"1018"}},"id":"1017","type":"LinearAxis"},{"attributes":{},"id":"1047","type":"AllLabels"},{"attributes":{"bottom_units":"screen","coordinates":null,"fill_alpha":0.5,"fill_color":"lightgrey","group":null,"left_units":"screen","level":"overlay","line_alpha":1.0,"line_color":"black","line_dash":[4,4],"line_width":2,"right_units":"screen","syncable":false,"top_units":"screen"},"id":"1027","type":"BoxAnnotation"},{"attributes":{"tools":[{"id":"1021"},{"id":"1022"},{"id":"1023"},{"id":"1024"},{"id":"1025"},{"id":"1026"}]},"id":"1028","type":"Toolbar"},{"attributes":{"axis":{"id":"1017"},"coordinates":null,"dimension":1,"group":null,"ticker":null},"id":"1020","type":"Grid"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.2},"line_alpha":{"value":0.2},"line_color":{"value":"#1f77b4"},"top":{"field":"top"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1038","type":"VBar"},{"attributes":{"data":{"top":[5,3,4,2,4,6],"x":["Apples","Pears","Nectarines","Plums","Grapes","Strawberries"]},"selected":{"id":"1049"},"selection_policy":{"id":"1048"}},"id":"1035","type":"ColumnDataSource"},{"attributes":{"coordinates":null,"data_source":{"id":"1035"},"glyph":{"id":"1036"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1038"},"nonselection_glyph":{"id":"1037"},"view":{"id":"1040"}},"id":"1039","type":"GlyphRenderer"},{"attributes":{"factors":["Apples","Pears","Nectarines","Plums","Grapes","Strawberries"]},"id":"1006","type":"FactorRange"},{"attributes":{},"id":"1044","type":"AllLabels"},{"attributes":{},"id":"1021","type":"PanTool"},{"attributes":{"coordinates":null,"group":null,"text":"Fruit Counts"},"id":"1004","type":"Title"},{"attributes":{},"id":"1025","type":"ResetTool"},{"attributes":{},"id":"1022","type":"WheelZoomTool"},{"attributes":{"start":0},"id":"1008","type":"DataRange1d"},{"attributes":{"overlay":{"id":"1027"}},"id":"1023","type":"BoxZoomTool"},{"attributes":{"axis":{"id":"1014"},"coordinates":null,"grid_line_color":null,"group":null,"ticker":null},"id":"1016","type":"Grid"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.1},"line_alpha":{"value":0.1},"line_color":{"value":"#1f77b4"},"top":{"field":"top"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1037","type":"VBar"},{"attributes":{},"id":"1024","type":"SaveTool"},{"attributes":{"source":{"id":"1035"}},"id":"1040","type":"CDSView"},{"attributes":{},"id":"1015","type":"CategoricalTicker"},{"attributes":{},"id":"1026","type":"HelpTool"},{"attributes":{},"id":"1046","type":"CategoricalTickFormatter"},{"attributes":{},"id":"1049","type":"Selection"},{"attributes":{},"id":"1010","type":"CategoricalScale"},{"attributes":{},"id":"1043","type":"BasicTickFormatter"},{"attributes":{},"id":"1012","type":"LinearScale"},{"attributes":{},"id":"1048","type":"UnionRenderers"},{"attributes":{"coordinates":null,"formatter":{"id":"1046"},"group":null,"major_label_policy":{"id":"1047"},"ticker":{"id":"1015"}},"id":"1014","type":"CategoricalAxis"},{"attributes":{},"id":"1018","type":"BasicTicker"},{"attributes":{"fill_color":{"value":"#1f77b4"},"line_color":{"value":"#1f77b4"},"top":{"field":"top"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1036","type":"VBar"}],"root_ids":["1003"]},"title":"Bokeh Application","version":"2.4.3"}};
|
446
|
-
const render_items = [{"docid":"a6933a3a-239f-45c1-b48e-7136ba3ba9c2","root_ids":["1003"],"roots":{"1003":"d3c87e97-4e3d-4b40-b001-7eaff8258cfb"}}];
|
447
|
-
root.Bokeh.embed.embed_items_notebook(docs_json, render_items);
|
448
|
-
}
|
449
|
-
if (root.Bokeh !== undefined) {
|
450
|
-
embed_document(root);
|
451
|
-
} else {
|
452
|
-
let attempts = 0;
|
453
|
-
const timer = setInterval(function(root) {
|
454
|
-
if (root.Bokeh !== undefined) {
|
455
|
-
clearInterval(timer);
|
456
|
-
embed_document(root);
|
457
|
-
} else {
|
458
|
-
attempts++;
|
459
|
-
if (attempts > 100) {
|
460
|
-
clearInterval(timer);
|
461
|
-
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
462
|
-
}
|
463
|
-
}
|
464
|
-
}, 10, root)
|
465
|
-
}
|
466
|
-
})(window);
|
467
|
-
</script>
|
468
|
-
</div>
|
469
|
-
|
470
|
-
</div>
|
471
|
-
|
472
|
-
</div>
|
473
|
-
</div>
|
474
|
-
|
475
|
-
</div>
|
476
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
477
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
478
|
-
<p>When we want to create a plot with a categorical range, we pass the ordered list of categorical values to <code>figure</code>, e.g. <code>x_range=['a', 'b', 'c']</code>. In the plot above, we passed the list of fruits as <code>x_range</code>, and we can see those refelected as the x-axis.</p>
|
479
|
-
<p>The <code>vbar</code> glyph method takes an <code>x</code> location for the center of the bar, a <code>top</code> and <code>bottom</code> (which defaults to 0), and a <code>width</code>. When we are using a categorical range as we are here, each category implicitly has width of 1, so setting <code>width=0.9</code> as we have done here makes the bars shrink away from each other. (Another option would be to add some padding to the range.)</p>
|
480
|
-
|
481
|
-
</div>
|
482
|
-
</div>
|
483
|
-
</div>
|
484
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
485
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
486
|
-
<p>Since <code>vbar</code> is a glyph method, we can use it with a <code>ColumnDataSource</code> just as we would with any other glyph. In the example below, we put the data (including color data) in a <code>ColumnDataSource</code> and use that to drive our plot. We also add a legend, see chapter <strong>Adding Annotations.ipynb</strong> for more information about legends and other annotations.</p>
|
487
|
-
|
488
|
-
</div>
|
489
|
-
</div>
|
490
|
-
</div>
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
<div class="
|
495
|
-
cell border-box-sizing code_cell rendered">
|
496
|
-
<div class="input">
|
497
|
-
|
498
|
-
<div class="inner_cell">
|
499
|
-
<div class="input_area">
|
500
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bokeh.models</span> <span class="kn">import</span> <span class="n">ColumnDataSource</span>
|
501
|
-
<span class="kn">from</span> <span class="nn">bokeh.palettes</span> <span class="kn">import</span> <span class="n">Spectral6</span>
|
502
|
-
|
503
|
-
<span class="n">fruits</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'Apples'</span><span class="p">,</span> <span class="s1">'Pears'</span><span class="p">,</span> <span class="s1">'Nectarines'</span><span class="p">,</span> <span class="s1">'Plums'</span><span class="p">,</span> <span class="s1">'Grapes'</span><span class="p">,</span> <span class="s1">'Strawberries'</span><span class="p">]</span>
|
504
|
-
<span class="n">counts</span> <span class="o">=</span> <span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">6</span><span class="p">]</span>
|
505
|
-
|
506
|
-
<span class="n">source</span> <span class="o">=</span> <span class="n">ColumnDataSource</span><span class="p">(</span>
|
507
|
-
<span class="n">data</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span>
|
508
|
-
<span class="n">fruits</span><span class="o">=</span><span class="n">fruits</span><span class="p">,</span>
|
509
|
-
<span class="n">counts</span><span class="o">=</span><span class="n">counts</span><span class="p">,</span>
|
510
|
-
<span class="n">color</span><span class="o">=</span><span class="n">Spectral6</span>
|
511
|
-
<span class="p">)</span>
|
512
|
-
<span class="p">)</span>
|
513
|
-
|
514
|
-
<span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span>
|
515
|
-
<span class="n">plot_height</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span>
|
516
|
-
<span class="n">plot_width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
|
517
|
-
<span class="n">x_range</span><span class="o">=</span><span class="n">fruits</span><span class="p">,</span>
|
518
|
-
<span class="n">y_range</span><span class="o">=</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">9</span><span class="p">),</span>
|
519
|
-
<span class="n">title</span><span class="o">=</span><span class="s2">"Fruit Counts"</span>
|
520
|
-
<span class="p">)</span>
|
521
|
-
<span class="n">p</span><span class="o">.</span><span class="n">vbar</span><span class="p">(</span>
|
522
|
-
<span class="n">x</span><span class="o">=</span><span class="s1">'fruits'</span><span class="p">,</span>
|
523
|
-
<span class="n">top</span><span class="o">=</span><span class="s1">'counts'</span><span class="p">,</span>
|
524
|
-
<span class="n">width</span><span class="o">=</span><span class="mf">0.9</span><span class="p">,</span>
|
525
|
-
<span class="n">color</span><span class="o">=</span><span class="s1">'color'</span><span class="p">,</span>
|
526
|
-
<span class="n">legend_field</span><span class="o">=</span><span class="s2">"fruits"</span><span class="p">,</span>
|
527
|
-
<span class="n">source</span><span class="o">=</span><span class="n">source</span>
|
528
|
-
<span class="p">)</span>
|
529
|
-
|
530
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xgrid</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="kc">None</span>
|
531
|
-
<span class="n">p</span><span class="o">.</span><span class="n">legend</span><span class="o">.</span><span class="n">orientation</span> <span class="o">=</span> <span class="s2">"horizontal"</span>
|
532
|
-
<span class="n">p</span><span class="o">.</span><span class="n">legend</span><span class="o">.</span><span class="n">location</span> <span class="o">=</span> <span class="s2">"top_center"</span>
|
533
|
-
|
534
|
-
<span class="c1"># show the results</span>
|
535
|
-
<span class="n">show</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
|
536
|
-
</pre></div>
|
537
|
-
|
538
|
-
</div>
|
539
|
-
</div>
|
540
|
-
</div>
|
541
|
-
|
542
|
-
<div class="output_wrapper">
|
543
|
-
<div class="output">
|
544
|
-
|
545
|
-
|
546
|
-
<div class="output_area">
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
<div class="output_html rendered_html output_subarea ">
|
552
|
-
|
553
|
-
<div class="bk-root" id="7fe397d8-e3ba-4b54-bba4-e62daa6cfe13" data-root-id="1102"></div>
|
554
|
-
|
555
|
-
</div>
|
556
|
-
|
557
|
-
</div>
|
558
|
-
|
559
|
-
<div class="output_area">
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
<div id="98a07ade-9f58-424c-8bd4-ff1c63868b5f"></div>
|
567
|
-
<div class="output_subarea output_javascript ">
|
568
|
-
<script type="text/javascript">
|
569
|
-
var element = $('#98a07ade-9f58-424c-8bd4-ff1c63868b5f');
|
570
|
-
(function(root) {
|
571
|
-
function embed_document(root) {
|
572
|
-
const docs_json = {"f005f898-87cb-4474-a7e9-e26d0bf95d0b":{"defs":[],"roots":{"references":[{"attributes":{"below":[{"id":"1113"}],"center":[{"id":"1115"},{"id":"1119"},{"id":"1150"}],"height":400,"left":[{"id":"1116"}],"renderers":[{"id":"1138"}],"title":{"id":"1103"},"toolbar":{"id":"1127"},"width":800,"x_range":{"id":"1105"},"x_scale":{"id":"1109"},"y_range":{"id":"1107"},"y_scale":{"id":"1111"}},"id":"1102","subtype":"Figure","type":"Plot"},{"attributes":{"coordinates":null,"data_source":{"id":"1101"},"glyph":{"id":"1135"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1137"},"nonselection_glyph":{"id":"1136"},"view":{"id":"1139"}},"id":"1138","type":"GlyphRenderer"},{"attributes":{"source":{"id":"1101"}},"id":"1139","type":"CDSView"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"field":"color"},"hatch_alpha":{"value":0.2},"hatch_color":{"field":"color"},"line_alpha":{"value":0.2},"line_color":{"field":"color"},"top":{"field":"counts"},"width":{"value":0.9},"x":{"field":"fruits"}},"id":"1137","type":"VBar"},{"attributes":{"coordinates":null,"group":null,"items":[{"id":"1151"}],"location":"top_center","orientation":"horizontal"},"id":"1150","type":"Legend"},{"attributes":{"fill_color":{"field":"color"},"hatch_color":{"field":"color"},"line_color":{"field":"color"},"top":{"field":"counts"},"width":{"value":0.9},"x":{"field":"fruits"}},"id":"1135","type":"VBar"},{"attributes":{},"id":"1142","type":"BasicTickFormatter"},{"attributes":{},"id":"1120","type":"PanTool"},{"attributes":{"factors":["Apples","Pears","Nectarines","Plums","Grapes","Strawberries"]},"id":"1105","type":"FactorRange"},{"attributes":{"coordinates":null,"group":null,"text":"Fruit Counts"},"id":"1103","type":"Title"},{"attributes":{},"id":"1124","type":"ResetTool"},{"attributes":{},"id":"1121","type":"WheelZoomTool"},{"attributes":{"axis":{"id":"1113"},"coordinates":null,"grid_line_color":null,"group":null,"ticker":null},"id":"1115","type":"Grid"},{"attributes":{"overlay":{"id":"1126"}},"id":"1122","type":"BoxZoomTool"},{"attributes":{},"id":"1143","type":"AllLabels"},{"attributes":{"end":9},"id":"1107","type":"Range1d"},{"attributes":{},"id":"1145","type":"CategoricalTickFormatter"},{"attributes":{},"id":"1123","type":"SaveTool"},{"attributes":{},"id":"1146","type":"AllLabels"},{"attributes":{},"id":"1147","type":"UnionRenderers"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"field":"color"},"hatch_alpha":{"value":0.1},"hatch_color":{"field":"color"},"line_alpha":{"value":0.1},"line_color":{"field":"color"},"top":{"field":"counts"},"width":{"value":0.9},"x":{"field":"fruits"}},"id":"1136","type":"VBar"},{"attributes":{},"id":"1114","type":"CategoricalTicker"},{"attributes":{},"id":"1125","type":"HelpTool"},{"attributes":{},"id":"1148","type":"Selection"},{"attributes":{},"id":"1109","type":"CategoricalScale"},{"attributes":{},"id":"1111","type":"LinearScale"},{"attributes":{"tools":[{"id":"1120"},{"id":"1121"},{"id":"1122"},{"id":"1123"},{"id":"1124"},{"id":"1125"}]},"id":"1127","type":"Toolbar"},{"attributes":{"coordinates":null,"formatter":{"id":"1145"},"group":null,"major_label_policy":{"id":"1146"},"ticker":{"id":"1114"}},"id":"1113","type":"CategoricalAxis"},{"attributes":{"coordinates":null,"formatter":{"id":"1142"},"group":null,"major_label_policy":{"id":"1143"},"ticker":{"id":"1117"}},"id":"1116","type":"LinearAxis"},{"attributes":{"label":{"field":"fruits"},"renderers":[{"id":"1138"}]},"id":"1151","type":"LegendItem"},{"attributes":{"bottom_units":"screen","coordinates":null,"fill_alpha":0.5,"fill_color":"lightgrey","group":null,"left_units":"screen","level":"overlay","line_alpha":1.0,"line_color":"black","line_dash":[4,4],"line_width":2,"right_units":"screen","syncable":false,"top_units":"screen"},"id":"1126","type":"BoxAnnotation"},{"attributes":{},"id":"1117","type":"BasicTicker"},{"attributes":{"data":{"color":["#3288bd","#99d594","#e6f598","#fee08b","#fc8d59","#d53e4f"],"counts":[5,3,4,2,4,6],"fruits":["Apples","Pears","Nectarines","Plums","Grapes","Strawberries"]},"selected":{"id":"1148"},"selection_policy":{"id":"1147"}},"id":"1101","type":"ColumnDataSource"},{"attributes":{"axis":{"id":"1116"},"coordinates":null,"dimension":1,"group":null,"ticker":null},"id":"1119","type":"Grid"}],"root_ids":["1102"]},"title":"Bokeh Application","version":"2.4.3"}};
|
573
|
-
const render_items = [{"docid":"f005f898-87cb-4474-a7e9-e26d0bf95d0b","root_ids":["1102"],"roots":{"1102":"7fe397d8-e3ba-4b54-bba4-e62daa6cfe13"}}];
|
574
|
-
root.Bokeh.embed.embed_items_notebook(docs_json, render_items);
|
575
|
-
}
|
576
|
-
if (root.Bokeh !== undefined) {
|
577
|
-
embed_document(root);
|
578
|
-
} else {
|
579
|
-
let attempts = 0;
|
580
|
-
const timer = setInterval(function(root) {
|
581
|
-
if (root.Bokeh !== undefined) {
|
582
|
-
clearInterval(timer);
|
583
|
-
embed_document(root);
|
584
|
-
} else {
|
585
|
-
attempts++;
|
586
|
-
if (attempts > 100) {
|
587
|
-
clearInterval(timer);
|
588
|
-
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
589
|
-
}
|
590
|
-
}
|
591
|
-
}, 10, root)
|
592
|
-
}
|
593
|
-
})(window);
|
594
|
-
</script>
|
595
|
-
</div>
|
596
|
-
|
597
|
-
</div>
|
598
|
-
|
599
|
-
</div>
|
600
|
-
</div>
|
601
|
-
|
602
|
-
</div>
|
603
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
604
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
605
|
-
<h3 id="Stacked-Bars">Stacked Bars<a class="anchor-link" href="#Stacked-Bars">¶</a></h3><p>It's often desirable to stack bars together. Bokeh makes this straightforward using the <code>vbar_stack</code> and <code>hbar_stack</code> methods. When passing data to one of these methods, the data source should have a series for each "row" in the stack. You will provide an ordered list of column names to stack together from the data source.</p>
|
606
|
-
<p>In the example below, we see simulated data for fruit exports (positive values) and imports (negative values) stacked using two calls to <code>hbar_stack</code>. The values in the columns for each year are ordered according to the <code>fruits</code>, i.e. this is not a "tidy" data format.</p>
|
607
|
-
|
608
|
-
</div>
|
609
|
-
</div>
|
610
|
-
</div>
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
<div class="
|
615
|
-
cell border-box-sizing code_cell rendered">
|
616
|
-
<div class="input">
|
617
|
-
|
618
|
-
<div class="inner_cell">
|
619
|
-
<div class="input_area">
|
620
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bokeh.palettes</span> <span class="kn">import</span> <span class="n">GnBu3</span><span class="p">,</span> <span class="n">OrRd3</span>
|
621
|
-
|
622
|
-
<span class="n">years</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'2015'</span><span class="p">,</span> <span class="s1">'2016'</span><span class="p">,</span> <span class="s1">'2017'</span><span class="p">]</span>
|
623
|
-
<span class="n">exports</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'fruits'</span> <span class="p">:</span> <span class="n">fruits</span><span class="p">,</span>
|
624
|
-
<span class="s1">'2015'</span> <span class="p">:</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">],</span>
|
625
|
-
<span class="s1">'2016'</span> <span class="p">:</span> <span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">6</span><span class="p">],</span>
|
626
|
-
<span class="s1">'2017'</span> <span class="p">:</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">]}</span>
|
627
|
-
<span class="n">imports</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'fruits'</span> <span class="p">:</span> <span class="n">fruits</span><span class="p">,</span>
|
628
|
-
<span class="s1">'2015'</span> <span class="p">:</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">3</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">],</span>
|
629
|
-
<span class="s1">'2016'</span> <span class="p">:</span> <span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">3</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">],</span>
|
630
|
-
<span class="s1">'2017'</span> <span class="p">:</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">]}</span>
|
631
|
-
|
632
|
-
<span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span>
|
633
|
-
<span class="n">plot_height</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span>
|
634
|
-
<span class="n">plot_width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
|
635
|
-
<span class="n">y_range</span><span class="o">=</span><span class="n">fruits</span><span class="p">,</span>
|
636
|
-
<span class="n">x_range</span><span class="o">=</span><span class="p">(</span><span class="o">-</span><span class="mi">16</span><span class="p">,</span> <span class="mi">16</span><span class="p">),</span>
|
637
|
-
<span class="n">title</span><span class="o">=</span><span class="s2">"Fruit import/export, by year"</span>
|
638
|
-
<span class="p">)</span>
|
639
|
-
|
640
|
-
<span class="n">p</span><span class="o">.</span><span class="n">hbar_stack</span><span class="p">(</span>
|
641
|
-
<span class="n">years</span><span class="p">,</span>
|
642
|
-
<span class="n">y</span><span class="o">=</span><span class="s1">'fruits'</span><span class="p">,</span>
|
643
|
-
<span class="n">height</span><span class="o">=</span><span class="mf">0.9</span><span class="p">,</span>
|
644
|
-
<span class="n">color</span><span class="o">=</span><span class="n">GnBu3</span><span class="p">,</span>
|
645
|
-
<span class="n">legend_label</span><span class="o">=</span><span class="p">[</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> exports"</span> <span class="o">%</span> <span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">years</span><span class="p">],</span>
|
646
|
-
<span class="n">source</span><span class="o">=</span><span class="n">ColumnDataSource</span><span class="p">(</span><span class="n">exports</span><span class="p">)</span>
|
647
|
-
<span class="p">)</span>
|
648
|
-
|
649
|
-
<span class="n">p</span><span class="o">.</span><span class="n">hbar_stack</span><span class="p">(</span>
|
650
|
-
<span class="n">years</span><span class="p">,</span>
|
651
|
-
<span class="n">y</span><span class="o">=</span><span class="s1">'fruits'</span><span class="p">,</span>
|
652
|
-
<span class="n">height</span><span class="o">=</span><span class="mf">0.9</span><span class="p">,</span>
|
653
|
-
<span class="n">color</span><span class="o">=</span><span class="n">OrRd3</span><span class="p">,</span>
|
654
|
-
<span class="n">legend_label</span><span class="o">=</span><span class="p">[</span><span class="s2">"</span><span class="si">%s</span><span class="s2"> imports"</span> <span class="o">%</span> <span class="n">x</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">years</span><span class="p">],</span>
|
655
|
-
<span class="n">source</span><span class="o">=</span><span class="n">ColumnDataSource</span><span class="p">(</span><span class="n">imports</span><span class="p">)</span>
|
656
|
-
<span class="p">)</span>
|
657
|
-
|
658
|
-
<span class="n">p</span><span class="o">.</span><span class="n">y_range</span><span class="o">.</span><span class="n">range_padding</span> <span class="o">=</span> <span class="mf">0.1</span>
|
659
|
-
<span class="n">p</span><span class="o">.</span><span class="n">ygrid</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="kc">None</span>
|
660
|
-
<span class="n">p</span><span class="o">.</span><span class="n">legend</span><span class="o">.</span><span class="n">location</span> <span class="o">=</span> <span class="s2">"center_left"</span>
|
661
|
-
|
662
|
-
<span class="c1"># show the results</span>
|
663
|
-
<span class="n">show</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
|
664
|
-
</pre></div>
|
665
|
-
|
666
|
-
</div>
|
667
|
-
</div>
|
668
|
-
</div>
|
669
|
-
|
670
|
-
<div class="output_wrapper">
|
671
|
-
<div class="output">
|
672
|
-
|
673
|
-
|
674
|
-
<div class="output_area">
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
<div class="output_html rendered_html output_subarea ">
|
680
|
-
|
681
|
-
<div class="bk-root" id="6c68f943-2315-4fdd-8976-d7ae6b9d8dbf" data-root-id="1222"></div>
|
682
|
-
|
683
|
-
</div>
|
684
|
-
|
685
|
-
</div>
|
686
|
-
|
687
|
-
<div class="output_area">
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
<div id="677b5670-d184-4b91-a7c5-38b34656b9e7"></div>
|
695
|
-
<div class="output_subarea output_javascript ">
|
696
|
-
<script type="text/javascript">
|
697
|
-
var element = $('#677b5670-d184-4b91-a7c5-38b34656b9e7');
|
698
|
-
(function(root) {
|
699
|
-
function embed_document(root) {
|
700
|
-
const docs_json = {"caa131b0-8413-4d08-a67f-f981e71d897d":{"defs":[],"roots":{"references":[{"attributes":{"below":[{"id":"1233"}],"center":[{"id":"1236"},{"id":"1239"},{"id":"1277"}],"height":400,"left":[{"id":"1237"}],"renderers":[{"id":"1265"},{"id":"1283"},{"id":"1300"},{"id":"1324"},{"id":"1343"},{"id":"1362"}],"title":{"id":"1223"},"toolbar":{"id":"1247"},"width":800,"x_range":{"id":"1225"},"x_scale":{"id":"1229"},"y_range":{"id":"1227"},"y_scale":{"id":"1231"}},"id":"1222","subtype":"Figure","type":"Plot"},{"attributes":{},"id":"1240","type":"PanTool"},{"attributes":{},"id":"1244","type":"ResetTool"},{"attributes":{},"id":"1241","type":"WheelZoomTool"},{"attributes":{"overlay":{"id":"1246"}},"id":"1242","type":"BoxZoomTool"},{"attributes":{},"id":"1243","type":"SaveTool"},{"attributes":{},"id":"1245","type":"HelpTool"},{"attributes":{"source":{"id":"1254"}},"id":"1266","type":"CDSView"},{"attributes":{"tools":[{"id":"1240"},{"id":"1241"},{"id":"1242"},{"id":"1243"},{"id":"1244"},{"id":"1245"}]},"id":"1247","type":"Toolbar"},{"attributes":{"bottom_units":"screen","coordinates":null,"fill_alpha":0.5,"fill_color":"lightgrey","group":null,"left_units":"screen","level":"overlay","line_alpha":1.0,"line_color":"black","line_dash":[4,4],"line_width":2,"right_units":"screen","syncable":false,"top_units":"screen"},"id":"1246","type":"BoxAnnotation"},{"attributes":{"fields":["2015"]},"id":"1257","type":"Stack"},{"attributes":{"fields":[]},"id":"1255","type":"Stack"},{"attributes":{"fields":["2015"]},"id":"1256","type":"Stack"},{"attributes":{"fields":["2015","2016"]},"id":"1259","type":"Stack"},{"attributes":{"fields":["2015","2016"]},"id":"1258","type":"Stack"},{"attributes":{"fields":["2015","2016","2017"]},"id":"1260","type":"Stack"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#43a2ca"},"hatch_alpha":{"value":0.1},"hatch_color":{"value":"#43a2ca"},"height":{"value":0.9},"left":{"expr":{"id":"1255"}},"line_alpha":{"value":0.1},"line_color":{"value":"#43a2ca"},"right":{"expr":{"id":"1256"}},"y":{"field":"fruits"}},"id":"1263","type":"HBar"},{"attributes":{},"id":"1269","type":"CategoricalTickFormatter"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#43a2ca"},"hatch_alpha":{"value":0.2},"hatch_color":{"value":"#43a2ca"},"height":{"value":0.9},"left":{"expr":{"id":"1255"}},"line_alpha":{"value":0.2},"line_color":{"value":"#43a2ca"},"right":{"expr":{"id":"1256"}},"y":{"field":"fruits"}},"id":"1264","type":"HBar"},{"attributes":{"coordinates":null,"data_source":{"id":"1254"},"glyph":{"id":"1262"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1264"},"name":"2015","nonselection_glyph":{"id":"1263"},"view":{"id":"1266"}},"id":"1265","type":"GlyphRenderer"},{"attributes":{"fill_color":{"value":"#43a2ca"},"hatch_color":{"value":"#43a2ca"},"height":{"value":0.9},"left":{"expr":{"id":"1255"}},"line_color":{"value":"#43a2ca"},"right":{"expr":{"id":"1256"}},"y":{"field":"fruits"}},"id":"1262","type":"HBar"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#fee8c8"},"hatch_alpha":{"value":0.2},"hatch_color":{"value":"#fee8c8"},"height":{"value":0.9},"left":{"expr":{"id":"1318"}},"line_alpha":{"value":0.2},"line_color":{"value":"#fee8c8"},"right":{"expr":{"id":"1319"}},"y":{"field":"fruits"}},"id":"1361","type":"HBar"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#fee8c8"},"hatch_alpha":{"value":0.1},"hatch_color":{"value":"#fee8c8"},"height":{"value":0.9},"left":{"expr":{"id":"1318"}},"line_alpha":{"value":0.1},"line_color":{"value":"#fee8c8"},"right":{"expr":{"id":"1319"}},"y":{"field":"fruits"}},"id":"1360","type":"HBar"},{"attributes":{},"id":"1270","type":"AllLabels"},{"attributes":{"coordinates":null,"data_source":{"id":"1313"},"glyph":{"id":"1359"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1361"},"name":"2017","nonselection_glyph":{"id":"1360"},"view":{"id":"1363"}},"id":"1362","type":"GlyphRenderer"},{"attributes":{},"id":"1273","type":"AllLabels"},{"attributes":{"fields":[]},"id":"1314","type":"Stack"},{"attributes":{"source":{"id":"1313"}},"id":"1363","type":"CDSView"},{"attributes":{"fields":["2015"]},"id":"1316","type":"Stack"},{"attributes":{},"id":"1274","type":"UnionRenderers"},{"attributes":{"fields":["2015"]},"id":"1315","type":"Stack"},{"attributes":{},"id":"1272","type":"BasicTickFormatter"},{"attributes":{"label":{"value":"2017 imports"},"renderers":[{"id":"1362"}]},"id":"1376","type":"LegendItem"},{"attributes":{"fields":["2015","2016"]},"id":"1318","type":"Stack"},{"attributes":{},"id":"1275","type":"Selection"},{"attributes":{"fields":["2015","2016"]},"id":"1317","type":"Stack"},{"attributes":{"coordinates":null,"group":null,"items":[{"id":"1278"},{"id":"1295"},{"id":"1312"},{"id":"1338"},{"id":"1357"},{"id":"1376"}],"location":"center_left"},"id":"1277","type":"Legend"},{"attributes":{"fields":["2015","2016","2017"]},"id":"1319","type":"Stack"},{"attributes":{"source":{"id":"1313"}},"id":"1325","type":"CDSView"},{"attributes":{"label":{"value":"2015 exports"},"renderers":[{"id":"1265"}]},"id":"1278","type":"LegendItem"},{"attributes":{"coordinates":null,"data_source":{"id":"1313"},"glyph":{"id":"1321"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1323"},"name":"2015","nonselection_glyph":{"id":"1322"},"view":{"id":"1325"}},"id":"1324","type":"GlyphRenderer"},{"attributes":{"coordinates":null,"data_source":{"id":"1254"},"glyph":{"id":"1280"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1282"},"name":"2016","nonselection_glyph":{"id":"1281"},"view":{"id":"1284"}},"id":"1283","type":"GlyphRenderer"},{"attributes":{"fill_color":{"value":"#e34a33"},"hatch_color":{"value":"#e34a33"},"height":{"value":0.9},"left":{"expr":{"id":"1314"}},"line_color":{"value":"#e34a33"},"right":{"expr":{"id":"1315"}},"y":{"field":"fruits"}},"id":"1321","type":"HBar"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#e34a33"},"hatch_alpha":{"value":0.1},"hatch_color":{"value":"#e34a33"},"height":{"value":0.9},"left":{"expr":{"id":"1314"}},"line_alpha":{"value":0.1},"line_color":{"value":"#e34a33"},"right":{"expr":{"id":"1315"}},"y":{"field":"fruits"}},"id":"1322","type":"HBar"},{"attributes":{"data":{"2015":[2,1,4,3,2,4],"2016":[5,3,4,2,4,6],"2017":[3,2,4,4,5,3],"fruits":["Apples","Pears","Nectarines","Plums","Grapes","Strawberries"]},"selected":{"id":"1275"},"selection_policy":{"id":"1274"}},"id":"1254","type":"ColumnDataSource"},{"attributes":{"fill_color":{"value":"#a8ddb5"},"hatch_color":{"value":"#a8ddb5"},"height":{"value":0.9},"left":{"expr":{"id":"1257"}},"line_color":{"value":"#a8ddb5"},"right":{"expr":{"id":"1258"}},"y":{"field":"fruits"}},"id":"1280","type":"HBar"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#a8ddb5"},"hatch_alpha":{"value":0.2},"hatch_color":{"value":"#a8ddb5"},"height":{"value":0.9},"left":{"expr":{"id":"1257"}},"line_alpha":{"value":0.2},"line_color":{"value":"#a8ddb5"},"right":{"expr":{"id":"1258"}},"y":{"field":"fruits"}},"id":"1282","type":"HBar"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#a8ddb5"},"hatch_alpha":{"value":0.1},"hatch_color":{"value":"#a8ddb5"},"height":{"value":0.9},"left":{"expr":{"id":"1257"}},"line_alpha":{"value":0.1},"line_color":{"value":"#a8ddb5"},"right":{"expr":{"id":"1258"}},"y":{"field":"fruits"}},"id":"1281","type":"HBar"},{"attributes":{"factors":["Apples","Pears","Nectarines","Plums","Grapes","Strawberries"],"range_padding":0.1},"id":"1227","type":"FactorRange"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#e34a33"},"hatch_alpha":{"value":0.2},"hatch_color":{"value":"#e34a33"},"height":{"value":0.9},"left":{"expr":{"id":"1314"}},"line_alpha":{"value":0.2},"line_color":{"value":"#e34a33"},"right":{"expr":{"id":"1315"}},"y":{"field":"fruits"}},"id":"1323","type":"HBar"},{"attributes":{"source":{"id":"1254"}},"id":"1284","type":"CDSView"},{"attributes":{},"id":"1336","type":"Selection"},{"attributes":{},"id":"1335","type":"UnionRenderers"},{"attributes":{"end":16,"start":-16},"id":"1225","type":"Range1d"},{"attributes":{"label":{"value":"2015 imports"},"renderers":[{"id":"1324"}]},"id":"1338","type":"LegendItem"},{"attributes":{"coordinates":null,"group":null,"text":"Fruit import/export, by year"},"id":"1223","type":"Title"},{"attributes":{"source":{"id":"1313"}},"id":"1344","type":"CDSView"},{"attributes":{"coordinates":null,"data_source":{"id":"1313"},"glyph":{"id":"1340"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1342"},"name":"2016","nonselection_glyph":{"id":"1341"},"view":{"id":"1344"}},"id":"1343","type":"GlyphRenderer"},{"attributes":{"label":{"value":"2016 exports"},"renderers":[{"id":"1283"}]},"id":"1295","type":"LegendItem"},{"attributes":{},"id":"1234","type":"BasicTicker"},{"attributes":{"source":{"id":"1254"}},"id":"1301","type":"CDSView"},{"attributes":{"coordinates":null,"data_source":{"id":"1254"},"glyph":{"id":"1297"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1299"},"name":"2017","nonselection_glyph":{"id":"1298"},"view":{"id":"1301"}},"id":"1300","type":"GlyphRenderer"},{"attributes":{},"id":"1229","type":"LinearScale"},{"attributes":{"fill_color":{"value":"#fdbb84"},"hatch_color":{"value":"#fdbb84"},"height":{"value":0.9},"left":{"expr":{"id":"1316"}},"line_color":{"value":"#fdbb84"},"right":{"expr":{"id":"1317"}},"y":{"field":"fruits"}},"id":"1340","type":"HBar"},{"attributes":{"label":{"value":"2017 exports"},"renderers":[{"id":"1300"}]},"id":"1312","type":"LegendItem"},{"attributes":{},"id":"1231","type":"CategoricalScale"},{"attributes":{"axis":{"id":"1237"},"coordinates":null,"dimension":1,"grid_line_color":null,"group":null,"ticker":null},"id":"1239","type":"Grid"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#fdbb84"},"hatch_alpha":{"value":0.1},"hatch_color":{"value":"#fdbb84"},"height":{"value":0.9},"left":{"expr":{"id":"1316"}},"line_alpha":{"value":0.1},"line_color":{"value":"#fdbb84"},"right":{"expr":{"id":"1317"}},"y":{"field":"fruits"}},"id":"1341","type":"HBar"},{"attributes":{"coordinates":null,"formatter":{"id":"1272"},"group":null,"major_label_policy":{"id":"1273"},"ticker":{"id":"1234"}},"id":"1233","type":"LinearAxis"},{"attributes":{"fill_color":{"value":"#e0f3db"},"hatch_color":{"value":"#e0f3db"},"height":{"value":0.9},"left":{"expr":{"id":"1259"}},"line_color":{"value":"#e0f3db"},"right":{"expr":{"id":"1260"}},"y":{"field":"fruits"}},"id":"1297","type":"HBar"},{"attributes":{"axis":{"id":"1233"},"coordinates":null,"group":null,"ticker":null},"id":"1236","type":"Grid"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#e0f3db"},"hatch_alpha":{"value":0.1},"hatch_color":{"value":"#e0f3db"},"height":{"value":0.9},"left":{"expr":{"id":"1259"}},"line_alpha":{"value":0.1},"line_color":{"value":"#e0f3db"},"right":{"expr":{"id":"1260"}},"y":{"field":"fruits"}},"id":"1298","type":"HBar"},{"attributes":{},"id":"1238","type":"CategoricalTicker"},{"attributes":{"coordinates":null,"formatter":{"id":"1269"},"group":null,"major_label_policy":{"id":"1270"},"ticker":{"id":"1238"}},"id":"1237","type":"CategoricalAxis"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#fdbb84"},"hatch_alpha":{"value":0.2},"hatch_color":{"value":"#fdbb84"},"height":{"value":0.9},"left":{"expr":{"id":"1316"}},"line_alpha":{"value":0.2},"line_color":{"value":"#fdbb84"},"right":{"expr":{"id":"1317"}},"y":{"field":"fruits"}},"id":"1342","type":"HBar"},{"attributes":{"label":{"value":"2016 imports"},"renderers":[{"id":"1343"}]},"id":"1357","type":"LegendItem"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#e0f3db"},"hatch_alpha":{"value":0.2},"hatch_color":{"value":"#e0f3db"},"height":{"value":0.9},"left":{"expr":{"id":"1259"}},"line_alpha":{"value":0.2},"line_color":{"value":"#e0f3db"},"right":{"expr":{"id":"1260"}},"y":{"field":"fruits"}},"id":"1299","type":"HBar"},{"attributes":{"fill_color":{"value":"#fee8c8"},"hatch_color":{"value":"#fee8c8"},"height":{"value":0.9},"left":{"expr":{"id":"1318"}},"line_color":{"value":"#fee8c8"},"right":{"expr":{"id":"1319"}},"y":{"field":"fruits"}},"id":"1359","type":"HBar"},{"attributes":{"data":{"2015":[-1,0,-1,-3,-2,-1],"2016":[-2,-1,-3,-1,-2,-2],"2017":[-1,-2,-1,0,-2,-2],"fruits":["Apples","Pears","Nectarines","Plums","Grapes","Strawberries"]},"selected":{"id":"1336"},"selection_policy":{"id":"1335"}},"id":"1313","type":"ColumnDataSource"}],"root_ids":["1222"]},"title":"Bokeh Application","version":"2.4.3"}};
|
701
|
-
const render_items = [{"docid":"caa131b0-8413-4d08-a67f-f981e71d897d","root_ids":["1222"],"roots":{"1222":"6c68f943-2315-4fdd-8976-d7ae6b9d8dbf"}}];
|
702
|
-
root.Bokeh.embed.embed_items_notebook(docs_json, render_items);
|
703
|
-
}
|
704
|
-
if (root.Bokeh !== undefined) {
|
705
|
-
embed_document(root);
|
706
|
-
} else {
|
707
|
-
let attempts = 0;
|
708
|
-
const timer = setInterval(function(root) {
|
709
|
-
if (root.Bokeh !== undefined) {
|
710
|
-
clearInterval(timer);
|
711
|
-
embed_document(root);
|
712
|
-
} else {
|
713
|
-
attempts++;
|
714
|
-
if (attempts > 100) {
|
715
|
-
clearInterval(timer);
|
716
|
-
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
717
|
-
}
|
718
|
-
}
|
719
|
-
}, 10, root)
|
720
|
-
}
|
721
|
-
})(window);
|
722
|
-
</script>
|
723
|
-
</div>
|
724
|
-
|
725
|
-
</div>
|
726
|
-
|
727
|
-
</div>
|
728
|
-
</div>
|
729
|
-
|
730
|
-
</div>
|
731
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
732
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
733
|
-
<p>Notice we also added some padding <em>around</em> the categorical range (e.g. at both ends of the axis) by specifying</p>
|
734
|
-
<div class="highlight"><pre><span></span><span class="n">p</span><span class="o">.</span><span class="n">y_range</span><span class="o">.</span><span class="n">range_padding</span> <span class="o">=</span> <span class="mf">0.1</span>
|
735
|
-
</pre></div>
|
736
|
-
|
737
|
-
</div>
|
738
|
-
</div>
|
739
|
-
</div>
|
740
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
741
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
742
|
-
<h3 id="Grouped-Bar-Charts">Grouped Bar Charts<a class="anchor-link" href="#Grouped-Bar-Charts">¶</a></h3><p>Sometimes we want to group bars together, instead of stacking them. Bokeh can handle up to three levels of nested (hierarchical) categories, and will automatically group output according to the outermost level. To specify nested categorical coordinates, the columns of the data source should contain tuples, for example:</p>
|
743
|
-
<div class="highlight"><pre><span></span><span class="n">x</span> <span class="o">=</span> <span class="p">[</span> <span class="p">(</span><span class="s2">"Apples"</span><span class="p">,</span> <span class="s2">"2015"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Apples"</span><span class="p">,</span> <span class="s2">"2016"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Apples"</span><span class="p">,</span> <span class="s2">"2017"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Pears"</span><span class="p">,</span> <span class="s2">"2015), ... ]</span>
|
744
|
-
</pre></div>
|
745
|
-
<p>Values in other columns correspond to each item in <code>x</code>, exactly as in other cases. When plotting with these kinds of nested coordinates, we must tell Bokeh the contents and order the axis range, by explicitly passing a <code>FactorRange</code> to <code>figure</code>. In the example below, this is seen as</p>
|
746
|
-
<div class="highlight"><pre><span></span><span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span><span class="n">x_range</span><span class="o">=</span><span class="n">FactorRange</span><span class="p">(</span><span class="o">*</span><span class="n">x</span><span class="p">),</span> <span class="o">....</span><span class="p">)</span>
|
747
|
-
</pre></div>
|
748
|
-
|
749
|
-
</div>
|
750
|
-
</div>
|
751
|
-
</div>
|
752
|
-
|
753
|
-
|
754
|
-
|
755
|
-
<div class="
|
756
|
-
cell border-box-sizing code_cell rendered">
|
757
|
-
<div class="input">
|
758
|
-
|
759
|
-
<div class="inner_cell">
|
760
|
-
<div class="input_area">
|
761
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bokeh.models</span> <span class="kn">import</span> <span class="n">FactorRange</span>
|
762
|
-
|
763
|
-
<span class="n">fruits</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'Apples'</span><span class="p">,</span> <span class="s1">'Pears'</span><span class="p">,</span> <span class="s1">'Nectarines'</span><span class="p">,</span> <span class="s1">'Plums'</span><span class="p">,</span> <span class="s1">'Grapes'</span><span class="p">,</span> <span class="s1">'Strawberries'</span><span class="p">]</span>
|
764
|
-
<span class="n">years</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'2015'</span><span class="p">,</span> <span class="s1">'2016'</span><span class="p">,</span> <span class="s1">'2017'</span><span class="p">]</span>
|
765
|
-
<span class="n">data</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'fruits'</span> <span class="p">:</span> <span class="n">fruits</span><span class="p">,</span>
|
766
|
-
<span class="s1">'2015'</span> <span class="p">:</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">],</span>
|
767
|
-
<span class="s1">'2016'</span> <span class="p">:</span> <span class="p">[</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">6</span><span class="p">],</span>
|
768
|
-
<span class="s1">'2017'</span> <span class="p">:</span> <span class="p">[</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">]}</span>
|
769
|
-
|
770
|
-
<span class="c1"># this creates [ ("Apples", "2015"), ("Apples", "2016"), ("Apples", "2017"), ("Pears", "2015), ... ]</span>
|
771
|
-
<span class="n">x</span> <span class="o">=</span> <span class="p">[</span> <span class="p">(</span><span class="n">fruit</span><span class="p">,</span> <span class="n">year</span><span class="p">)</span> <span class="k">for</span> <span class="n">fruit</span> <span class="ow">in</span> <span class="n">fruits</span> <span class="k">for</span> <span class="n">year</span> <span class="ow">in</span> <span class="n">years</span> <span class="p">]</span>
|
772
|
-
|
773
|
-
<span class="c1"># like an hstack</span>
|
774
|
-
<span class="n">counts</span> <span class="o">=</span> <span class="nb">sum</span><span class="p">(</span>
|
775
|
-
<span class="nb">zip</span><span class="p">(</span><span class="n">data</span><span class="p">[</span><span class="s1">'2015'</span><span class="p">],</span>
|
776
|
-
<span class="n">data</span><span class="p">[</span><span class="s1">'2016'</span><span class="p">],</span>
|
777
|
-
<span class="n">data</span><span class="p">[</span><span class="s1">'2017'</span><span class="p">]),</span>
|
778
|
-
<span class="p">()</span>
|
779
|
-
<span class="p">)</span>
|
780
|
-
|
781
|
-
<span class="n">source</span> <span class="o">=</span> <span class="n">ColumnDataSource</span><span class="p">(</span>
|
782
|
-
<span class="n">data</span><span class="o">=</span><span class="nb">dict</span><span class="p">(</span>
|
783
|
-
<span class="n">x</span><span class="o">=</span><span class="n">x</span><span class="p">,</span>
|
784
|
-
<span class="n">counts</span><span class="o">=</span><span class="n">counts</span>
|
785
|
-
<span class="p">)</span>
|
786
|
-
<span class="p">)</span>
|
787
|
-
|
788
|
-
<span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span>
|
789
|
-
<span class="n">plot_height</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span>
|
790
|
-
<span class="n">plot_width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
|
791
|
-
<span class="n">x_range</span><span class="o">=</span><span class="n">FactorRange</span><span class="p">(</span><span class="o">*</span><span class="n">x</span><span class="p">),</span>
|
792
|
-
<span class="n">title</span><span class="o">=</span><span class="s2">"Fruit Counts by Year"</span>
|
793
|
-
<span class="p">)</span>
|
794
|
-
|
795
|
-
<span class="n">p</span><span class="o">.</span><span class="n">vbar</span><span class="p">(</span>
|
796
|
-
<span class="n">x</span><span class="o">=</span><span class="s1">'x'</span><span class="p">,</span>
|
797
|
-
<span class="n">top</span><span class="o">=</span><span class="s1">'counts'</span><span class="p">,</span>
|
798
|
-
<span class="n">width</span><span class="o">=</span><span class="mf">0.9</span><span class="p">,</span>
|
799
|
-
<span class="n">source</span><span class="o">=</span><span class="n">source</span>
|
800
|
-
<span class="p">)</span>
|
801
|
-
|
802
|
-
<span class="n">p</span><span class="o">.</span><span class="n">y_range</span><span class="o">.</span><span class="n">start</span> <span class="o">=</span> <span class="mi">0</span>
|
803
|
-
<span class="n">p</span><span class="o">.</span><span class="n">x_range</span><span class="o">.</span><span class="n">range_padding</span> <span class="o">=</span> <span class="mf">0.1</span>
|
804
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xaxis</span><span class="o">.</span><span class="n">major_label_orientation</span> <span class="o">=</span> <span class="mi">1</span>
|
805
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xgrid</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="kc">None</span>
|
806
|
-
|
807
|
-
<span class="c1"># show the results</span>
|
808
|
-
<span class="n">show</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
|
809
|
-
</pre></div>
|
810
|
-
|
811
|
-
</div>
|
812
|
-
</div>
|
813
|
-
</div>
|
814
|
-
|
815
|
-
<div class="output_wrapper">
|
816
|
-
<div class="output">
|
817
|
-
|
818
|
-
|
819
|
-
<div class="output_area">
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
<div class="output_html rendered_html output_subarea ">
|
825
|
-
|
826
|
-
<div class="bk-root" id="9ce3b536-299f-4034-a659-d4bf83afc407" data-root-id="1471"></div>
|
827
|
-
|
828
|
-
</div>
|
829
|
-
|
830
|
-
</div>
|
831
|
-
|
832
|
-
<div class="output_area">
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
<div id="cd2092af-bceb-4400-b69c-4df648a14de4"></div>
|
840
|
-
<div class="output_subarea output_javascript ">
|
841
|
-
<script type="text/javascript">
|
842
|
-
var element = $('#cd2092af-bceb-4400-b69c-4df648a14de4');
|
843
|
-
(function(root) {
|
844
|
-
function embed_document(root) {
|
845
|
-
const docs_json = {"3a7f931e-14db-4860-8918-446cbecee634":{"defs":[],"roots":{"references":[{"attributes":{"below":[{"id":"1481"}],"center":[{"id":"1483"},{"id":"1487"}],"height":400,"left":[{"id":"1484"}],"renderers":[{"id":"1506"}],"title":{"id":"1472"},"toolbar":{"id":"1495"},"width":800,"x_range":{"id":"1470"},"x_scale":{"id":"1477"},"y_range":{"id":"1475"},"y_scale":{"id":"1479"}},"id":"1471","subtype":"Figure","type":"Plot"},{"attributes":{"bottom_units":"screen","coordinates":null,"fill_alpha":0.5,"fill_color":"lightgrey","group":null,"left_units":"screen","level":"overlay","line_alpha":1.0,"line_color":"black","line_dash":[4,4],"line_width":2,"right_units":"screen","syncable":false,"top_units":"screen"},"id":"1494","type":"BoxAnnotation"},{"attributes":{"source":{"id":"1469"}},"id":"1507","type":"CDSView"},{"attributes":{"axis":{"id":"1481"},"coordinates":null,"grid_line_color":null,"group":null,"ticker":null},"id":"1483","type":"Grid"},{"attributes":{},"id":"1485","type":"BasicTicker"},{"attributes":{"coordinates":null,"formatter":{"id":"1542"},"group":null,"major_label_policy":{"id":"1543"},"ticker":{"id":"1485"}},"id":"1484","type":"LinearAxis"},{"attributes":{"coordinates":null,"data_source":{"id":"1469"},"glyph":{"id":"1503"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1505"},"nonselection_glyph":{"id":"1504"},"view":{"id":"1507"}},"id":"1506","type":"GlyphRenderer"},{"attributes":{"data":{"counts":[2,5,3,1,3,2,4,3,4,3,2,4,2,4,5,4,6,3],"x":[["Apples","2015"],["Apples","2016"],["Apples","2017"],["Pears","2015"],["Pears","2016"],["Pears","2017"],["Nectarines","2015"],["Nectarines","2016"],["Nectarines","2017"],["Plums","2015"],["Plums","2016"],["Plums","2017"],["Grapes","2015"],["Grapes","2016"],["Grapes","2017"],["Strawberries","2015"],["Strawberries","2016"],["Strawberries","2017"]]},"selected":{"id":"1548"},"selection_policy":{"id":"1547"}},"id":"1469","type":"ColumnDataSource"},{"attributes":{},"id":"1542","type":"BasicTickFormatter"},{"attributes":{"factors":[["Apples","2015"],["Apples","2016"],["Apples","2017"],["Pears","2015"],["Pears","2016"],["Pears","2017"],["Nectarines","2015"],["Nectarines","2016"],["Nectarines","2017"],["Plums","2015"],["Plums","2016"],["Plums","2017"],["Grapes","2015"],["Grapes","2016"],["Grapes","2017"],["Strawberries","2015"],["Strawberries","2016"],["Strawberries","2017"]],"range_padding":0.1},"id":"1470","type":"FactorRange"},{"attributes":{"axis":{"id":"1484"},"coordinates":null,"dimension":1,"group":null,"ticker":null},"id":"1487","type":"Grid"},{"attributes":{},"id":"1545","type":"CategoricalTickFormatter"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.2},"line_alpha":{"value":0.2},"line_color":{"value":"#1f77b4"},"top":{"field":"counts"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1505","type":"VBar"},{"attributes":{},"id":"1543","type":"AllLabels"},{"attributes":{"fill_color":{"value":"#1f77b4"},"line_color":{"value":"#1f77b4"},"top":{"field":"counts"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1503","type":"VBar"},{"attributes":{},"id":"1482","type":"CategoricalTicker"},{"attributes":{},"id":"1546","type":"AllLabels"},{"attributes":{},"id":"1547","type":"UnionRenderers"},{"attributes":{},"id":"1488","type":"PanTool"},{"attributes":{},"id":"1548","type":"Selection"},{"attributes":{"start":0},"id":"1475","type":"DataRange1d"},{"attributes":{},"id":"1492","type":"ResetTool"},{"attributes":{},"id":"1489","type":"WheelZoomTool"},{"attributes":{"coordinates":null,"group":null,"text":"Fruit Counts by Year"},"id":"1472","type":"Title"},{"attributes":{"overlay":{"id":"1494"}},"id":"1490","type":"BoxZoomTool"},{"attributes":{"tools":[{"id":"1488"},{"id":"1489"},{"id":"1490"},{"id":"1491"},{"id":"1492"},{"id":"1493"}]},"id":"1495","type":"Toolbar"},{"attributes":{"coordinates":null,"formatter":{"id":"1545"},"group":null,"major_label_orientation":1,"major_label_policy":{"id":"1546"},"ticker":{"id":"1482"}},"id":"1481","type":"CategoricalAxis"},{"attributes":{},"id":"1491","type":"SaveTool"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.1},"line_alpha":{"value":0.1},"line_color":{"value":"#1f77b4"},"top":{"field":"counts"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1504","type":"VBar"},{"attributes":{},"id":"1477","type":"CategoricalScale"},{"attributes":{},"id":"1493","type":"HelpTool"},{"attributes":{},"id":"1479","type":"LinearScale"}],"root_ids":["1471"]},"title":"Bokeh Application","version":"2.4.3"}};
|
846
|
-
const render_items = [{"docid":"3a7f931e-14db-4860-8918-446cbecee634","root_ids":["1471"],"roots":{"1471":"9ce3b536-299f-4034-a659-d4bf83afc407"}}];
|
847
|
-
root.Bokeh.embed.embed_items_notebook(docs_json, render_items);
|
848
|
-
}
|
849
|
-
if (root.Bokeh !== undefined) {
|
850
|
-
embed_document(root);
|
851
|
-
} else {
|
852
|
-
let attempts = 0;
|
853
|
-
const timer = setInterval(function(root) {
|
854
|
-
if (root.Bokeh !== undefined) {
|
855
|
-
clearInterval(timer);
|
856
|
-
embed_document(root);
|
857
|
-
} else {
|
858
|
-
attempts++;
|
859
|
-
if (attempts > 100) {
|
860
|
-
clearInterval(timer);
|
861
|
-
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
862
|
-
}
|
863
|
-
}
|
864
|
-
}, 10, root)
|
865
|
-
}
|
866
|
-
})(window);
|
867
|
-
</script>
|
868
|
-
</div>
|
869
|
-
|
870
|
-
</div>
|
871
|
-
|
872
|
-
</div>
|
873
|
-
</div>
|
874
|
-
|
875
|
-
</div>
|
876
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
877
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
878
|
-
<p>Another way we can set the color of the bars is to use a transform. We first saw some transforms in previous chapter <strong>Data Sources and Transformations</strong>. Here we use a new one <code>factor_cmap</code> that accepts a the name of a column to use for colormapping, as well as the palette and factors that define the color mapping.</p>
|
879
|
-
<p>Additionally we can configure it to map just the sub-factors if desired. For instance in this case we don't want shade each <code>(fruit, year)</code> pair differently. Instead, we want to only shade based on the <code>year</code>. So we pass <code>start=1</code> and <code>end=2</code> to specify the slice range of each factor to use when colormapping. Then we pass the result as the <code>fill_color</code> value:</p>
|
880
|
-
<div class="highlight"><pre><span></span><span class="n">fill_color</span><span class="o">=</span><span class="n">factor_cmap</span><span class="p">(</span><span class="s1">'x'</span><span class="p">,</span> <span class="n">palette</span><span class="o">=</span><span class="p">[</span><span class="s1">'firebrick'</span><span class="p">,</span> <span class="s1">'olive'</span><span class="p">,</span> <span class="s1">'navy'</span><span class="p">],</span> <span class="n">factors</span><span class="o">=</span><span class="n">years</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
|
881
|
-
</pre></div>
|
882
|
-
<p>to have the colors be applied automatically based on the underlying data.</p>
|
883
|
-
|
884
|
-
</div>
|
885
|
-
</div>
|
886
|
-
</div>
|
887
|
-
|
888
|
-
|
889
|
-
|
890
|
-
<div class="
|
891
|
-
cell border-box-sizing code_cell rendered">
|
892
|
-
<div class="input">
|
893
|
-
|
894
|
-
<div class="inner_cell">
|
895
|
-
<div class="input_area">
|
896
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bokeh.transform</span> <span class="kn">import</span> <span class="n">factor_cmap</span>
|
897
|
-
|
898
|
-
<span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span>
|
899
|
-
<span class="n">plot_height</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span>
|
900
|
-
<span class="n">plot_width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
|
901
|
-
<span class="n">x_range</span><span class="o">=</span><span class="n">FactorRange</span><span class="p">(</span><span class="o">*</span><span class="n">x</span><span class="p">),</span>
|
902
|
-
<span class="n">title</span><span class="o">=</span><span class="s2">"Fruit Counts by Year"</span>
|
903
|
-
<span class="p">)</span>
|
904
|
-
|
905
|
-
<span class="n">p</span><span class="o">.</span><span class="n">vbar</span><span class="p">(</span>
|
906
|
-
<span class="n">x</span><span class="o">=</span><span class="s1">'x'</span><span class="p">,</span>
|
907
|
-
<span class="n">top</span><span class="o">=</span><span class="s1">'counts'</span><span class="p">,</span>
|
908
|
-
<span class="n">width</span><span class="o">=</span><span class="mf">0.9</span><span class="p">,</span>
|
909
|
-
<span class="n">line_color</span><span class="o">=</span><span class="s2">"white"</span><span class="p">,</span>
|
910
|
-
<span class="c1"># use the palette to colormap based on the the x[1:2] values</span>
|
911
|
-
<span class="n">fill_color</span><span class="o">=</span><span class="n">factor_cmap</span><span class="p">(</span>
|
912
|
-
<span class="s1">'x'</span><span class="p">,</span>
|
913
|
-
<span class="n">palette</span><span class="o">=</span><span class="p">[</span><span class="s1">'firebrick'</span><span class="p">,</span> <span class="s1">'olive'</span><span class="p">,</span> <span class="s1">'navy'</span><span class="p">],</span>
|
914
|
-
<span class="n">factors</span><span class="o">=</span><span class="n">years</span><span class="p">,</span>
|
915
|
-
<span class="n">start</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
916
|
-
<span class="n">end</span><span class="o">=</span><span class="mi">2</span>
|
917
|
-
<span class="p">),</span>
|
918
|
-
<span class="n">source</span><span class="o">=</span><span class="n">source</span>
|
919
|
-
<span class="p">)</span>
|
920
|
-
|
921
|
-
<span class="n">p</span><span class="o">.</span><span class="n">y_range</span><span class="o">.</span><span class="n">start</span> <span class="o">=</span> <span class="mi">0</span>
|
922
|
-
<span class="n">p</span><span class="o">.</span><span class="n">x_range</span><span class="o">.</span><span class="n">range_padding</span> <span class="o">=</span> <span class="mf">0.1</span>
|
923
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xaxis</span><span class="o">.</span><span class="n">major_label_orientation</span> <span class="o">=</span> <span class="mi">1</span>
|
924
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xgrid</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="kc">None</span>
|
925
|
-
|
926
|
-
<span class="c1"># show the results</span>
|
927
|
-
<span class="n">show</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
|
928
|
-
</pre></div>
|
929
|
-
|
930
|
-
</div>
|
931
|
-
</div>
|
932
|
-
</div>
|
933
|
-
|
934
|
-
<div class="output_wrapper">
|
935
|
-
<div class="output">
|
936
|
-
|
937
|
-
|
938
|
-
<div class="output_area">
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
<div class="output_html rendered_html output_subarea ">
|
944
|
-
|
945
|
-
<div class="bk-root" id="62605c03-2b83-49e3-9212-afbb55ea42db" data-root-id="1601"></div>
|
946
|
-
|
947
|
-
</div>
|
948
|
-
|
949
|
-
</div>
|
950
|
-
|
951
|
-
<div class="output_area">
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
<div id="76a2c99a-99e1-4d1a-8a07-df28cbaab5d3"></div>
|
959
|
-
<div class="output_subarea output_javascript ">
|
960
|
-
<script type="text/javascript">
|
961
|
-
var element = $('#76a2c99a-99e1-4d1a-8a07-df28cbaab5d3');
|
962
|
-
(function(root) {
|
963
|
-
function embed_document(root) {
|
964
|
-
const docs_json = {"bb6614eb-faac-4d6d-ab26-1f8a8e41eb87":{"defs":[],"roots":{"references":[{"attributes":{"below":[{"id":"1611"}],"center":[{"id":"1613"},{"id":"1617"}],"height":400,"left":[{"id":"1614"}],"renderers":[{"id":"1637"}],"title":{"id":"1602"},"toolbar":{"id":"1625"},"width":800,"x_range":{"id":"1600"},"x_scale":{"id":"1607"},"y_range":{"id":"1605"},"y_scale":{"id":"1609"}},"id":"1601","subtype":"Figure","type":"Plot"},{"attributes":{},"id":"1687","type":"AllLabels"},{"attributes":{},"id":"1686","type":"CategoricalTickFormatter"},{"attributes":{},"id":"1684","type":"AllLabels"},{"attributes":{"end":2,"factors":["2015","2016","2017"],"palette":["firebrick","olive","navy"],"start":1},"id":"1632","type":"CategoricalColorMapper"},{"attributes":{"tools":[{"id":"1618"},{"id":"1619"},{"id":"1620"},{"id":"1621"},{"id":"1622"},{"id":"1623"}]},"id":"1625","type":"Toolbar"},{"attributes":{"data":{"counts":[2,5,3,1,3,2,4,3,4,3,2,4,2,4,5,4,6,3],"x":[["Apples","2015"],["Apples","2016"],["Apples","2017"],["Pears","2015"],["Pears","2016"],["Pears","2017"],["Nectarines","2015"],["Nectarines","2016"],["Nectarines","2017"],["Plums","2015"],["Plums","2016"],["Plums","2017"],["Grapes","2015"],["Grapes","2016"],["Grapes","2017"],["Strawberries","2015"],["Strawberries","2016"],["Strawberries","2017"]]},"selected":{"id":"1548"},"selection_policy":{"id":"1547"}},"id":"1469","type":"ColumnDataSource"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"field":"x","transform":{"id":"1632"}},"hatch_alpha":{"value":0.1},"line_alpha":{"value":0.1},"line_color":{"value":"white"},"top":{"field":"counts"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1635","type":"VBar"},{"attributes":{},"id":"1618","type":"PanTool"},{"attributes":{},"id":"1683","type":"BasicTickFormatter"},{"attributes":{},"id":"1612","type":"CategoricalTicker"},{"attributes":{"factors":[["Apples","2015"],["Apples","2016"],["Apples","2017"],["Pears","2015"],["Pears","2016"],["Pears","2017"],["Nectarines","2015"],["Nectarines","2016"],["Nectarines","2017"],["Plums","2015"],["Plums","2016"],["Plums","2017"],["Grapes","2015"],["Grapes","2016"],["Grapes","2017"],["Strawberries","2015"],["Strawberries","2016"],["Strawberries","2017"]],"range_padding":0.1},"id":"1600","type":"FactorRange"},{"attributes":{"axis":{"id":"1611"},"coordinates":null,"grid_line_color":null,"group":null,"ticker":null},"id":"1613","type":"Grid"},{"attributes":{},"id":"1621","type":"SaveTool"},{"attributes":{"coordinates":null,"formatter":{"id":"1683"},"group":null,"major_label_policy":{"id":"1684"},"ticker":{"id":"1615"}},"id":"1614","type":"LinearAxis"},{"attributes":{"coordinates":null,"group":null,"text":"Fruit Counts by Year"},"id":"1602","type":"Title"},{"attributes":{},"id":"1547","type":"UnionRenderers"},{"attributes":{"axis":{"id":"1614"},"coordinates":null,"dimension":1,"group":null,"ticker":null},"id":"1617","type":"Grid"},{"attributes":{"source":{"id":"1469"}},"id":"1638","type":"CDSView"},{"attributes":{"fill_color":{"field":"x","transform":{"id":"1632"}},"line_color":{"value":"white"},"top":{"field":"counts"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1634","type":"VBar"},{"attributes":{"start":0},"id":"1605","type":"DataRange1d"},{"attributes":{},"id":"1548","type":"Selection"},{"attributes":{},"id":"1623","type":"HelpTool"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"field":"x","transform":{"id":"1632"}},"hatch_alpha":{"value":0.2},"line_alpha":{"value":0.2},"line_color":{"value":"white"},"top":{"field":"counts"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1636","type":"VBar"},{"attributes":{"overlay":{"id":"1624"}},"id":"1620","type":"BoxZoomTool"},{"attributes":{"bottom_units":"screen","coordinates":null,"fill_alpha":0.5,"fill_color":"lightgrey","group":null,"left_units":"screen","level":"overlay","line_alpha":1.0,"line_color":"black","line_dash":[4,4],"line_width":2,"right_units":"screen","syncable":false,"top_units":"screen"},"id":"1624","type":"BoxAnnotation"},{"attributes":{},"id":"1619","type":"WheelZoomTool"},{"attributes":{},"id":"1609","type":"LinearScale"},{"attributes":{},"id":"1622","type":"ResetTool"},{"attributes":{"coordinates":null,"formatter":{"id":"1686"},"group":null,"major_label_orientation":1,"major_label_policy":{"id":"1687"},"ticker":{"id":"1612"}},"id":"1611","type":"CategoricalAxis"},{"attributes":{},"id":"1607","type":"CategoricalScale"},{"attributes":{},"id":"1615","type":"BasicTicker"},{"attributes":{"coordinates":null,"data_source":{"id":"1469"},"glyph":{"id":"1634"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1636"},"nonselection_glyph":{"id":"1635"},"view":{"id":"1638"}},"id":"1637","type":"GlyphRenderer"}],"root_ids":["1601"]},"title":"Bokeh Application","version":"2.4.3"}};
|
965
|
-
const render_items = [{"docid":"bb6614eb-faac-4d6d-ab26-1f8a8e41eb87","root_ids":["1601"],"roots":{"1601":"62605c03-2b83-49e3-9212-afbb55ea42db"}}];
|
966
|
-
root.Bokeh.embed.embed_items_notebook(docs_json, render_items);
|
967
|
-
}
|
968
|
-
if (root.Bokeh !== undefined) {
|
969
|
-
embed_document(root);
|
970
|
-
} else {
|
971
|
-
let attempts = 0;
|
972
|
-
const timer = setInterval(function(root) {
|
973
|
-
if (root.Bokeh !== undefined) {
|
974
|
-
clearInterval(timer);
|
975
|
-
embed_document(root);
|
976
|
-
} else {
|
977
|
-
attempts++;
|
978
|
-
if (attempts > 100) {
|
979
|
-
clearInterval(timer);
|
980
|
-
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
981
|
-
}
|
982
|
-
}
|
983
|
-
}, 10, root)
|
984
|
-
}
|
985
|
-
})(window);
|
986
|
-
</script>
|
987
|
-
</div>
|
988
|
-
|
989
|
-
</div>
|
990
|
-
|
991
|
-
</div>
|
992
|
-
</div>
|
993
|
-
|
994
|
-
</div>
|
995
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
996
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
997
|
-
<p>It is also possible to achieve grouped bar plots using another technique called "visual dodge". That would be useful e.g. if you only wanted to have the axis labeled by fruit type, and not include the years on the axis. This tutorial does not cover that technique but you can find information in the <a href="https://bokeh.pydata.org/en/dev/docs/user_guide/categorical.html#visual-dodge">User's Guide</a>.</p>
|
998
|
-
|
999
|
-
</div>
|
1000
|
-
</div>
|
1001
|
-
</div>
|
1002
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
1003
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
1004
|
-
<h3 id="Mixing-Categorical-Levels">Mixing Categorical Levels<a class="anchor-link" href="#Mixing-Categorical-Levels">¶</a></h3><p>If you have created a range with nested categories as above, it is possible to plot glyphs using only the "outer" categories, if desired. The plot below shows monthly values grouped by quarter as bars. The data for these are in the familiar format:</p>
|
1005
|
-
<div class="highlight"><pre><span></span><span class="n">factors</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"Q1"</span><span class="p">,</span> <span class="s2">"jan"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q1"</span><span class="p">,</span> <span class="s2">"feb"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q1"</span><span class="p">,</span> <span class="s2">"mar"</span><span class="p">),</span> <span class="o">....</span><span class="p">]</span>
|
1006
|
-
</pre></div>
|
1007
|
-
<p>The plot also overlays a line representing average quarterly values, and this is accomplished by using only the "quarter" part of each nexted category:</p>
|
1008
|
-
<div class="highlight"><pre><span></span><span class="n">p</span><span class="o">.</span><span class="n">line</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="p">[</span><span class="s2">"Q1"</span><span class="p">,</span> <span class="s2">"Q2"</span><span class="p">,</span> <span class="s2">"Q3"</span><span class="p">,</span> <span class="s2">"Q4"</span><span class="p">],</span> <span class="n">y</span><span class="o">=....</span><span class="p">)</span>
|
1009
|
-
</pre></div>
|
1010
|
-
|
1011
|
-
</div>
|
1012
|
-
</div>
|
1013
|
-
</div>
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1017
|
-
<div class="
|
1018
|
-
cell border-box-sizing code_cell rendered">
|
1019
|
-
<div class="input">
|
1020
|
-
|
1021
|
-
<div class="inner_cell">
|
1022
|
-
<div class="input_area">
|
1023
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">factors</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"Q1"</span><span class="p">,</span> <span class="s2">"jan"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q1"</span><span class="p">,</span> <span class="s2">"feb"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q1"</span><span class="p">,</span> <span class="s2">"mar"</span><span class="p">),</span>
|
1024
|
-
<span class="p">(</span><span class="s2">"Q2"</span><span class="p">,</span> <span class="s2">"apr"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q2"</span><span class="p">,</span> <span class="s2">"may"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q2"</span><span class="p">,</span> <span class="s2">"jun"</span><span class="p">),</span>
|
1025
|
-
<span class="p">(</span><span class="s2">"Q3"</span><span class="p">,</span> <span class="s2">"jul"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q3"</span><span class="p">,</span> <span class="s2">"aug"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q3"</span><span class="p">,</span> <span class="s2">"sep"</span><span class="p">),</span>
|
1026
|
-
<span class="p">(</span><span class="s2">"Q4"</span><span class="p">,</span> <span class="s2">"oct"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q4"</span><span class="p">,</span> <span class="s2">"nov"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"Q4"</span><span class="p">,</span> <span class="s2">"dec"</span><span class="p">)]</span>
|
1027
|
-
|
1028
|
-
<span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span>
|
1029
|
-
<span class="n">plot_height</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span>
|
1030
|
-
<span class="n">plot_width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
|
1031
|
-
<span class="n">x_range</span><span class="o">=</span><span class="n">FactorRange</span><span class="p">(</span><span class="o">*</span><span class="n">factors</span><span class="p">)</span>
|
1032
|
-
<span class="p">)</span>
|
1033
|
-
|
1034
|
-
<span class="n">x</span> <span class="o">=</span> <span class="p">[</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">10</span><span class="p">,</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="mi">14</span><span class="p">,</span> <span class="mi">14</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">16</span> <span class="p">]</span>
|
1035
|
-
<span class="n">p</span><span class="o">.</span><span class="n">vbar</span><span class="p">(</span>
|
1036
|
-
<span class="n">x</span><span class="o">=</span><span class="n">factors</span><span class="p">,</span>
|
1037
|
-
<span class="n">top</span><span class="o">=</span><span class="n">x</span><span class="p">,</span>
|
1038
|
-
<span class="n">width</span><span class="o">=</span><span class="mf">0.9</span><span class="p">,</span>
|
1039
|
-
<span class="n">alpha</span><span class="o">=</span><span class="mf">0.5</span>
|
1040
|
-
<span class="p">)</span>
|
1041
|
-
|
1042
|
-
<span class="n">qs</span><span class="p">,</span> <span class="n">aves</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"Q1"</span><span class="p">,</span> <span class="s2">"Q2"</span><span class="p">,</span> <span class="s2">"Q3"</span><span class="p">,</span> <span class="s2">"Q4"</span><span class="p">],</span> <span class="p">[</span><span class="mi">12</span><span class="p">,</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">13</span><span class="p">,</span> <span class="mi">14</span><span class="p">]</span>
|
1043
|
-
<span class="n">p</span><span class="o">.</span><span class="n">line</span><span class="p">(</span>
|
1044
|
-
<span class="n">x</span><span class="o">=</span><span class="n">qs</span><span class="p">,</span>
|
1045
|
-
<span class="n">y</span><span class="o">=</span><span class="n">aves</span><span class="p">,</span>
|
1046
|
-
<span class="n">color</span><span class="o">=</span><span class="s2">"red"</span><span class="p">,</span>
|
1047
|
-
<span class="n">line_width</span><span class="o">=</span><span class="mi">3</span>
|
1048
|
-
<span class="p">)</span>
|
1049
|
-
<span class="n">p</span><span class="o">.</span><span class="n">circle</span><span class="p">(</span>
|
1050
|
-
<span class="n">x</span><span class="o">=</span><span class="n">qs</span><span class="p">,</span>
|
1051
|
-
<span class="n">y</span><span class="o">=</span><span class="n">aves</span><span class="p">,</span>
|
1052
|
-
<span class="n">line_color</span><span class="o">=</span><span class="s2">"red"</span><span class="p">,</span>
|
1053
|
-
<span class="n">fill_color</span><span class="o">=</span><span class="s2">"white"</span><span class="p">,</span>
|
1054
|
-
<span class="n">size</span><span class="o">=</span><span class="mi">10</span>
|
1055
|
-
<span class="p">)</span>
|
1056
|
-
|
1057
|
-
<span class="n">p</span><span class="o">.</span><span class="n">y_range</span><span class="o">.</span><span class="n">start</span> <span class="o">=</span> <span class="mi">0</span>
|
1058
|
-
<span class="n">p</span><span class="o">.</span><span class="n">x_range</span><span class="o">.</span><span class="n">range_padding</span> <span class="o">=</span> <span class="mf">0.1</span>
|
1059
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xgrid</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="kc">None</span>
|
1060
|
-
|
1061
|
-
<span class="c1"># show the results</span>
|
1062
|
-
<span class="n">show</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
|
1063
|
-
</pre></div>
|
1064
|
-
|
1065
|
-
</div>
|
1066
|
-
</div>
|
1067
|
-
</div>
|
1068
|
-
|
1069
|
-
<div class="output_wrapper">
|
1070
|
-
<div class="output">
|
1071
|
-
|
1072
|
-
|
1073
|
-
<div class="output_area">
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1078
|
-
<div class="output_html rendered_html output_subarea ">
|
1079
|
-
|
1080
|
-
<div class="bk-root" id="f11c21a5-5bd4-40f6-9ed2-eb47a64cd09d" data-root-id="1742"></div>
|
1081
|
-
|
1082
|
-
</div>
|
1083
|
-
|
1084
|
-
</div>
|
1085
|
-
|
1086
|
-
<div class="output_area">
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1092
|
-
|
1093
|
-
<div id="8f8e8488-48d9-449f-a8b5-091dd5aa0a94"></div>
|
1094
|
-
<div class="output_subarea output_javascript ">
|
1095
|
-
<script type="text/javascript">
|
1096
|
-
var element = $('#8f8e8488-48d9-449f-a8b5-091dd5aa0a94');
|
1097
|
-
(function(root) {
|
1098
|
-
function embed_document(root) {
|
1099
|
-
const docs_json = {"68c3d26b-74fe-45bb-81b0-a78dbf40dd1c":{"defs":[],"roots":{"references":[{"attributes":{"below":[{"id":"1750"}],"center":[{"id":"1752"},{"id":"1756"}],"height":400,"left":[{"id":"1753"}],"renderers":[{"id":"1775"},{"id":"1781"},{"id":"1787"}],"title":{"id":"1841"},"toolbar":{"id":"1764"},"width":800,"x_range":{"id":"1741"},"x_scale":{"id":"1746"},"y_range":{"id":"1744"},"y_scale":{"id":"1748"}},"id":"1742","subtype":"Figure","type":"Plot"},{"attributes":{},"id":"1850","type":"Selection"},{"attributes":{"start":0},"id":"1744","type":"DataRange1d"},{"attributes":{},"id":"1849","type":"UnionRenderers"},{"attributes":{},"id":"1757","type":"PanTool"},{"attributes":{},"id":"1852","type":"Selection"},{"attributes":{"coordinates":null,"data_source":{"id":"1783"},"glyph":{"id":"1784"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1786"},"nonselection_glyph":{"id":"1785"},"view":{"id":"1788"}},"id":"1787","type":"GlyphRenderer"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.2},"line_alpha":{"value":0.2},"line_color":{"value":"#1f77b4"},"top":{"field":"top"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1774","type":"VBar"},{"attributes":{},"id":"1761","type":"ResetTool"},{"attributes":{},"id":"1758","type":"WheelZoomTool"},{"attributes":{"axis":{"id":"1750"},"coordinates":null,"grid_line_color":null,"group":null,"ticker":null},"id":"1752","type":"Grid"},{"attributes":{"overlay":{"id":"1763"}},"id":"1759","type":"BoxZoomTool"},{"attributes":{},"id":"1851","type":"UnionRenderers"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"white"},"hatch_alpha":{"value":0.2},"line_alpha":{"value":0.2},"line_color":{"value":"red"},"size":{"value":10},"x":{"field":"x"},"y":{"field":"y"}},"id":"1786","type":"Circle"},{"attributes":{},"id":"1760","type":"SaveTool"},{"attributes":{},"id":"1853","type":"UnionRenderers"},{"attributes":{"data":{"x":["Q1","Q2","Q3","Q4"],"y":[12,9,13,14]},"selected":{"id":"1854"},"selection_policy":{"id":"1853"}},"id":"1783","type":"ColumnDataSource"},{"attributes":{},"id":"1751","type":"CategoricalTicker"},{"attributes":{},"id":"1854","type":"Selection"},{"attributes":{},"id":"1746","type":"CategoricalScale"},{"attributes":{},"id":"1762","type":"HelpTool"},{"attributes":{"coordinates":null,"data_source":{"id":"1771"},"glyph":{"id":"1772"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1774"},"nonselection_glyph":{"id":"1773"},"view":{"id":"1776"}},"id":"1775","type":"GlyphRenderer"},{"attributes":{},"id":"1748","type":"LinearScale"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"white"},"hatch_alpha":{"value":0.1},"line_alpha":{"value":0.1},"line_color":{"value":"red"},"size":{"value":10},"x":{"field":"x"},"y":{"field":"y"}},"id":"1785","type":"Circle"},{"attributes":{"fill_color":{"value":"white"},"line_color":{"value":"red"},"size":{"value":10},"x":{"field":"x"},"y":{"field":"y"}},"id":"1784","type":"Circle"},{"attributes":{"coordinates":null,"formatter":{"id":"1847"},"group":null,"major_label_policy":{"id":"1848"},"ticker":{"id":"1751"}},"id":"1750","type":"CategoricalAxis"},{"attributes":{"source":{"id":"1771"}},"id":"1776","type":"CDSView"},{"attributes":{"line_color":"red","line_width":3,"x":{"field":"x"},"y":{"field":"y"}},"id":"1778","type":"Line"},{"attributes":{"source":{"id":"1783"}},"id":"1788","type":"CDSView"},{"attributes":{"line_alpha":0.1,"line_color":"red","line_width":3,"x":{"field":"x"},"y":{"field":"y"}},"id":"1779","type":"Line"},{"attributes":{},"id":"1754","type":"BasicTicker"},{"attributes":{"fill_alpha":{"value":0.5},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.5},"line_alpha":{"value":0.5},"line_color":{"value":"#1f77b4"},"top":{"field":"top"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1772","type":"VBar"},{"attributes":{},"id":"1848","type":"AllLabels"},{"attributes":{"bottom_units":"screen","coordinates":null,"fill_alpha":0.5,"fill_color":"lightgrey","group":null,"left_units":"screen","level":"overlay","line_alpha":1.0,"line_color":"black","line_dash":[4,4],"line_width":2,"right_units":"screen","syncable":false,"top_units":"screen"},"id":"1763","type":"BoxAnnotation"},{"attributes":{"coordinates":null,"formatter":{"id":"1844"},"group":null,"major_label_policy":{"id":"1845"},"ticker":{"id":"1754"}},"id":"1753","type":"LinearAxis"},{"attributes":{},"id":"1847","type":"CategoricalTickFormatter"},{"attributes":{"coordinates":null,"data_source":{"id":"1777"},"glyph":{"id":"1778"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1780"},"nonselection_glyph":{"id":"1779"},"view":{"id":"1782"}},"id":"1781","type":"GlyphRenderer"},{"attributes":{"coordinates":null,"group":null},"id":"1841","type":"Title"},{"attributes":{"line_alpha":0.2,"line_color":"red","line_width":3,"x":{"field":"x"},"y":{"field":"y"}},"id":"1780","type":"Line"},{"attributes":{"tools":[{"id":"1757"},{"id":"1758"},{"id":"1759"},{"id":"1760"},{"id":"1761"},{"id":"1762"}]},"id":"1764","type":"Toolbar"},{"attributes":{"axis":{"id":"1753"},"coordinates":null,"dimension":1,"group":null,"ticker":null},"id":"1756","type":"Grid"},{"attributes":{},"id":"1845","type":"AllLabels"},{"attributes":{"data":{"x":["Q1","Q2","Q3","Q4"],"y":[12,9,13,14]},"selected":{"id":"1852"},"selection_policy":{"id":"1851"}},"id":"1777","type":"ColumnDataSource"},{"attributes":{"source":{"id":"1777"}},"id":"1782","type":"CDSView"},{"attributes":{"factors":[["Q1","jan"],["Q1","feb"],["Q1","mar"],["Q2","apr"],["Q2","may"],["Q2","jun"],["Q3","jul"],["Q3","aug"],["Q3","sep"],["Q4","oct"],["Q4","nov"],["Q4","dec"]],"range_padding":0.1},"id":"1741","type":"FactorRange"},{"attributes":{"data":{"top":[10,12,16,9,10,8,12,13,14,14,12,16],"x":[["Q1","jan"],["Q1","feb"],["Q1","mar"],["Q2","apr"],["Q2","may"],["Q2","jun"],["Q3","jul"],["Q3","aug"],["Q3","sep"],["Q4","oct"],["Q4","nov"],["Q4","dec"]]},"selected":{"id":"1850"},"selection_policy":{"id":"1849"}},"id":"1771","type":"ColumnDataSource"},{"attributes":{},"id":"1844","type":"BasicTickFormatter"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.1},"line_alpha":{"value":0.1},"line_color":{"value":"#1f77b4"},"top":{"field":"top"},"width":{"value":0.9},"x":{"field":"x"}},"id":"1773","type":"VBar"}],"root_ids":["1742"]},"title":"Bokeh Application","version":"2.4.3"}};
|
1100
|
-
const render_items = [{"docid":"68c3d26b-74fe-45bb-81b0-a78dbf40dd1c","root_ids":["1742"],"roots":{"1742":"f11c21a5-5bd4-40f6-9ed2-eb47a64cd09d"}}];
|
1101
|
-
root.Bokeh.embed.embed_items_notebook(docs_json, render_items);
|
1102
|
-
}
|
1103
|
-
if (root.Bokeh !== undefined) {
|
1104
|
-
embed_document(root);
|
1105
|
-
} else {
|
1106
|
-
let attempts = 0;
|
1107
|
-
const timer = setInterval(function(root) {
|
1108
|
-
if (root.Bokeh !== undefined) {
|
1109
|
-
clearInterval(timer);
|
1110
|
-
embed_document(root);
|
1111
|
-
} else {
|
1112
|
-
attempts++;
|
1113
|
-
if (attempts > 100) {
|
1114
|
-
clearInterval(timer);
|
1115
|
-
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
1116
|
-
}
|
1117
|
-
}
|
1118
|
-
}, 10, root)
|
1119
|
-
}
|
1120
|
-
})(window);
|
1121
|
-
</script>
|
1122
|
-
</div>
|
1123
|
-
|
1124
|
-
</div>
|
1125
|
-
|
1126
|
-
</div>
|
1127
|
-
</div>
|
1128
|
-
|
1129
|
-
</div>
|
1130
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
1131
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
1132
|
-
<h3 id="Using-Pandas-GroupBy">Using Pandas <code>GroupBy</code><a class="anchor-link" href="#Using-Pandas-GroupBy">¶</a></h3><p>We may want to make charts based on the results of "group by" operations. Bokeh can utilize Pandas <code>GroupBy</code> objects directly to make this simpler. Let's take a look at how Bokeh deals with <code>GroupBy</code> objects by examining the "cars" data set.</p>
|
1133
|
-
|
1134
|
-
</div>
|
1135
|
-
</div>
|
1136
|
-
</div>
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
<div class="
|
1141
|
-
cell border-box-sizing code_cell rendered">
|
1142
|
-
<div class="input">
|
1143
|
-
|
1144
|
-
<div class="inner_cell">
|
1145
|
-
<div class="input_area">
|
1146
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bokeh.sampledata.autompg</span> <span class="kn">import</span> <span class="n">autompg_clean</span> <span class="k">as</span> <span class="n">df</span>
|
1147
|
-
|
1148
|
-
<span class="n">df</span><span class="o">.</span><span class="n">cyl</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">cyl</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">str</span><span class="p">)</span>
|
1149
|
-
<span class="n">df</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
|
1150
|
-
</pre></div>
|
1151
|
-
|
1152
|
-
</div>
|
1153
|
-
</div>
|
1154
|
-
</div>
|
1155
|
-
|
1156
|
-
<div class="output_wrapper">
|
1157
|
-
<div class="output">
|
1158
|
-
|
1159
|
-
|
1160
|
-
<div class="output_area">
|
1161
|
-
|
1162
|
-
|
1163
|
-
|
1164
|
-
|
1165
|
-
<div class="output_html rendered_html output_subarea output_execute_result">
|
1166
|
-
<div>
|
1167
|
-
<style scoped>
|
1168
|
-
.dataframe tbody tr th:only-of-type {
|
1169
|
-
vertical-align: middle;
|
1170
|
-
}
|
1171
|
-
|
1172
|
-
.dataframe tbody tr th {
|
1173
|
-
vertical-align: top;
|
1174
|
-
}
|
1175
|
-
|
1176
|
-
.dataframe thead th {
|
1177
|
-
text-align: right;
|
1178
|
-
}
|
1179
|
-
</style>
|
1180
|
-
<table border="1" class="dataframe">
|
1181
|
-
<thead>
|
1182
|
-
<tr style="text-align: right;">
|
1183
|
-
<th></th>
|
1184
|
-
<th>mpg</th>
|
1185
|
-
<th>cyl</th>
|
1186
|
-
<th>displ</th>
|
1187
|
-
<th>hp</th>
|
1188
|
-
<th>weight</th>
|
1189
|
-
<th>accel</th>
|
1190
|
-
<th>yr</th>
|
1191
|
-
<th>origin</th>
|
1192
|
-
<th>name</th>
|
1193
|
-
<th>mfr</th>
|
1194
|
-
</tr>
|
1195
|
-
</thead>
|
1196
|
-
<tbody>
|
1197
|
-
<tr>
|
1198
|
-
<th>0</th>
|
1199
|
-
<td>18.0</td>
|
1200
|
-
<td>8</td>
|
1201
|
-
<td>307.0</td>
|
1202
|
-
<td>130</td>
|
1203
|
-
<td>3504</td>
|
1204
|
-
<td>12.0</td>
|
1205
|
-
<td>70</td>
|
1206
|
-
<td>North America</td>
|
1207
|
-
<td>chevrolet chevelle malibu</td>
|
1208
|
-
<td>chevrolet</td>
|
1209
|
-
</tr>
|
1210
|
-
<tr>
|
1211
|
-
<th>1</th>
|
1212
|
-
<td>15.0</td>
|
1213
|
-
<td>8</td>
|
1214
|
-
<td>350.0</td>
|
1215
|
-
<td>165</td>
|
1216
|
-
<td>3693</td>
|
1217
|
-
<td>11.5</td>
|
1218
|
-
<td>70</td>
|
1219
|
-
<td>North America</td>
|
1220
|
-
<td>buick skylark 320</td>
|
1221
|
-
<td>buick</td>
|
1222
|
-
</tr>
|
1223
|
-
<tr>
|
1224
|
-
<th>2</th>
|
1225
|
-
<td>18.0</td>
|
1226
|
-
<td>8</td>
|
1227
|
-
<td>318.0</td>
|
1228
|
-
<td>150</td>
|
1229
|
-
<td>3436</td>
|
1230
|
-
<td>11.0</td>
|
1231
|
-
<td>70</td>
|
1232
|
-
<td>North America</td>
|
1233
|
-
<td>plymouth satellite</td>
|
1234
|
-
<td>plymouth</td>
|
1235
|
-
</tr>
|
1236
|
-
<tr>
|
1237
|
-
<th>3</th>
|
1238
|
-
<td>16.0</td>
|
1239
|
-
<td>8</td>
|
1240
|
-
<td>304.0</td>
|
1241
|
-
<td>150</td>
|
1242
|
-
<td>3433</td>
|
1243
|
-
<td>12.0</td>
|
1244
|
-
<td>70</td>
|
1245
|
-
<td>North America</td>
|
1246
|
-
<td>amc rebel sst</td>
|
1247
|
-
<td>amc</td>
|
1248
|
-
</tr>
|
1249
|
-
<tr>
|
1250
|
-
<th>4</th>
|
1251
|
-
<td>17.0</td>
|
1252
|
-
<td>8</td>
|
1253
|
-
<td>302.0</td>
|
1254
|
-
<td>140</td>
|
1255
|
-
<td>3449</td>
|
1256
|
-
<td>10.5</td>
|
1257
|
-
<td>70</td>
|
1258
|
-
<td>North America</td>
|
1259
|
-
<td>ford torino</td>
|
1260
|
-
<td>ford</td>
|
1261
|
-
</tr>
|
1262
|
-
</tbody>
|
1263
|
-
</table>
|
1264
|
-
</div>
|
1265
|
-
</div>
|
1266
|
-
|
1267
|
-
</div>
|
1268
|
-
|
1269
|
-
</div>
|
1270
|
-
</div>
|
1271
|
-
|
1272
|
-
</div>
|
1273
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
1274
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
1275
|
-
<p>Suppose we would like to display some values grouped according to <code>"cyl"</code>. If we create <code>df.groupby(('cyl'))</code> then call <code>group.describe()</code> we can see that Pandas automatically computes various statistics for each group.</p>
|
1276
|
-
|
1277
|
-
</div>
|
1278
|
-
</div>
|
1279
|
-
</div>
|
1280
|
-
|
1281
|
-
|
1282
|
-
|
1283
|
-
<div class="
|
1284
|
-
cell border-box-sizing code_cell rendered">
|
1285
|
-
<div class="input">
|
1286
|
-
|
1287
|
-
<div class="inner_cell">
|
1288
|
-
<div class="input_area">
|
1289
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">group</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">groupby</span><span class="p">((</span><span class="s1">'cyl'</span><span class="p">))</span>
|
1290
|
-
<span class="n">group</span><span class="o">.</span><span class="n">describe</span><span class="p">()</span>
|
1291
|
-
</pre></div>
|
1292
|
-
|
1293
|
-
</div>
|
1294
|
-
</div>
|
1295
|
-
</div>
|
1296
|
-
|
1297
|
-
<div class="output_wrapper">
|
1298
|
-
<div class="output">
|
1299
|
-
|
1300
|
-
|
1301
|
-
<div class="output_area">
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
<div class="output_html rendered_html output_subarea output_execute_result">
|
1307
|
-
<div>
|
1308
|
-
<style scoped>
|
1309
|
-
.dataframe tbody tr th:only-of-type {
|
1310
|
-
vertical-align: middle;
|
1311
|
-
}
|
1312
|
-
|
1313
|
-
.dataframe tbody tr th {
|
1314
|
-
vertical-align: top;
|
1315
|
-
}
|
1316
|
-
|
1317
|
-
.dataframe thead tr th {
|
1318
|
-
text-align: left;
|
1319
|
-
}
|
1320
|
-
|
1321
|
-
.dataframe thead tr:last-of-type th {
|
1322
|
-
text-align: right;
|
1323
|
-
}
|
1324
|
-
</style>
|
1325
|
-
<table border="1" class="dataframe">
|
1326
|
-
<thead>
|
1327
|
-
<tr>
|
1328
|
-
<th></th>
|
1329
|
-
<th colspan="8" halign="left">mpg</th>
|
1330
|
-
<th colspan="2" halign="left">displ</th>
|
1331
|
-
<th>...</th>
|
1332
|
-
<th colspan="2" halign="left">accel</th>
|
1333
|
-
<th colspan="8" halign="left">yr</th>
|
1334
|
-
</tr>
|
1335
|
-
<tr>
|
1336
|
-
<th></th>
|
1337
|
-
<th>count</th>
|
1338
|
-
<th>mean</th>
|
1339
|
-
<th>std</th>
|
1340
|
-
<th>min</th>
|
1341
|
-
<th>25%</th>
|
1342
|
-
<th>50%</th>
|
1343
|
-
<th>75%</th>
|
1344
|
-
<th>max</th>
|
1345
|
-
<th>count</th>
|
1346
|
-
<th>mean</th>
|
1347
|
-
<th>...</th>
|
1348
|
-
<th>75%</th>
|
1349
|
-
<th>max</th>
|
1350
|
-
<th>count</th>
|
1351
|
-
<th>mean</th>
|
1352
|
-
<th>std</th>
|
1353
|
-
<th>min</th>
|
1354
|
-
<th>25%</th>
|
1355
|
-
<th>50%</th>
|
1356
|
-
<th>75%</th>
|
1357
|
-
<th>max</th>
|
1358
|
-
</tr>
|
1359
|
-
<tr>
|
1360
|
-
<th>cyl</th>
|
1361
|
-
<th></th>
|
1362
|
-
<th></th>
|
1363
|
-
<th></th>
|
1364
|
-
<th></th>
|
1365
|
-
<th></th>
|
1366
|
-
<th></th>
|
1367
|
-
<th></th>
|
1368
|
-
<th></th>
|
1369
|
-
<th></th>
|
1370
|
-
<th></th>
|
1371
|
-
<th></th>
|
1372
|
-
<th></th>
|
1373
|
-
<th></th>
|
1374
|
-
<th></th>
|
1375
|
-
<th></th>
|
1376
|
-
<th></th>
|
1377
|
-
<th></th>
|
1378
|
-
<th></th>
|
1379
|
-
<th></th>
|
1380
|
-
<th></th>
|
1381
|
-
<th></th>
|
1382
|
-
</tr>
|
1383
|
-
</thead>
|
1384
|
-
<tbody>
|
1385
|
-
<tr>
|
1386
|
-
<th>3</th>
|
1387
|
-
<td>4.0</td>
|
1388
|
-
<td>20.550000</td>
|
1389
|
-
<td>2.564501</td>
|
1390
|
-
<td>18.0</td>
|
1391
|
-
<td>18.75</td>
|
1392
|
-
<td>20.25</td>
|
1393
|
-
<td>22.05</td>
|
1394
|
-
<td>23.7</td>
|
1395
|
-
<td>4.0</td>
|
1396
|
-
<td>72.500000</td>
|
1397
|
-
<td>...</td>
|
1398
|
-
<td>13.5</td>
|
1399
|
-
<td>13.5</td>
|
1400
|
-
<td>4.0</td>
|
1401
|
-
<td>75.500000</td>
|
1402
|
-
<td>3.696846</td>
|
1403
|
-
<td>72.0</td>
|
1404
|
-
<td>72.75</td>
|
1405
|
-
<td>75.0</td>
|
1406
|
-
<td>77.75</td>
|
1407
|
-
<td>80.0</td>
|
1408
|
-
</tr>
|
1409
|
-
<tr>
|
1410
|
-
<th>4</th>
|
1411
|
-
<td>199.0</td>
|
1412
|
-
<td>29.283920</td>
|
1413
|
-
<td>5.670546</td>
|
1414
|
-
<td>18.0</td>
|
1415
|
-
<td>25.00</td>
|
1416
|
-
<td>28.40</td>
|
1417
|
-
<td>32.95</td>
|
1418
|
-
<td>46.6</td>
|
1419
|
-
<td>199.0</td>
|
1420
|
-
<td>109.670854</td>
|
1421
|
-
<td>...</td>
|
1422
|
-
<td>18.0</td>
|
1423
|
-
<td>24.8</td>
|
1424
|
-
<td>199.0</td>
|
1425
|
-
<td>77.030151</td>
|
1426
|
-
<td>3.737484</td>
|
1427
|
-
<td>70.0</td>
|
1428
|
-
<td>74.00</td>
|
1429
|
-
<td>77.0</td>
|
1430
|
-
<td>80.00</td>
|
1431
|
-
<td>82.0</td>
|
1432
|
-
</tr>
|
1433
|
-
<tr>
|
1434
|
-
<th>5</th>
|
1435
|
-
<td>3.0</td>
|
1436
|
-
<td>27.366667</td>
|
1437
|
-
<td>8.228204</td>
|
1438
|
-
<td>20.3</td>
|
1439
|
-
<td>22.85</td>
|
1440
|
-
<td>25.40</td>
|
1441
|
-
<td>30.90</td>
|
1442
|
-
<td>36.4</td>
|
1443
|
-
<td>3.0</td>
|
1444
|
-
<td>145.000000</td>
|
1445
|
-
<td>...</td>
|
1446
|
-
<td>20.0</td>
|
1447
|
-
<td>20.1</td>
|
1448
|
-
<td>3.0</td>
|
1449
|
-
<td>79.000000</td>
|
1450
|
-
<td>1.000000</td>
|
1451
|
-
<td>78.0</td>
|
1452
|
-
<td>78.50</td>
|
1453
|
-
<td>79.0</td>
|
1454
|
-
<td>79.50</td>
|
1455
|
-
<td>80.0</td>
|
1456
|
-
</tr>
|
1457
|
-
<tr>
|
1458
|
-
<th>6</th>
|
1459
|
-
<td>83.0</td>
|
1460
|
-
<td>19.973494</td>
|
1461
|
-
<td>3.828809</td>
|
1462
|
-
<td>15.0</td>
|
1463
|
-
<td>18.00</td>
|
1464
|
-
<td>19.00</td>
|
1465
|
-
<td>21.00</td>
|
1466
|
-
<td>38.0</td>
|
1467
|
-
<td>83.0</td>
|
1468
|
-
<td>218.361446</td>
|
1469
|
-
<td>...</td>
|
1470
|
-
<td>17.6</td>
|
1471
|
-
<td>21.0</td>
|
1472
|
-
<td>83.0</td>
|
1473
|
-
<td>75.951807</td>
|
1474
|
-
<td>3.264381</td>
|
1475
|
-
<td>70.0</td>
|
1476
|
-
<td>74.00</td>
|
1477
|
-
<td>76.0</td>
|
1478
|
-
<td>78.00</td>
|
1479
|
-
<td>82.0</td>
|
1480
|
-
</tr>
|
1481
|
-
<tr>
|
1482
|
-
<th>8</th>
|
1483
|
-
<td>103.0</td>
|
1484
|
-
<td>14.963107</td>
|
1485
|
-
<td>2.836284</td>
|
1486
|
-
<td>9.0</td>
|
1487
|
-
<td>13.00</td>
|
1488
|
-
<td>14.00</td>
|
1489
|
-
<td>16.00</td>
|
1490
|
-
<td>26.6</td>
|
1491
|
-
<td>103.0</td>
|
1492
|
-
<td>345.009709</td>
|
1493
|
-
<td>...</td>
|
1494
|
-
<td>14.0</td>
|
1495
|
-
<td>22.2</td>
|
1496
|
-
<td>103.0</td>
|
1497
|
-
<td>73.902913</td>
|
1498
|
-
<td>3.021214</td>
|
1499
|
-
<td>70.0</td>
|
1500
|
-
<td>72.00</td>
|
1501
|
-
<td>73.0</td>
|
1502
|
-
<td>76.00</td>
|
1503
|
-
<td>81.0</td>
|
1504
|
-
</tr>
|
1505
|
-
</tbody>
|
1506
|
-
</table>
|
1507
|
-
<p>5 rows × 48 columns</p>
|
1508
|
-
</div>
|
1509
|
-
</div>
|
1510
|
-
|
1511
|
-
</div>
|
1512
|
-
|
1513
|
-
</div>
|
1514
|
-
</div>
|
1515
|
-
|
1516
|
-
</div>
|
1517
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
1518
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
1519
|
-
<p>Bokeh allows us to create a <code>ColumnDataSource</code> directly from Pandas <code>GroupBy</code> objects, and when this happens, the data source is automatically filled with the summary values from <code>group.desribe()</code>. Observe the column names below, which correspond to the output above.</p>
|
1520
|
-
|
1521
|
-
</div>
|
1522
|
-
</div>
|
1523
|
-
</div>
|
1524
|
-
|
1525
|
-
|
1526
|
-
|
1527
|
-
<div class="
|
1528
|
-
cell border-box-sizing code_cell rendered">
|
1529
|
-
<div class="input">
|
1530
|
-
|
1531
|
-
<div class="inner_cell">
|
1532
|
-
<div class="input_area">
|
1533
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">source</span> <span class="o">=</span> <span class="n">ColumnDataSource</span><span class="p">(</span><span class="n">group</span><span class="p">)</span>
|
1534
|
-
<span class="s2">","</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">source</span><span class="o">.</span><span class="n">column_names</span><span class="p">)</span>
|
1535
|
-
</pre></div>
|
1536
|
-
|
1537
|
-
</div>
|
1538
|
-
</div>
|
1539
|
-
</div>
|
1540
|
-
|
1541
|
-
<div class="output_wrapper">
|
1542
|
-
<div class="output">
|
1543
|
-
|
1544
|
-
|
1545
|
-
<div class="output_area">
|
1546
|
-
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
<div class="output_text output_subarea output_execute_result">
|
1552
|
-
<pre>'cyl,mpg_count,mpg_mean,mpg_std,mpg_min,mpg_25%,mpg_50%,mpg_75%,mpg_max,displ_count,displ_mean,displ_std,displ_min,displ_25%,displ_50%,displ_75%,displ_max,hp_count,hp_mean,hp_std,hp_min,hp_25%,hp_50%,hp_75%,hp_max,weight_count,weight_mean,weight_std,weight_min,weight_25%,weight_50%,weight_75%,weight_max,accel_count,accel_mean,accel_std,accel_min,accel_25%,accel_50%,accel_75%,accel_max,yr_count,yr_mean,yr_std,yr_min,yr_25%,yr_50%,yr_75%,yr_max'</pre>
|
1553
|
-
</div>
|
1554
|
-
|
1555
|
-
</div>
|
1556
|
-
|
1557
|
-
</div>
|
1558
|
-
</div>
|
1559
|
-
|
1560
|
-
</div>
|
1561
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
1562
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
1563
|
-
<p>Knowing these column names, we can immediately create bar charts based on Pandas <code>GroupBy</code> objects. The example below plots the aveage MPG per cylinder, i.e. columns <code>"mpg_mean"</code> vs <code>"cyl"</code></p>
|
1564
|
-
|
1565
|
-
</div>
|
1566
|
-
</div>
|
1567
|
-
</div>
|
1568
|
-
|
1569
|
-
|
1570
|
-
|
1571
|
-
<div class="
|
1572
|
-
cell border-box-sizing code_cell rendered">
|
1573
|
-
<div class="input">
|
1574
|
-
|
1575
|
-
<div class="inner_cell">
|
1576
|
-
<div class="input_area">
|
1577
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bokeh.palettes</span> <span class="kn">import</span> <span class="n">Spectral5</span>
|
1578
|
-
|
1579
|
-
<span class="n">cyl_cmap</span> <span class="o">=</span> <span class="n">factor_cmap</span><span class="p">(</span>
|
1580
|
-
<span class="s1">'cyl'</span><span class="p">,</span>
|
1581
|
-
<span class="n">palette</span><span class="o">=</span><span class="n">Spectral5</span><span class="p">,</span>
|
1582
|
-
<span class="n">factors</span><span class="o">=</span><span class="nb">sorted</span><span class="p">(</span><span class="n">df</span><span class="o">.</span><span class="n">cyl</span><span class="o">.</span><span class="n">unique</span><span class="p">())</span>
|
1583
|
-
<span class="p">)</span>
|
1584
|
-
|
1585
|
-
<span class="c1"># create a new plot using figure</span>
|
1586
|
-
<span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span>
|
1587
|
-
<span class="n">plot_height</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span>
|
1588
|
-
<span class="n">plot_width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
|
1589
|
-
<span class="n">x_range</span><span class="o">=</span><span class="n">group</span>
|
1590
|
-
<span class="p">)</span>
|
1591
|
-
<span class="n">p</span><span class="o">.</span><span class="n">vbar</span><span class="p">(</span>
|
1592
|
-
<span class="n">x</span><span class="o">=</span><span class="s1">'cyl'</span><span class="p">,</span>
|
1593
|
-
<span class="n">top</span><span class="o">=</span><span class="s1">'mpg_mean'</span><span class="p">,</span>
|
1594
|
-
<span class="n">width</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
1595
|
-
<span class="n">line_color</span><span class="o">=</span><span class="s2">"white"</span><span class="p">,</span>
|
1596
|
-
<span class="n">fill_color</span><span class="o">=</span><span class="n">cyl_cmap</span><span class="p">,</span>
|
1597
|
-
<span class="n">source</span><span class="o">=</span><span class="n">source</span>
|
1598
|
-
<span class="p">)</span>
|
1599
|
-
|
1600
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xgrid</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="kc">None</span>
|
1601
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xaxis</span><span class="o">.</span><span class="n">axis_label</span> <span class="o">=</span> <span class="s2">"number of cylinders"</span>
|
1602
|
-
<span class="n">p</span><span class="o">.</span><span class="n">yaxis</span><span class="o">.</span><span class="n">axis_label</span> <span class="o">=</span> <span class="s2">"Mean MPG"</span>
|
1603
|
-
<span class="n">p</span><span class="o">.</span><span class="n">y_range</span><span class="o">.</span><span class="n">start</span> <span class="o">=</span> <span class="mi">0</span>
|
1604
|
-
|
1605
|
-
<span class="c1"># show the results</span>
|
1606
|
-
<span class="n">show</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
|
1607
|
-
</pre></div>
|
1608
|
-
|
1609
|
-
</div>
|
1610
|
-
</div>
|
1611
|
-
</div>
|
1612
|
-
|
1613
|
-
<div class="output_wrapper">
|
1614
|
-
<div class="output">
|
1615
|
-
|
1616
|
-
|
1617
|
-
<div class="output_area">
|
1618
|
-
|
1619
|
-
|
1620
|
-
|
1621
|
-
|
1622
|
-
<div class="output_html rendered_html output_subarea ">
|
1623
|
-
|
1624
|
-
<div class="bk-root" id="f3dee939-12c9-4951-806c-cd27369930b6" data-root-id="1933"></div>
|
1625
|
-
|
1626
|
-
</div>
|
1627
|
-
|
1628
|
-
</div>
|
1629
|
-
|
1630
|
-
<div class="output_area">
|
1631
|
-
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
<div id="ace9ad17-c07f-4980-9114-05c74eeb6687"></div>
|
1638
|
-
<div class="output_subarea output_javascript ">
|
1639
|
-
<script type="text/javascript">
|
1640
|
-
var element = $('#ace9ad17-c07f-4980-9114-05c74eeb6687');
|
1641
|
-
(function(root) {
|
1642
|
-
function embed_document(root) {
|
1643
|
-
const docs_json = {"0148fb35-1851-4a4f-bb64-9b3f4227179c":{"defs":[],"roots":{"references":[{"attributes":{"below":[{"id":"1942"}],"center":[{"id":"1944"},{"id":"1948"}],"height":400,"left":[{"id":"1945"}],"renderers":[{"id":"1967"}],"title":{"id":"2036"},"toolbar":{"id":"1956"},"width":800,"x_range":{"id":"1934"},"x_scale":{"id":"1938"},"y_range":{"id":"1936"},"y_scale":{"id":"1940"}},"id":"1933","subtype":"Figure","type":"Plot"},{"attributes":{},"id":"1938","type":"CategoricalScale"},{"attributes":{},"id":"1940","type":"LinearScale"},{"attributes":{"data":{"accel_25%":{"__ndarray__":"AAAAAACAKkCamZmZmZktQGZmZmZm5jFAmpmZmZkZLkAAAAAAAAAnQA==","dtype":"float64","order":"little","shape":[5]},"accel_50%":{"__ndarray__":"AAAAAAAAK0AzMzMzMzMwQGZmZmZm5jNAAAAAAAAAMEAAAAAAAAAqQA==","dtype":"float64","order":"little","shape":[5]},"accel_75%":{"__ndarray__":"AAAAAAAAK0AAAAAAAAAyQAAAAAAAADRAmpmZmZmZMUAAAAAAAAAsQA==","dtype":"float64","order":"little","shape":[5]},"accel_count":{"__ndarray__":"AAAAAAAAEEAAAAAAAOBoQAAAAAAAAAhAAAAAAADAVEAAAAAAAMBZQA==","dtype":"float64","order":"little","shape":[5]},"accel_max":{"__ndarray__":"AAAAAAAAK0DNzMzMzMw4QJqZmZmZGTRAAAAAAAAANUAzMzMzMzM2QA==","dtype":"float64","order":"little","shape":[5]},"accel_mean":{"__ndarray__":"AAAAAACAKkCRxCwG+JQwQCIiIiIiojJA7d9LWxRBMEA+LI1MIukpQA==","dtype":"float64","order":"little","shape":[5]},"accel_min":{"__ndarray__":"AAAAAAAAKUAzMzMzMzMnQM3MzMzMzC9AmpmZmZmZJkAAAAAAAAAgQA==","dtype":"float64","order":"little","shape":[5]},"accel_std":{"__ndarray__":"AAAAAAAA4D+b1TA5wxADQO1jrP039AJA0StM4BRBAED/ZpysTswBQA==","dtype":"float64","order":"little","shape":[5]},"cyl":["3","4","5","6","8"],"displ_25%":{"__ndarray__":"AAAAAACAUUAAAAAAAMBWQAAAAAAAgF9AAAAAAADwaEAAAAAAABBzQA==","dtype":"float64","order":"little","shape":[5]},"displ_50%":{"__ndarray__":"AAAAAACAUUAAAAAAAEBaQAAAAAAAYGBAAAAAAADgbEAAAAAAAOB1QA==","dtype":"float64","order":"little","shape":[5]},"displ_75%":{"__ndarray__":"AAAAAAAgUkAAAAAAAEBeQAAAAAAAoGNAAAAAAABAb0AAAAAAAIB2QA==","dtype":"float64","order":"little","shape":[5]},"displ_count":{"__ndarray__":"AAAAAAAAEEAAAAAAAOBoQAAAAAAAAAhAAAAAAADAVEAAAAAAAMBZQA==","dtype":"float64","order":"little","shape":[5]},"displ_max":{"__ndarray__":"AAAAAAAAVEAAAAAAAIBjQAAAAAAA4GZAAAAAAABgcEAAAAAAAHB8QA==","dtype":"float64","order":"little","shape":[5]},"displ_mean":{"__ndarray__":"AAAAAAAgUkD/9sBG72pbQAAAAAAAIGJAmjq/9pBLa0DJeVnEJ5B1QA==","dtype":"float64","order":"little","shape":[5]},"displ_min":{"__ndarray__":"AAAAAACAUUAAAAAAAABRQAAAAAAAQF5AAAAAAAAgYkAAAAAAAEBwQA==","dtype":"float64","order":"little","shape":[5]},"displ_std":{"__ndarray__":"AAAAAAAAFEC8furRdmA1QLmT4WuwpEBAT4BvAbA2QEDXs8ZGYGNHQA==","dtype":"float64","order":"little","shape":[5]},"hp_25%":{"__ndarray__":"AAAAAADQV0AAAAAAAABRQAAAAAAAAFJAAAAAAAAgV0AAAAAAAIBhQA==","dtype":"float64","order":"little","shape":[5]},"hp_50%":{"__ndarray__":"AAAAAACgWEAAAAAAAIBTQAAAAAAAQFNAAAAAAAAAWUAAAAAAAMBiQA==","dtype":"float64","order":"little","shape":[5]},"hp_75%":{"__ndarray__":"AAAAAACgWUAAAAAAAABWQAAAAAAAgFZAAAAAAACAW0AAAAAAAOBlQA==","dtype":"float64","order":"little","shape":[5]},"hp_count":{"__ndarray__":"AAAAAAAAEEAAAAAAAOBoQAAAAAAAAAhAAAAAAADAVEAAAAAAAMBZQA==","dtype":"float64","order":"little","shape":[5]},"hp_max":{"__ndarray__":"AAAAAACAW0AAAAAAAMBcQAAAAAAAwFlAAAAAAACgZEAAAAAAAMBsQA==","dtype":"float64","order":"little","shape":[5]},"hp_mean":{"__ndarray__":"AAAAAADQWEB2PKeSApJTQFVVVVVVlVRAsD3ksmJgWUDCfquNocljQA==","dtype":"float64","order":"little","shape":[5]},"hp_min":{"__ndarray__":"AAAAAACAVkAAAAAAAABHQAAAAAAAwFBAAAAAAAAAUkAAAAAAAIBWQA==","dtype":"float64","order":"little","shape":[5]},"hp_std":{"__ndarray__":"sTIWI2yaIECGr0Go0wstQDKsjxZJlTJAxZAwIvaeLEBQwZb3G3Q8QA==","dtype":"float64","order":"little","shape":[5]},"mpg_25%":{"__ndarray__":"AAAAAADAMkAAAAAAAAA5QJqZmZmZ2TZAAAAAAAAAMkAAAAAAAAAqQA==","dtype":"float64","order":"little","shape":[5]},"mpg_50%":{"__ndarray__":"AAAAAABANEBmZmZmZmY8QGZmZmZmZjlAAAAAAAAAM0AAAAAAAAAsQA==","dtype":"float64","order":"little","shape":[5]},"mpg_75%":{"__ndarray__":"zczMzMwMNkCamZmZmXlAQGZmZmZm5j5AAAAAAAAANUAAAAAAAAAwQA==","dtype":"float64","order":"little","shape":[5]},"mpg_count":{"__ndarray__":"AAAAAAAAEEAAAAAAAOBoQAAAAAAAAAhAAAAAAADAVEAAAAAAAMBZQA==","dtype":"float64","order":"little","shape":[5]},"mpg_max":{"__ndarray__":"MzMzMzOzN0DNzMzMzExHQDMzMzMzM0JAAAAAAAAAQ0CamZmZmZk6QA==","dtype":"float64","order":"little","shape":[5]},"mpg_mean":{"__ndarray__":"zczMzMyMNEBwD2z0rkg9QN3d3d3dXTtA6lu15jb5M0BgwH9VHO0tQA==","dtype":"float64","order":"little","shape":[5]},"mpg_min":{"__ndarray__":"AAAAAAAAMkAAAAAAAAAyQM3MzMzMTDRAAAAAAAAALkAAAAAAAAAiQA==","dtype":"float64","order":"little","shape":[5]},"mpg_std":{"__ndarray__":"ca9eOxmEBECNLXOmo64WQOWG1RfXdCBALURKf2ahDkC0cW7BtbAGQA==","dtype":"float64","order":"little","shape":[5]},"weight_25%":{"__ndarray__":"AAAAAADNoUAAAAAAAP6fQAAAAAAAlKZAAAAAAAACp0AAAAAAAK6tQA==","dtype":"float64","order":"little","shape":[5]},"weight_50%":{"__ndarray__":"AAAAAACOokAAAAAAAGyhQAAAAAAADKdAAAAAAAAUqUAAAAAAACywQA==","dtype":"float64","order":"little","shape":[5]},"weight_75%":{"__ndarray__":"AAAAAAB+o0AAAAAAAAWkQAAAAAAAUKlAAAAAAADOqkAAAAAAgDOxQA==","dtype":"float64","order":"little","shape":[5]},"weight_count":{"__ndarray__":"AAAAAAAAEEAAAAAAAOBoQAAAAAAAAAhAAAAAAADAVEAAAAAAAMBZQA==","dtype":"float64","order":"little","shape":[5]},"weight_max":{"__ndarray__":"AAAAAABApUAAAAAAAIypQAAAAAAAlKtAAAAAAACGrkAAAAAAABS0QA==","dtype":"float64","order":"little","shape":[5]},"weight_mean":{"__ndarray__":"AAAAAAC9okAsMl+aOAKiQKuqqqqqPqhAjqbOrz0EqUBD0x3stxKwQA==","dtype":"float64","order":"little","shape":[5]},"weight_min":{"__ndarray__":"AAAAAACYoEAAAAAAADSZQAAAAAAAHKZAAAAAAABQo0AAAAAAAByoQA==","dtype":"float64","order":"little","shape":[5]},"weight_std":{"__ndarray__":"udhs7B3ybkC6+VSg9G11QA9pSX6AZXdAdmeNgiLGdEC+UR6eVA18QA==","dtype":"float64","order":"little","shape":[5]},"yr_25%":{"__ndarray__":"AAAAAAAwUkAAAAAAAIBSQAAAAAAAoFNAAAAAAACAUkAAAAAAAABSQA==","dtype":"float64","order":"little","shape":[5]},"yr_50%":{"__ndarray__":"AAAAAADAUkAAAAAAAEBTQAAAAAAAwFNAAAAAAAAAU0AAAAAAAEBSQA==","dtype":"float64","order":"little","shape":[5]},"yr_75%":{"__ndarray__":"AAAAAABwU0AAAAAAAABUQAAAAAAA4FNAAAAAAACAU0AAAAAAAABTQA==","dtype":"float64","order":"little","shape":[5]},"yr_count":{"__ndarray__":"AAAAAAAAEEAAAAAAAOBoQAAAAAAAAAhAAAAAAADAVEAAAAAAAMBZQA==","dtype":"float64","order":"little","shape":[5]},"yr_max":{"__ndarray__":"AAAAAAAAVEAAAAAAAIBUQAAAAAAAAFRAAAAAAACAVEAAAAAAAEBUQA==","dtype":"float64","order":"little","shape":[5]},"yr_mean":{"__ndarray__":"AAAAAADgUkDEWG397UFTQAAAAAAAwFNAghLeaOr8UkCL+ARSyXlSQA==","dtype":"float64","order":"little","shape":[5]},"yr_min":{"__ndarray__":"AAAAAAAAUkAAAAAAAIBRQAAAAAAAgFNAAAAAAACAUUAAAAAAAIBRQA==","dtype":"float64","order":"little","shape":[5]},"yr_std":{"__ndarray__":"p1MQvCOTDUAd5PLGXeYNQAAAAAAAAPA/p0OY+nMdCkAEv1x2cisIQA==","dtype":"float64","order":"little","shape":[5]}},"selected":{"id":"2045"},"selection_policy":{"id":"2044"}},"id":"1931","type":"ColumnDataSource"},{"attributes":{},"id":"1949","type":"PanTool"},{"attributes":{"axis":{"id":"1945"},"coordinates":null,"dimension":1,"group":null,"ticker":null},"id":"1948","type":"Grid"},{"attributes":{"bottom_units":"screen","coordinates":null,"fill_alpha":0.5,"fill_color":"lightgrey","group":null,"left_units":"screen","level":"overlay","line_alpha":1.0,"line_color":"black","line_dash":[4,4],"line_width":2,"right_units":"screen","syncable":false,"top_units":"screen"},"id":"1955","type":"BoxAnnotation"},{"attributes":{"coordinates":null,"data_source":{"id":"1931"},"glyph":{"id":"1964"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"1966"},"nonselection_glyph":{"id":"1965"},"view":{"id":"1968"}},"id":"1967","type":"GlyphRenderer"},{"attributes":{"tools":[{"id":"1949"},{"id":"1950"},{"id":"1951"},{"id":"1952"},{"id":"1953"},{"id":"1954"}]},"id":"1956","type":"Toolbar"},{"attributes":{},"id":"2040","type":"AllLabels"},{"attributes":{"coordinates":null,"group":null},"id":"2036","type":"Title"},{"attributes":{"fill_color":{"field":"cyl","transform":{"id":"1932"}},"line_color":{"value":"white"},"top":{"field":"mpg_mean"},"x":{"field":"cyl"}},"id":"1964","type":"VBar"},{"attributes":{},"id":"2039","type":"BasicTickFormatter"},{"attributes":{},"id":"2042","type":"CategoricalTickFormatter"},{"attributes":{"source":{"id":"1931"}},"id":"1968","type":"CDSView"},{"attributes":{},"id":"2045","type":"Selection"},{"attributes":{},"id":"1943","type":"CategoricalTicker"},{"attributes":{"axis_label":"number of cylinders","coordinates":null,"formatter":{"id":"2042"},"group":null,"major_label_policy":{"id":"2043"},"ticker":{"id":"1943"}},"id":"1942","type":"CategoricalAxis"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"field":"cyl","transform":{"id":"1932"}},"hatch_alpha":{"value":0.2},"line_alpha":{"value":0.2},"line_color":{"value":"white"},"top":{"field":"mpg_mean"},"x":{"field":"cyl"}},"id":"1966","type":"VBar"},{"attributes":{},"id":"2043","type":"AllLabels"},{"attributes":{"factors":["3","4","5","6","8"],"palette":["#2b83ba","#abdda4","#ffffbf","#fdae61","#d7191c"]},"id":"1932","type":"CategoricalColorMapper"},{"attributes":{"overlay":{"id":"1955"}},"id":"1951","type":"BoxZoomTool"},{"attributes":{},"id":"1952","type":"SaveTool"},{"attributes":{},"id":"1946","type":"BasicTicker"},{"attributes":{"factors":["3","4","5","6","8"]},"id":"1934","type":"FactorRange"},{"attributes":{"start":0},"id":"1936","type":"DataRange1d"},{"attributes":{},"id":"1953","type":"ResetTool"},{"attributes":{"axis":{"id":"1942"},"coordinates":null,"grid_line_color":null,"group":null,"ticker":null},"id":"1944","type":"Grid"},{"attributes":{"axis_label":"Mean MPG","coordinates":null,"formatter":{"id":"2039"},"group":null,"major_label_policy":{"id":"2040"},"ticker":{"id":"1946"}},"id":"1945","type":"LinearAxis"},{"attributes":{},"id":"2044","type":"UnionRenderers"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"field":"cyl","transform":{"id":"1932"}},"hatch_alpha":{"value":0.1},"line_alpha":{"value":0.1},"line_color":{"value":"white"},"top":{"field":"mpg_mean"},"x":{"field":"cyl"}},"id":"1965","type":"VBar"},{"attributes":{},"id":"1950","type":"WheelZoomTool"},{"attributes":{},"id":"1954","type":"HelpTool"}],"root_ids":["1933"]},"title":"Bokeh Application","version":"2.4.3"}};
|
1644
|
-
const render_items = [{"docid":"0148fb35-1851-4a4f-bb64-9b3f4227179c","root_ids":["1933"],"roots":{"1933":"f3dee939-12c9-4951-806c-cd27369930b6"}}];
|
1645
|
-
root.Bokeh.embed.embed_items_notebook(docs_json, render_items);
|
1646
|
-
}
|
1647
|
-
if (root.Bokeh !== undefined) {
|
1648
|
-
embed_document(root);
|
1649
|
-
} else {
|
1650
|
-
let attempts = 0;
|
1651
|
-
const timer = setInterval(function(root) {
|
1652
|
-
if (root.Bokeh !== undefined) {
|
1653
|
-
clearInterval(timer);
|
1654
|
-
embed_document(root);
|
1655
|
-
} else {
|
1656
|
-
attempts++;
|
1657
|
-
if (attempts > 100) {
|
1658
|
-
clearInterval(timer);
|
1659
|
-
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
1660
|
-
}
|
1661
|
-
}
|
1662
|
-
}, 10, root)
|
1663
|
-
}
|
1664
|
-
})(window);
|
1665
|
-
</script>
|
1666
|
-
</div>
|
1667
|
-
|
1668
|
-
</div>
|
1669
|
-
|
1670
|
-
</div>
|
1671
|
-
</div>
|
1672
|
-
|
1673
|
-
</div>
|
1674
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
1675
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
1676
|
-
<h3 id="Categorical-Scatterplots">Categorical Scatterplots<a class="anchor-link" href="#Categorical-Scatterplots">¶</a></h3><p>So far we have seen Categorical data used together with various bar glyphs. But Bokeh can use categorical coordinates for most any glyphs. Let's create a scatter plot with categorical coordinates on one axis. The <code>commits</code> data set simply has a series datetimes of GitHub commit. Additional columns to express the day and hour of day for each commit have already been added.</p>
|
1677
|
-
|
1678
|
-
</div>
|
1679
|
-
</div>
|
1680
|
-
</div>
|
1681
|
-
|
1682
|
-
|
1683
|
-
|
1684
|
-
<div class="
|
1685
|
-
cell border-box-sizing code_cell rendered">
|
1686
|
-
<div class="input">
|
1687
|
-
|
1688
|
-
<div class="inner_cell">
|
1689
|
-
<div class="input_area">
|
1690
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bokeh.sampledata.commits</span> <span class="kn">import</span> <span class="n">data</span>
|
1691
|
-
|
1692
|
-
<span class="n">data</span><span class="o">.</span><span class="n">head</span><span class="p">()</span>
|
1693
|
-
</pre></div>
|
1694
|
-
|
1695
|
-
</div>
|
1696
|
-
</div>
|
1697
|
-
</div>
|
1698
|
-
|
1699
|
-
<div class="output_wrapper">
|
1700
|
-
<div class="output">
|
1701
|
-
|
1702
|
-
|
1703
|
-
<div class="output_area">
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1708
|
-
<div class="output_html rendered_html output_subarea output_execute_result">
|
1709
|
-
<div>
|
1710
|
-
<style scoped>
|
1711
|
-
.dataframe tbody tr th:only-of-type {
|
1712
|
-
vertical-align: middle;
|
1713
|
-
}
|
1714
|
-
|
1715
|
-
.dataframe tbody tr th {
|
1716
|
-
vertical-align: top;
|
1717
|
-
}
|
1718
|
-
|
1719
|
-
.dataframe thead th {
|
1720
|
-
text-align: right;
|
1721
|
-
}
|
1722
|
-
</style>
|
1723
|
-
<table border="1" class="dataframe">
|
1724
|
-
<thead>
|
1725
|
-
<tr style="text-align: right;">
|
1726
|
-
<th></th>
|
1727
|
-
<th>day</th>
|
1728
|
-
<th>time</th>
|
1729
|
-
</tr>
|
1730
|
-
<tr>
|
1731
|
-
<th>datetime</th>
|
1732
|
-
<th></th>
|
1733
|
-
<th></th>
|
1734
|
-
</tr>
|
1735
|
-
</thead>
|
1736
|
-
<tbody>
|
1737
|
-
<tr>
|
1738
|
-
<th>2017-04-22 15:11:58-05:00</th>
|
1739
|
-
<td>Sat</td>
|
1740
|
-
<td>15:11:58</td>
|
1741
|
-
</tr>
|
1742
|
-
<tr>
|
1743
|
-
<th>2017-04-21 14:20:57-05:00</th>
|
1744
|
-
<td>Fri</td>
|
1745
|
-
<td>14:20:57</td>
|
1746
|
-
</tr>
|
1747
|
-
<tr>
|
1748
|
-
<th>2017-04-20 14:35:08-05:00</th>
|
1749
|
-
<td>Thu</td>
|
1750
|
-
<td>14:35:08</td>
|
1751
|
-
</tr>
|
1752
|
-
<tr>
|
1753
|
-
<th>2017-04-20 10:34:29-05:00</th>
|
1754
|
-
<td>Thu</td>
|
1755
|
-
<td>10:34:29</td>
|
1756
|
-
</tr>
|
1757
|
-
<tr>
|
1758
|
-
<th>2017-04-20 09:17:23-05:00</th>
|
1759
|
-
<td>Thu</td>
|
1760
|
-
<td>09:17:23</td>
|
1761
|
-
</tr>
|
1762
|
-
</tbody>
|
1763
|
-
</table>
|
1764
|
-
</div>
|
1765
|
-
</div>
|
1766
|
-
|
1767
|
-
</div>
|
1768
|
-
|
1769
|
-
</div>
|
1770
|
-
</div>
|
1771
|
-
|
1772
|
-
</div>
|
1773
|
-
<div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
|
1774
|
-
<div class="text_cell_render border-box-sizing rendered_html">
|
1775
|
-
<p>To create our scatter plot, we pass the list of categories as the range just as before</p>
|
1776
|
-
<div class="highlight"><pre><span></span><span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span><span class="n">y_range</span><span class="o">=</span><span class="n">DAYS</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
|
1777
|
-
</pre></div>
|
1778
|
-
<p>Then we can plot circles for each commit, with <code>"time"</code> driving the x-coordinate, and <code>"day"</code> driving the y-coordinate.</p>
|
1779
|
-
<div class="highlight"><pre><span></span><span class="n">p</span><span class="o">.</span><span class="n">circle</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="s1">'time'</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="s1">'day'</span><span class="p">,</span> <span class="o">...</span><span class="p">)</span>
|
1780
|
-
</pre></div>
|
1781
|
-
<p>To make the values more distinguishable, we can also add a <code>jitter</code> transform to the y-coordinate, which is shown in the complete example below.</p>
|
1782
|
-
|
1783
|
-
</div>
|
1784
|
-
</div>
|
1785
|
-
</div>
|
1786
|
-
|
1787
|
-
|
1788
|
-
|
1789
|
-
<div class="
|
1790
|
-
cell border-box-sizing code_cell rendered">
|
1791
|
-
<div class="input">
|
1792
|
-
|
1793
|
-
<div class="inner_cell">
|
1794
|
-
<div class="input_area">
|
1795
|
-
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bokeh.transform</span> <span class="kn">import</span> <span class="n">jitter</span>
|
1796
|
-
|
1797
|
-
<span class="n">DAYS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'Sun'</span><span class="p">,</span> <span class="s1">'Sat'</span><span class="p">,</span> <span class="s1">'Fri'</span><span class="p">,</span> <span class="s1">'Thu'</span><span class="p">,</span> <span class="s1">'Wed'</span><span class="p">,</span> <span class="s1">'Tue'</span><span class="p">,</span> <span class="s1">'Mon'</span><span class="p">]</span>
|
1798
|
-
<span class="n">source</span> <span class="o">=</span> <span class="n">ColumnDataSource</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
|
1799
|
-
|
1800
|
-
<span class="n">p</span> <span class="o">=</span> <span class="n">figure</span><span class="p">(</span>
|
1801
|
-
<span class="n">plot_height</span><span class="o">=</span><span class="mi">400</span><span class="p">,</span>
|
1802
|
-
<span class="n">plot_width</span><span class="o">=</span><span class="mi">800</span><span class="p">,</span>
|
1803
|
-
<span class="n">y_range</span><span class="o">=</span><span class="n">DAYS</span><span class="p">,</span>
|
1804
|
-
<span class="n">x_axis_type</span><span class="o">=</span><span class="s1">'datetime'</span><span class="p">,</span>
|
1805
|
-
<span class="n">title</span><span class="o">=</span><span class="s2">"Commits by Time of Day (US/Central) 2012—2016"</span>
|
1806
|
-
<span class="p">)</span>
|
1807
|
-
|
1808
|
-
<span class="n">p</span><span class="o">.</span><span class="n">circle</span><span class="p">(</span>
|
1809
|
-
<span class="n">x</span><span class="o">=</span><span class="s1">'time'</span><span class="p">,</span>
|
1810
|
-
<span class="n">y</span><span class="o">=</span><span class="n">jitter</span><span class="p">(</span><span class="s1">'day'</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span> <span class="nb">range</span><span class="o">=</span><span class="n">p</span><span class="o">.</span><span class="n">y_range</span><span class="p">),</span>
|
1811
|
-
<span class="n">alpha</span><span class="o">=</span><span class="mf">0.3</span><span class="p">,</span>
|
1812
|
-
<span class="n">source</span><span class="o">=</span><span class="n">source</span>
|
1813
|
-
<span class="p">)</span>
|
1814
|
-
|
1815
|
-
<span class="n">p</span><span class="o">.</span><span class="n">xaxis</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">formatter</span><span class="o">.</span><span class="n">days</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'%Hh'</span><span class="p">]</span>
|
1816
|
-
<span class="n">p</span><span class="o">.</span><span class="n">x_range</span><span class="o">.</span><span class="n">range_padding</span> <span class="o">=</span> <span class="mi">0</span>
|
1817
|
-
<span class="n">p</span><span class="o">.</span><span class="n">ygrid</span><span class="o">.</span><span class="n">grid_line_color</span> <span class="o">=</span> <span class="kc">None</span>
|
1818
|
-
|
1819
|
-
<span class="c1"># show the results</span>
|
1820
|
-
<span class="n">show</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
|
1821
|
-
</pre></div>
|
1822
|
-
|
1823
|
-
</div>
|
1824
|
-
</div>
|
1825
|
-
</div>
|
1826
|
-
|
1827
|
-
<div class="output_wrapper">
|
1828
|
-
<div class="output">
|
1829
|
-
|
1830
|
-
|
1831
|
-
<div class="output_area">
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
<div class="output_html rendered_html output_subarea ">
|
1837
|
-
|
1838
|
-
<div class="bk-root" id="c8a49138-42fc-4d47-82d3-e565c499c30d" data-root-id="2103"></div>
|
1839
|
-
|
1840
|
-
</div>
|
1841
|
-
|
1842
|
-
</div>
|
1843
|
-
|
1844
|
-
<div class="output_area">
|
1845
|
-
|
1846
|
-
|
1847
|
-
|
1848
|
-
|
1849
|
-
|
1850
|
-
|
1851
|
-
<div id="aa9673f9-f1b0-48bf-9bc0-48ba232f2391"></div>
|
1852
|
-
<div class="output_subarea output_javascript ">
|
1853
|
-
<script type="text/javascript">
|
1854
|
-
var element = $('#aa9673f9-f1b0-48bf-9bc0-48ba232f2391');
|
1855
|
-
(function(root) {
|
1856
|
-
function embed_document(root) {
|
1857
|
-
const docs_json = {"782f9d92-8206-4e6d-a5bc-2fed73501171":{"defs":[],"roots":{"references":[{"attributes":{"below":[{"id":"2114"}],"center":[{"id":"2117"},{"id":"2120"}],"height":400,"left":[{"id":"2118"}],"renderers":[{"id":"2140"}],"title":{"id":"2104"},"toolbar":{"id":"2128"},"width":800,"x_range":{"id":"2106"},"x_scale":{"id":"2110"},"y_range":{"id":"2108"},"y_scale":{"id":"2112"}},"id":"2103","subtype":"Figure","type":"Plot"},{"attributes":{"months":[0,2,4,6,8,10]},"id":"2239","type":"MonthsTicker"},{"attributes":{"base":60,"mantissas":[1,2,5,10,15,20,30],"max_interval":1800000.0,"min_interval":1000.0,"num_minor_ticks":0},"id":"2232","type":"AdaptiveTicker"},{"attributes":{"axis":{"id":"2114"},"coordinates":null,"group":null,"ticker":null},"id":"2117","type":"Grid"},{"attributes":{},"id":"2125","type":"ResetTool"},{"attributes":{"months":[0,4,8]},"id":"2240","type":"MonthsTicker"},{"attributes":{"coordinates":null,"formatter":{"id":"2142"},"group":null,"major_label_policy":{"id":"2227"},"ticker":{"id":"2115"}},"id":"2114","type":"DatetimeAxis"},{"attributes":{},"id":"2124","type":"SaveTool"},{"attributes":{},"id":"2126","type":"HelpTool"},{"attributes":{},"id":"2229","type":"Selection"},{"attributes":{"months":[0,6]},"id":"2241","type":"MonthsTicker"},{"attributes":{},"id":"2224","type":"AllLabels"},{"attributes":{"coordinates":null,"group":null,"text":"Commits by Time of Day (US/Central) 2012\u20142016"},"id":"2104","type":"Title"},{"attributes":{},"id":"2121","type":"PanTool"},{"attributes":{"factors":["Sun","Sat","Fri","Thu","Wed","Tue","Mon"]},"id":"2108","type":"FactorRange"},{"attributes":{"overlay":{"id":"2127"}},"id":"2123","type":"BoxZoomTool"},{"attributes":{},"id":"2227","type":"AllLabels"},{"attributes":{},"id":"2110","type":"LinearScale"},{"attributes":{"range_padding":0},"id":"2106","type":"DataRange1d"},{"attributes":{},"id":"2119","type":"CategoricalTicker"},{"attributes":{},"id":"2228","type":"UnionRenderers"},{"attributes":{"axis":{"id":"2118"},"coordinates":null,"dimension":1,"grid_line_color":null,"group":null,"ticker":null},"id":"2120","type":"Grid"},{"attributes":{"days":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]},"id":"2234","type":"DaysTicker"},{"attributes":{},"id":"2242","type":"YearsTicker"},{"attributes":{},"id":"2122","type":"WheelZoomTool"},{"attributes":{"mantissas":[1,2,5],"max_interval":500.0,"num_minor_ticks":0},"id":"2231","type":"AdaptiveTicker"},{"attributes":{"tools":[{"id":"2121"},{"id":"2122"},{"id":"2123"},{"id":"2124"},{"id":"2125"},{"id":"2126"}]},"id":"2128","type":"Toolbar"},{"attributes":{"fill_alpha":{"value":0.3},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.3},"line_alpha":{"value":0.3},"line_color":{"value":"#1f77b4"},"x":{"field":"time"},"y":{"field":"day","transform":{"id":"2135"}}},"id":"2137","type":"Circle"},{"attributes":{"data":{"datetime":{"__ndarray__":"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","dtype":"float64","order":"little","shape":[4916]},"day":["Sat","Fri","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Mon","Sun","Sun","Sun","Sun","Wed","Wed","Wed","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Sat","Sat","Thu","Wed","Wed","Wed","Wed","Tue","Thu","Thu","Wed","Wed","Wed","Wed","Mon","Fri","Thu","Sun","Fri","Fri","Fri","Fri","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Sun","Sat","Sat","Wed","Sat","Sat","Sat","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Tue","Tue","Mon","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Sun","Sat","Wed","Wed","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Tue","Tue","Tue","Tue","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Tue","Tue","Tue","Tue","Tue","Thu","Wed","Wed","Tue","Tue","Tue","Tue","Mon","Mon","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Fri","Wed","Wed","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Thu","Wed","Mon","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Tue","Mon","Mon","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Fri","Wed","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Mon","Mon","Sat","Sat","Wed","Wed","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Wed","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Wed","Tue","Thu","Thu","Thu","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Sun","Wed","Wed","Tue","Tue","Mon","Mon","Tue","Tue","Sat","Sat","Fri","Wed","Wed","Tue","Tue","Tue","Tue","Sun","Sun","Sun","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sat","Sat","Sat","Fri","Fri","Wed","Tue","Tue","Tue","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sat","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Tue","Tue","Mon","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Tue","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Thu","Thu","Sun","Sun","Thu","Sat","Sat","Sat","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Mon","Mon","Mon","Sun","Sun","Sat","Sat","Sat","Sat","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Mon","Sun","Fri","Thu","Thu","Wed","Wed","Tue","Tue","Tue","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Mon","Sat","Sat","Sat","Fri","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Wed","Wed","Wed","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Sun","Sun","Sun","Thu","Thu","Thu","Mon","Mon","Mon","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Thu","Thu","Thu","Wed","Wed","Wed","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Wed","Tue","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Fri","Fri","Fri","Fri","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Wed","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Thu","Thu","Wed","Wed","Wed","Fri","Fri","Fri","Thu","Thu","Thu","Wed","Thu","Tue","Tue","Tue","Thu","Thu","Wed","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Wed","Wed","Wed","Wed","Tue","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Sat","Sat","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Thu","Mon","Sat","Fri","Tue","Tue","Tue","Tue","Sun","Sun","Tue","Sat","Sat","Sat","Mon","Mon","Mon","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Sat","Mon","Mon","Mon","Mon","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Thu","Wed","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Mon","Mon","Sat","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Tue","Mon","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Tue","Mon","Mon","Mon","Mon","Mon","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Sat","Sat","Sat","Fri","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Tue","Tue","Mon","Mon","Mon","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Mon","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Sat","Sat","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Wed","Tue","Tue","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Mon","Mon","Mon","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Tue","Mon","Mon","Thu","Thu","Thu","Thu","Wed","Sun","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Sat","Wed","Wed","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Sat","Sat","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Sun","Sat","Sat","Sat","Sat","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Fri","Fri","Fri","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Sat","Sat","Sat","Sat","Sat","Fri","Thu","Thu","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Fri","Fri","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Fri","Fri","Fri","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Mon","Fri","Fri","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Wed","Wed","Wed","Tue","Tue","Sat","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Fri","Fri","Fri","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Fri","Fri","Mon","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Fri","Thu","Thu","Thu","Thu","Thu","Wed","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Fri","Fri","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Mon","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Wed","Wed","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Thu","Tue","Tue","Tue","Tue","Tue","Tue","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Wed","Wed","Wed","Tue","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Tue","Mon","Mon","Mon","Mon","Mon","Thu","Thu","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sat","Sat","Sat","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Wed","Tue","Tue","Tue","Mon","Thu","Thu","Thu","Thu","Thu","Mon","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Wed","Mon","Mon","Mon","Mon","Mon","Thu","Wed","Wed","Wed","Tue","Tue","Wed","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Tue","Tue","Tue","Tue","Tue","Mon","Sun","Wed","Wed","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Sun","Sun","Sun","Sat","Sat","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sat","Fri","Thu","Thu","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Sat","Sat","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Fri","Fri","Wed","Wed","Wed","Sat","Mon","Mon","Mon","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Sat","Thu","Thu","Thu","Thu","Wed","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Sun","Sun","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Tue","Tue","Tue","Tue","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Wed","Tue","Mon","Mon","Mon","Sat","Mon","Mon","Mon","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Sun","Sun","Sun","Sun","Sat","Wed","Wed","Wed","Tue","Tue","Mon","Mon","Mon","Mon","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Sat","Sat","Fri","Tue","Tue","Tue","Mon","Mon","Mon","Wed","Mon","Mon","Sat","Sat","Sat","Fri","Fri","Fri","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sat","Sat","Sat","Thu","Thu","Fri","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Mon","Mon","Mon","Mon","Fri","Fri","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Tue","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Thu","Mon","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Fri","Fri","Fri","Thu","Thu","Thu","Fri","Thu","Thu","Thu","Thu","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Wed","Tue","Thu","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Thu","Thu","Thu","Thu","Thu","Thu","Wed","Tue","Tue","Tue","Tue","Tue","Sun","Sun","Sun","Sun","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Wed","Tue","Sun","Thu","Mon","Mon","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Mon","Mon","Sun","Sun","Thu","Sun","Sun","Fri","Fri","Wed","Wed","Wed","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Fri","Fri","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Wed","Wed","Wed","Tue","Sat","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Wed","Wed","Wed","Tue","Tue","Mon","Mon","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Sun","Sun","Sat","Sat","Wed","Wed","Tue","Tue","Tue","Thu","Wed","Wed","Wed","Wed","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Mon","Mon","Mon","Sun","Sun","Thu","Thu","Wed","Wed","Tue","Tue","Tue","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Mon","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sun","Sat","Sat","Sat","Sat","Sat","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Fri","Thu","Thu","Thu","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Tue","Fri","Fri","Thu","Thu","Thu","Thu","Mon","Thu","Wed","Sat"],"time":[54718000.0,51657000.0,52508000.0,38069000.0,33443000.0,81337000.0,80774000.0,80483000.0,74654000.0,72943000.0,72156000.0,79027000.0,73356000.0,60243000.0,59674000.0,54660000.0,47185000.0,46270000.0,42411000.0,41561000.0,76103000.0,75239000.0,75174000.0,69770000.0,69154000.0,68707000.0,68471000.0,68401000.0,51978000.0,80814000.0,80793000.0,80773000.0,80732000.0,78572000.0,78548000.0,78529000.0,78475000.0,81847000.0,81826000.0,81807000.0,67463000.0,70189000.0,70135000.0,52275000.0,52236000.0,52215000.0,39012000.0,38954000.0,47169000.0,36607000.0,36364000.0,34425000.0,71255000.0,71190000.0,71169000.0,68205000.0,33937000.0,40530000.0,37944000.0,46956000.0,46932000.0,46913000.0,45436000.0,53499000.0,58975000.0,31108000.0,54117000.0,40470000.0,40454000.0,40440000.0,40174000.0,70402000.0,70400000.0,70400000.0,59587000.0,40434000.0,45152000.0,43238000.0,35155000.0,70317000.0,47126000.0,37226000.0,31811000.0,48541000.0,48163000.0,42499000.0,75967000.0,75955000.0,75944000.0,75914000.0,68122000.0,68109000.0,68097000.0,67287000.0,62152000.0,62138000.0,62125000.0,61982000.0,43111000.0,36084000.0,50209000.0,44569000.0,75183000.0,85934000.0,85925000.0,85918000.0,85849000.0,71895000.0,71886000.0,71879000.0,71834000.0,68865000.0,68857000.0,68851000.0,68811000.0,63582000.0,63575000.0,63567000.0,62720000.0,59907000.0,59897000.0,59890000.0,59849000.0,56496000.0,56482000.0,56475000.0,56442000.0,53682000.0,53675000.0,53667000.0,53615000.0,69040000.0,69018000.0,69011000.0,67813000.0,55512000.0,55397000.0,51445000.0,51425000.0,51418000.0,51311000.0,51088000.0,51077000.0,51069000.0,51009000.0,47045000.0,46565000.0,44348000.0,44335000.0,44328000.0,44042000.0,2219000.0,45646000.0,49042000.0,48758000.0,61312000.0,50302000.0,41519000.0,37043000.0,36998000.0,36988000.0,36976000.0,36792000.0,43712000.0,43692000.0,43678000.0,41292000.0,42722000.0,43898000.0,43882000.0,43871000.0,43354000.0,40720000.0,40706000.0,40694000.0,40624000.0,38166000.0,38153000.0,38142000.0,59743000.0,59727000.0,59715000.0,59599000.0,53830000.0,62242000.0,56549000.0,56480000.0,66262000.0,66247000.0,66234000.0,50611000.0,71529000.0,54458000.0,71051000.0,47096000.0,61719000.0,52324000.0,52291000.0,52279000.0,52220000.0,50887000.0,63378000.0,56446000.0,47421000.0,46206000.0,46183000.0,44168000.0,43447000.0,41524000.0,62394000.0,59276000.0,57466000.0,57441000.0,57429000.0,57355000.0,52299000.0,46974000.0,44299000.0,58061000.0,49650000.0,56890000.0,54241000.0,48833000.0,44169000.0,43954000.0,43755000.0,43626000.0,40980000.0,52584000.0,50328000.0,56425000.0,61735000.0,56482000.0,64856000.0,46846000.0,43053000.0,52398000.0,52384000.0,52372000.0,31011000.0,61055000.0,53864000.0,53349000.0,64316000.0,61674000.0,49820000.0,48360000.0,48343000.0,48332000.0,48191000.0,37944000.0,37924000.0,37913000.0,53255000.0,53200000.0,53188000.0,53130000.0,52881000.0,52790000.0,46106000.0,46087000.0,46077000.0,46018000.0,45234000.0,44818000.0,39772000.0,37709000.0,36720000.0,34548000.0,27248000.0,60404000.0,36766000.0,36758000.0,36748000.0,36740000.0,35590000.0,35530000.0,34591000.0,34583000.0,34574000.0,34483000.0,34474000.0,34465000.0,34458000.0,34415000.0,33875000.0,63320000.0,62046000.0,60834000.0,9838000.0,9828000.0,7804000.0,7669000.0,54510000.0,54500000.0,37664000.0,78546000.0,78531000.0,69191000.0,65977000.0,85661000.0,41194000.0,80371000.0,80363000.0,78471000.0,78441000.0,75704000.0,75678000.0,65355000.0,65347000.0,57952000.0,85175000.0,44065000.0,44057000.0,43875000.0,41688000.0,41679000.0,39363000.0,56073000.0,3036000.0,33045000.0,52440000.0,47646000.0,29693000.0,37841000.0,46460000.0,46451000.0,46439000.0,44107000.0,48050000.0,47995000.0,50303000.0,75933000.0,63719000.0,75605000.0,65922000.0,81052000.0,39749000.0,43021000.0,41867000.0,80122000.0,78253000.0,74103000.0,66842000.0,64330000.0,49777000.0,42703000.0,35216000.0,35138000.0,59684000.0,56137000.0,3048000.0,68177000.0,68175000.0,68166000.0,63236000.0,63189000.0,12312000.0,10394000.0,9505000.0,66733000.0,65064000.0,51603000.0,36555000.0,60879000.0,21296000.0,38199000.0,63259000.0,40172000.0,13349000.0,83312000.0,77880000.0,82713000.0,78949000.0,45989000.0,45818000.0,45645000.0,60725000.0,80506000.0,76895000.0,67858000.0,38452000.0,58409000.0,57004000.0,47065000.0,54975000.0,47841000.0,35726000.0,56391000.0,33847000.0,74645000.0,53603000.0,51167000.0,44153000.0,44009000.0,43367000.0,43230000.0,34923000.0,34314000.0,31239000.0,67619000.0,66255000.0,64804000.0,64388000.0,63956000.0,63274000.0,58477000.0,48924000.0,47080000.0,40584000.0,35438000.0,43447000.0,41030000.0,34406000.0,34087000.0,41042000.0,40843000.0,27238000.0,27209000.0,15266000.0,40183000.0,36134000.0,33930000.0,32806000.0,32745000.0,48823000.0,22760000.0,21892000.0,21362000.0,15461000.0,14748000.0,72231000.0,47260000.0,47057000.0,38537000.0,3538000.0,3510000.0,35856000.0,34993000.0,4099000.0,2628000.0,53131000.0,52951000.0,61288000.0,59220000.0,57272000.0,47644000.0,47616000.0,39007000.0,38727000.0,38668000.0,58901000.0,58865000.0,49027000.0,47792000.0,44508000.0,44413000.0,44362000.0,40529000.0,41496000.0,38855000.0,38673000.0,62405000.0,62118000.0,58796000.0,58394000.0,57792000.0,50799000.0,50675000.0,34543000.0,43072000.0,66350000.0,63434000.0,62384000.0,62050000.0,50761000.0,50376000.0,48901000.0,39786000.0,44410000.0,44363000.0,39206000.0,38694000.0,38222000.0,37157000.0,43054000.0,41805000.0,40888000.0,37323000.0,66415000.0,34477000.0,1838000.0,85934000.0,85921000.0,83216000.0,83153000.0,82938000.0,54598000.0,36217000.0,32123000.0,55861000.0,53483000.0,47641000.0,47130000.0,45003000.0,44887000.0,42209000.0,41667000.0,41571000.0,36708000.0,31440000.0,31353000.0,31297000.0,31258000.0,66314000.0,60499000.0,51780000.0,51715000.0,3460000.0,81186000.0,76709000.0,73832000.0,72821000.0,61085000.0,50936000.0,44614000.0,40423000.0,39652000.0,36003000.0,53692000.0,53624000.0,49706000.0,46885000.0,43548000.0,38702000.0,53457000.0,52214000.0,45036000.0,37010000.0,67001000.0,64599000.0,63686000.0,51408000.0,49282000.0,41272000.0,40543000.0,35077000.0,4117000.0,55337000.0,49427000.0,48025000.0,38599000.0,37870000.0,50284000.0,50247000.0,43525000.0,43323000.0,41666000.0,80501000.0,80139000.0,58979000.0,58950000.0,48243000.0,48203000.0,48981000.0,41459000.0,41391000.0,53745000.0,49100000.0,48919000.0,46771000.0,58283000.0,56327000.0,55385000.0,82410000.0,81496000.0,53667000.0,52708000.0,52082000.0,50373000.0,50178000.0,49918000.0,50831000.0,30256000.0,81778000.0,80306000.0,64220000.0,46478000.0,46108000.0,46029000.0,45743000.0,45387000.0,43038000.0,43016000.0,48572000.0,42364000.0,41907000.0,44991000.0,32623000.0,32580000.0,75754000.0,57633000.0,57571000.0,55589000.0,53498000.0,53456000.0,48807000.0,48703000.0,48691000.0,46688000.0,38982000.0,34809000.0,57481000.0,54179000.0,45478000.0,63642000.0,60305000.0,52393000.0,49036000.0,48763000.0,48094000.0,33458000.0,31651000.0,31215000.0,61436000.0,60199000.0,60038000.0,59499000.0,54540000.0,50934000.0,50916000.0,43843000.0,43763000.0,43446000.0,67724000.0,67058000.0,64768000.0,59475000.0,57605000.0,56436000.0,50065000.0,70146000.0,62579000.0,40061000.0,39798000.0,39448000.0,63541000.0,64473000.0,63566000.0,36695000.0,34807000.0,31150000.0,31121000.0,31089000.0,85362000.0,81807000.0,73737000.0,71432000.0,64942000.0,64881000.0,51437000.0,38957000.0,58465000.0,56642000.0,48599000.0,46911000.0,38051000.0,35973000.0,71493000.0,66933000.0,66902000.0,60316000.0,58316000.0,58241000.0,58219000.0,50584000.0,36547000.0,36386000.0,41438000.0,35408000.0,53273000.0,70255000.0,66510000.0,57390000.0,54071000.0,55280000.0,54087000.0,52895000.0,52715000.0,39505000.0,39443000.0,31217000.0,75574000.0,75559000.0,73796000.0,73785000.0,71970000.0,66377000.0,47416000.0,47414000.0,47410000.0,47392000.0,47388000.0,42520000.0,73118000.0,70415000.0,68384000.0,68365000.0,51873000.0,51488000.0,49451000.0,48830000.0,46415000.0,46212000.0,44799000.0,43413000.0,43287000.0,60013000.0,42457000.0,42235000.0,42035000.0,41842000.0,41689000.0,41364000.0,40986000.0,39544000.0,38832000.0,64378000.0,64178000.0,60304000.0,54989000.0,54935000.0,54736000.0,52707000.0,50900000.0,38579000.0,38492000.0,37984000.0,85504000.0,84163000.0,84015000.0,81760000.0,77211000.0,72969000.0,71348000.0,63218000.0,62803000.0,62497000.0,61534000.0,60940000.0,59142000.0,58599000.0,57410000.0,60591000.0,33966000.0,54492000.0,84654000.0,83015000.0,82293000.0,82250000.0,80383000.0,79252000.0,79143000.0,78952000.0,78533000.0,78321000.0,62402000.0,62386000.0,60862000.0,59992000.0,57658000.0,52798000.0,46140000.0,44250000.0,43193000.0,42949000.0,42790000.0,34698000.0,34387000.0,33908000.0,78597000.0,65884000.0,75128000.0,71538000.0,69146000.0,68819000.0,66476000.0,62218000.0,62128000.0,61921000.0,61859000.0,61790000.0,43361000.0,62991000.0,62962000.0,49055000.0,41134000.0,78480000.0,36296000.0,66450000.0,66426000.0,66317000.0,63116000.0,49777000.0,49456000.0,44457000.0,44366000.0,39261000.0,34537000.0,55526000.0,54315000.0,32183000.0,69172000.0,67843000.0,62502000.0,39943000.0,36610000.0,36299000.0,68209000.0,62135000.0,61580000.0,64471000.0,63562000.0,63541000.0,62985000.0,62963000.0,56566000.0,52610000.0,49243000.0,47613000.0,47563000.0,46711000.0,46015000.0,45665000.0,45313000.0,41507000.0,39195000.0,32698000.0,46835000.0,44019000.0,41790000.0,39940000.0,35810000.0,70722000.0,70019000.0,68590000.0,63064000.0,56571000.0,56447000.0,54146000.0,54070000.0,58831000.0,56590000.0,49002000.0,52639000.0,51260000.0,48750000.0,48641000.0,47734000.0,32943000.0,32491000.0,77188000.0,56382000.0,53520000.0,42009000.0,35259000.0,56946000.0,56894000.0,56864000.0,51397000.0,42380000.0,42350000.0,37827000.0,37103000.0,1626000.0,75650000.0,75619000.0,75614000.0,75567000.0,75546000.0,75519000.0,75451000.0,75419000.0,62423000.0,62417000.0,50773000.0,50755000.0,50466000.0,45938000.0,42675000.0,42668000.0,39469000.0,37599000.0,35633000.0,78146000.0,69550000.0,69523000.0,67000000.0,66759000.0,63006000.0,62539000.0,61030000.0,55089000.0,79469000.0,76905000.0,69481000.0,62320000.0,60675000.0,57670000.0,55774000.0,55421000.0,55368000.0,54588000.0,43801000.0,40912000.0,40172000.0,40123000.0,36526000.0,33593000.0,33568000.0,33521000.0,33414000.0,33156000.0,74254000.0,73609000.0,70177000.0,69473000.0,65778000.0,65634000.0,62989000.0,61188000.0,60697000.0,60642000.0,52365000.0,49480000.0,49340000.0,48204000.0,46854000.0,42969000.0,41213000.0,40447000.0,40357000.0,40103000.0,39675000.0,39484000.0,39305000.0,38641000.0,38625000.0,38582000.0,38067000.0,37641000.0,37447000.0,37335000.0,37315000.0,37095000.0,37066000.0,36941000.0,36889000.0,36852000.0,36574000.0,36543000.0,36463000.0,34803000.0,32726000.0,32639000.0,1456000.0,1262000.0,1245000.0,653000.0,85584000.0,83938000.0,81599000.0,79689000.0,79396000.0,79230000.0,61797000.0,61068000.0,60027000.0,58779000.0,56751000.0,54757000.0,51564000.0,44277000.0,42766000.0,42733000.0,42565000.0,41520000.0,38004000.0,34280000.0,34251000.0,31324000.0,31308000.0,30483000.0,81978000.0,81473000.0,81356000.0,79956000.0,75803000.0,72347000.0,64663000.0,59235000.0,57699000.0,57132000.0,47349000.0,35117000.0,34674000.0,34623000.0,31243000.0,80745000.0,79775000.0,78932000.0,78700000.0,76236000.0,74565000.0,62517000.0,62390000.0,60955000.0,60883000.0,60045000.0,54419000.0,43005000.0,39161000.0,39069000.0,36292000.0,36268000.0,36245000.0,33873000.0,33863000.0,5625000.0,80727000.0,80698000.0,80661000.0,80260000.0,71981000.0,71968000.0,71567000.0,69805000.0,69745000.0,69478000.0,68675000.0,68395000.0,68224000.0,67905000.0,67805000.0,62721000.0,62649000.0,58871000.0,58710000.0,58227000.0,44051000.0,79332000.0,79309000.0,76725000.0,76612000.0,76029000.0,37024000.0,29983000.0,30043000.0,56111000.0,30623000.0,32348000.0,29882000.0,66331000.0,56735000.0,56524000.0,56263000.0,31145000.0,36987000.0,54137000.0,53221000.0,51304000.0,51003000.0,50925000.0,43370000.0,67542000.0,65628000.0,63774000.0,54917000.0,63398000.0,40162000.0,40023000.0,40235000.0,37009000.0,62354000.0,65348000.0,61807000.0,60051000.0,59381000.0,58626000.0,58382000.0,58297000.0,58129000.0,58034000.0,48235000.0,48179000.0,46169000.0,40550000.0,40533000.0,34668000.0,34646000.0,82399000.0,82066000.0,78591000.0,74304000.0,74298000.0,74204000.0,74151000.0,74132000.0,74110000.0,74091000.0,73425000.0,73336000.0,72955000.0,72756000.0,71539000.0,71207000.0,70896000.0,70779000.0,70270000.0,70157000.0,70127000.0,70023000.0,69630000.0,69300000.0,68689000.0,68019000.0,67924000.0,67598000.0,67381000.0,67035000.0,66202000.0,66109000.0,65606000.0,65557000.0,65529000.0,65235000.0,65085000.0,64528000.0,64415000.0,64268000.0,64177000.0,64063000.0,63823000.0,63518000.0,63402000.0,63395000.0,63300000.0,63127000.0,62813000.0,62670000.0,62181000.0,61980000.0,60258000.0,60122000.0,59627000.0,58725000.0,58624000.0,58520000.0,57980000.0,57558000.0,57471000.0,57426000.0,57387000.0,56283000.0,54360000.0,53684000.0,53372000.0,52650000.0,50303000.0,50183000.0,50166000.0,50104000.0,46274000.0,40235000.0,40162000.0,40023000.0,74850000.0,74559000.0,74545000.0,68860000.0,56380000.0,54557000.0,54335000.0,54311000.0,48824000.0,46204000.0,44930000.0,83471000.0,63219000.0,62156000.0,61845000.0,61188000.0,60370000.0,58748000.0,58013000.0,57705000.0,57690000.0,57252000.0,52513000.0,52360000.0,52280000.0,52224000.0,52166000.0,51053000.0,50848000.0,1664000.0,82507000.0,82413000.0,73496000.0,73355000.0,73333000.0,70149000.0,69647000.0,69540000.0,69491000.0,66395000.0,66354000.0,66336000.0,66282000.0,64636000.0,63380000.0,63270000.0,63160000.0,62709000.0,61853000.0,59626000.0,59152000.0,59144000.0,59133000.0,58143000.0,56444000.0,56432000.0,55414000.0,54727000.0,54248000.0,53156000.0,52881000.0,52277000.0,51032000.0,50877000.0,50492000.0,49047000.0,48469000.0,48257000.0,47629000.0,52750000.0,52734000.0,51375000.0,50561000.0,48458000.0,35521000.0,35294000.0,34483000.0,34407000.0,34335000.0,33207000.0,32845000.0,78033000.0,65236000.0,65190000.0,64798000.0,43056000.0,43038000.0,43026000.0,74091000.0,58215000.0,58000000.0,50740000.0,34569000.0,34230000.0,50905000.0,50447000.0,50249000.0,42024000.0,41933000.0,39483000.0,37185000.0,36402000.0,34967000.0,34694000.0,33989000.0,33814000.0,33604000.0,85040000.0,55743000.0,47096000.0,45266000.0,40874000.0,40070000.0,39406000.0,37564000.0,32709000.0,33195000.0,32811000.0,32683000.0,32664000.0,31219000.0,30791000.0,78739000.0,74202000.0,73551000.0,72010000.0,71595000.0,64746000.0,61483000.0,61226000.0,80293000.0,80242000.0,55851000.0,41152000.0,72135000.0,70482000.0,54614000.0,54261000.0,54210000.0,69066000.0,62106000.0,61920000.0,61456000.0,61434000.0,61387000.0,61340000.0,61310000.0,35433000.0,35392000.0,60046000.0,59319000.0,58782000.0,55561000.0,55514000.0,53587000.0,45509000.0,44572000.0,43846000.0,38772000.0,38683000.0,38372000.0,34996000.0,34861000.0,34751000.0,72313000.0,72156000.0,70425000.0,70417000.0,70409000.0,70402000.0,60296000.0,60193000.0,58089000.0,56907000.0,56894000.0,56881000.0,55636000.0,55594000.0,49708000.0,48929000.0,48925000.0,44313000.0,43558000.0,43350000.0,28283000.0,28257000.0,28183000.0,62998000.0,56450000.0,53039000.0,52216000.0,52116000.0,47057000.0,46238000.0,46115000.0,39001000.0,38974000.0,37546000.0,35856000.0,35779000.0,23962000.0,21516000.0,68476000.0,61136000.0,56309000.0,38420000.0,79754000.0,67698000.0,65292000.0,43106000.0,42062000.0,40951000.0,36310000.0,1451000.0,84323000.0,82362000.0,59279000.0,59260000.0,59235000.0,54814000.0,54770000.0,54297000.0,51535000.0,51479000.0,51143000.0,47415000.0,39472000.0,69349000.0,68923000.0,66212000.0,66039000.0,65914000.0,61325000.0,61301000.0,61055000.0,58355000.0,54670000.0,39693000.0,83879000.0,80221000.0,78185000.0,77892000.0,77851000.0,66337000.0,62072000.0,59746000.0,53063000.0,52953000.0,52573000.0,51820000.0,51805000.0,50894000.0,38338000.0,38211000.0,38116000.0,37823000.0,37663000.0,37577000.0,34142000.0,34127000.0,34038000.0,33935000.0,76572000.0,62996000.0,58614000.0,57797000.0,57566000.0,56880000.0,56546000.0,56525000.0,55215000.0,54764000.0,54547000.0,54506000.0,80079000.0,75988000.0,75534000.0,75186000.0,75171000.0,73936000.0,73864000.0,73505000.0,73128000.0,72372000.0,71724000.0,65245000.0,64610000.0,64519000.0,64406000.0,58443000.0,53031000.0,63665000.0,39648000.0,39545000.0,34276000.0,42453000.0,77756000.0,55106000.0,54356000.0,49890000.0,46122000.0,32160000.0,32114000.0,75995000.0,67265000.0,65916000.0,63345000.0,63135000.0,60580000.0,56203000.0,56014000.0,42091000.0,41627000.0,34357000.0,82151000.0,75136000.0,74693000.0,29586000.0,54924000.0,54030000.0,48968000.0,48866000.0,48603000.0,69892000.0,29698000.0,29205000.0,38278000.0,38076000.0,38009000.0,36355000.0,36143000.0,74007000.0,73571000.0,72441000.0,79616000.0,79524000.0,79471000.0,79433000.0,52942000.0,52714000.0,52305000.0,51883000.0,22707000.0,79347000.0,79231000.0,56735000.0,56626000.0,56069000.0,46967000.0,45729000.0,42597000.0,42237000.0,42148000.0,42112000.0,42010000.0,41947000.0,39606000.0,39467000.0,38931000.0,32984000.0,32949000.0,32921000.0,30965000.0,30809000.0,73767000.0,73748000.0,73664000.0,64933000.0,64917000.0,64885000.0,64800000.0,62743000.0,65825000.0,42466000.0,42453000.0,42450000.0,42399000.0,38935000.0,33929000.0,77339000.0,52896000.0,47264000.0,46204000.0,44368000.0,44361000.0,70833000.0,81986000.0,81922000.0,81909000.0,71810000.0,71704000.0,71358000.0,70369000.0,70173000.0,69795000.0,69681000.0,58735000.0,53158000.0,74845000.0,84769000.0,44666000.0,76156000.0,53548000.0,42763000.0,37445000.0,66513000.0,66799000.0,29431000.0,57385000.0,57466000.0,57448000.0,64898000.0,43645000.0,40850000.0,53141000.0,51489000.0,46595000.0,40185000.0,39710000.0,76221000.0,75794000.0,75054000.0,52535000.0,41700000.0,41640000.0,41556000.0,75023000.0,74110000.0,60349000.0,60132000.0,60117000.0,45237000.0,45144000.0,34576000.0,51417000.0,76882000.0,61403000.0,60513000.0,60445000.0,69411000.0,68982000.0,68962000.0,68935000.0,66894000.0,65906000.0,36042000.0,34848000.0,32759000.0,50167000.0,66579000.0,84240000.0,84183000.0,58745000.0,47595000.0,33124000.0,32611000.0,26014000.0,25507000.0,25435000.0,25416000.0,68835000.0,68338000.0,67433000.0,65494000.0,65064000.0,65001000.0,64414000.0,58659000.0,47205000.0,40796000.0,36386000.0,36368000.0,67306000.0,57702000.0,56284000.0,55117000.0,55049000.0,54713000.0,53674000.0,52735000.0,52443000.0,52347000.0,51083000.0,50479000.0,50452000.0,50346000.0,49847000.0,49527000.0,49363000.0,49233000.0,49018000.0,48431000.0,46519000.0,46506000.0,46488000.0,46461000.0,58067000.0,43360000.0,43247000.0,38556000.0,28887000.0,58580000.0,57355000.0,64525000.0,81718000.0,77707000.0,76039000.0,57798000.0,47075000.0,46625000.0,40736000.0,40602000.0,39602000.0,39509000.0,52618000.0,76203000.0,53724000.0,48095000.0,46267000.0,59510000.0,55925000.0,50273000.0,50100000.0,50012000.0,37995000.0,69249000.0,76804000.0,76569000.0,76561000.0,75790000.0,75523000.0,60654000.0,60409000.0,32706000.0,49570000.0,47845000.0,1018000.0,68415000.0,68097000.0,67901000.0,67842000.0,67686000.0,67231000.0,67203000.0,67182000.0,53295000.0,52882000.0,51224000.0,56782000.0,64002000.0,63982000.0,63951000.0,43342000.0,42797000.0,46291000.0,46139000.0,43724000.0,42879000.0,42414000.0,42934000.0,28953000.0,43683000.0,43577000.0,43378000.0,44727000.0,39358000.0,61384000.0,59580000.0,49860000.0,38910000.0,74879000.0,73013000.0,72767000.0,70901000.0,69737000.0,58491000.0,39774000.0,36390000.0,34227000.0,34141000.0,31202000.0,56320000.0,59405000.0,49217000.0,49073000.0,48714000.0,45153000.0,42208000.0,42139000.0,41846000.0,40043000.0,38474000.0,38394000.0,37683000.0,37615000.0,68834000.0,68772000.0,39008000.0,38967000.0,38938000.0,60630000.0,60532000.0,59928000.0,57568000.0,80394000.0,74312000.0,73534000.0,46392000.0,38725000.0,36497000.0,74341000.0,66550000.0,63874000.0,62789000.0,56989000.0,56819000.0,53298000.0,40612000.0,63002000.0,38672000.0,91000.0,81857000.0,54299000.0,44503000.0,32780000.0,28393000.0,84454000.0,84161000.0,84049000.0,80356000.0,80351000.0,80229000.0,79394000.0,75173000.0,75115000.0,74656000.0,74532000.0,63370000.0,63052000.0,59150000.0,57851000.0,48626000.0,34127000.0,61487000.0,58599000.0,58091000.0,57006000.0,56976000.0,56503000.0,54219000.0,36671000.0,36649000.0,36625000.0,56410000.0,2651000.0,86305000.0,84521000.0,82929000.0,77856000.0,77726000.0,70972000.0,70539000.0,69762000.0,67841000.0,66313000.0,64791000.0,60784000.0,60744000.0,60605000.0,60592000.0,50552000.0,42397000.0,59083000.0,51528000.0,50906000.0,43307000.0,41841000.0,41600000.0,41571000.0,71049000.0,46470000.0,34913000.0,34319000.0,33545000.0,32433000.0,63991000.0,63853000.0,63118000.0,62976000.0,62757000.0,43762000.0,43720000.0,56442000.0,63776000.0,60663000.0,60248000.0,34677000.0,32916000.0,70351000.0,70081000.0,69477000.0,65716000.0,64279000.0,53365000.0,28478000.0,22522000.0,22392000.0,21025000.0,19873000.0,19223000.0,19143000.0,81970000.0,73359000.0,70913000.0,70772000.0,70653000.0,68861000.0,68837000.0,68795000.0,66743000.0,66147000.0,51698000.0,49128000.0,34600000.0,71232000.0,38286000.0,38199000.0,38163000.0,27210000.0,27189000.0,27155000.0,32176000.0,31084000.0,30443000.0,30354000.0,29088000.0,28808000.0,28324000.0,22433000.0,59708000.0,68833000.0,64106000.0,54481000.0,54464000.0,54110000.0,49080000.0,43791000.0,28384000.0,42418000.0,42214000.0,83025000.0,79447000.0,79347000.0,79320000.0,79218000.0,78163000.0,49993000.0,42412000.0,42378000.0,28179000.0,53748000.0,51500000.0,51479000.0,42661000.0,41324000.0,38717000.0,38663000.0,33938000.0,77640000.0,77600000.0,77551000.0,57694000.0,48291000.0,36853000.0,65899000.0,64056000.0,61760000.0,61461000.0,60881000.0,60394000.0,58792000.0,58691000.0,58344000.0,55933000.0,55921000.0,44440000.0,44258000.0,72682000.0,53196000.0,51286000.0,42898000.0,39821000.0,62687000.0,57587000.0,50164000.0,48044000.0,59411000.0,46692000.0,56460000.0,55219000.0,55138000.0,52815000.0,49965000.0,49449000.0,37829000.0,35982000.0,34291000.0,66845000.0,66558000.0,65250000.0,64637000.0,59083000.0,50079000.0,49986000.0,49441000.0,49243000.0,43898000.0,41749000.0,39683000.0,81494000.0,79502000.0,75944000.0,74285000.0,72869000.0,71627000.0,69631000.0,65052000.0,62793000.0,60429000.0,60293000.0,34831000.0,32672000.0,32599000.0,32577000.0,32539000.0,32441000.0,32386000.0,54238000.0,60458000.0,39066000.0,38109000.0,38055000.0,36475000.0,35263000.0,34265000.0,44455000.0,44099000.0,38390000.0,38306000.0,47541000.0,44255000.0,30340000.0,74235000.0,51196000.0,46750000.0,38833000.0,59782000.0,59745000.0,52729000.0,52710000.0,49397000.0,41225000.0,37977000.0,84743000.0,84439000.0,83334000.0,79600000.0,79566000.0,77448000.0,77436000.0,77417000.0,77389000.0,77363000.0,76332000.0,73674000.0,59695000.0,58902000.0,44234000.0,42585000.0,42577000.0,41770000.0,41760000.0,41682000.0,40732000.0,33878000.0,33873000.0,32610000.0,32560000.0,32478000.0,32441000.0,75175000.0,74001000.0,70948000.0,67680000.0,53219000.0,50782000.0,44605000.0,66363000.0,66337000.0,63701000.0,63666000.0,63633000.0,45359000.0,45346000.0,44898000.0,30703000.0,29728000.0,63982000.0,63336000.0,62054000.0,61956000.0,56496000.0,55561000.0,52167000.0,41550000.0,37626000.0,36995000.0,56439000.0,57088000.0,57069000.0,56999000.0,56974000.0,38399000.0,38109000.0,35993000.0,35601000.0,33356000.0,76016000.0,72430000.0,50542000.0,50533000.0,30747000.0,30694000.0,49251000.0,47992000.0,47961000.0,47827000.0,74293000.0,37669000.0,32009000.0,34589000.0,34056000.0,32312000.0,30741000.0,49633000.0,18718000.0,52753000.0,52079000.0,51842000.0,32841000.0,32634000.0,32580000.0,21193000.0,18667000.0,49992000.0,49975000.0,49653000.0,45600000.0,40382000.0,32416000.0,30558000.0,28305000.0,24933000.0,24731000.0,24689000.0,70621000.0,70466000.0,70456000.0,67971000.0,67503000.0,63884000.0,63628000.0,63503000.0,62447000.0,58211000.0,57176000.0,51741000.0,36115000.0,32289000.0,66685000.0,64901000.0,53381000.0,52599000.0,50892000.0,45883000.0,45857000.0,42057000.0,40967000.0,40488000.0,38876000.0,38829000.0,37441000.0,37388000.0,33278000.0,63374000.0,55120000.0,35783000.0,34607000.0,32420000.0,84813000.0,84795000.0,84778000.0,80190000.0,80119000.0,79761000.0,73748000.0,71111000.0,68441000.0,67624000.0,67616000.0,61509000.0,61499000.0,48951000.0,12157000.0,11256000.0,11209000.0,8290000.0,8179000.0,8169000.0,8154000.0,78420000.0,77050000.0,76955000.0,76946000.0,76544000.0,76184000.0,73716000.0,69129000.0,66189000.0,64541000.0,59571000.0,59566000.0,57504000.0,57496000.0,55744000.0,50910000.0,50904000.0,44300000.0,43904000.0,43825000.0,43778000.0,32087000.0,31630000.0,30315000.0,24792000.0,24756000.0,74351000.0,72633000.0,49727000.0,47297000.0,35519000.0,69140000.0,42018000.0,40641000.0,40332000.0,38799000.0,60962000.0,57870000.0,54962000.0,54770000.0,49468000.0,48266000.0,45789000.0,45674000.0,39307000.0,34498000.0,31883000.0,31230000.0,78023000.0,75050000.0,71047000.0,70317000.0,62188000.0,53632000.0,50970000.0,51766000.0,35411000.0,41166000.0,41119000.0,60294000.0,59330000.0,55917000.0,50762000.0,50599000.0,49631000.0,35146000.0,33483000.0,51765000.0,51682000.0,29641000.0,62681000.0,57639000.0,40482000.0,58231000.0,57783000.0,45511000.0,34301000.0,34133000.0,34070000.0,34025000.0,33952000.0,33902000.0,33865000.0,33832000.0,33721000.0,46329000.0,54811000.0,53871000.0,42574000.0,42303000.0,42111000.0,37396000.0,34495000.0,72968000.0,70083000.0,69377000.0,61453000.0,61343000.0,60523000.0,60083000.0,59625000.0,58718000.0,54322000.0,53329000.0,53222000.0,51694000.0,51306000.0,44858000.0,35055000.0,34990000.0,34971000.0,60607000.0,42617000.0,36465000.0,36431000.0,34245000.0,74795000.0,50759000.0,49947000.0,49883000.0,49847000.0,49610000.0,48642000.0,48370000.0,48341000.0,46083000.0,46040000.0,79211000.0,54429000.0,53296000.0,51206000.0,48806000.0,48671000.0,43116000.0,42961000.0,35836000.0,35799000.0,59135000.0,58701000.0,57573000.0,55474000.0,55411000.0,54097000.0,51491000.0,43775000.0,40353000.0,38043000.0,37303000.0,33238000.0,33231000.0,37930000.0,72514000.0,72121000.0,58177000.0,43423000.0,43066000.0,37249000.0,37139000.0,56503000.0,56476000.0,59062000.0,57431000.0,57402000.0,33052000.0,32554000.0,35244000.0,34416000.0,34140000.0,32474000.0,32038000.0,6365000.0,66239000.0,56635000.0,56326000.0,24893000.0,72137000.0,54898000.0,51230000.0,46219000.0,46137000.0,43438000.0,43373000.0,42150000.0,42075000.0,41816000.0,41785000.0,41733000.0,41175000.0,40566000.0,40478000.0,39741000.0,39588000.0,39034000.0,37972000.0,37703000.0,37301000.0,32789000.0,32397000.0,29047000.0,27164000.0,26436000.0,24662000.0,85300000.0,69903000.0,69170000.0,68305000.0,67284000.0,64564000.0,57850000.0,54369000.0,54954000.0,49975000.0,49826000.0,64147000.0,45938000.0,33433000.0,72620000.0,61787000.0,60751000.0,59033000.0,54081000.0,52426000.0,51191000.0,49728000.0,49600000.0,34775000.0,83726000.0,82418000.0,77821000.0,77437000.0,77250000.0,77184000.0,77061000.0,76893000.0,65445000.0,65314000.0,65119000.0,59739000.0,51799000.0,75208000.0,49978000.0,49770000.0,44376000.0,44307000.0,43915000.0,43813000.0,40736000.0,58136000.0,52881000.0,42343000.0,42134000.0,41726000.0,40518000.0,40071000.0,39930000.0,39727000.0,37497000.0,36698000.0,33523000.0,32707000.0,52045000.0,51611000.0,47282000.0,47019000.0,44344000.0,44268000.0,43869000.0,43556000.0,41219000.0,37434000.0,81902000.0,81334000.0,80659000.0,80124000.0,77669000.0,77445000.0,77377000.0,76637000.0,54356000.0,47904000.0,47245000.0,45745000.0,45254000.0,56499000.0,56434000.0,56001000.0,51266000.0,48664000.0,47510000.0,44500000.0,35644000.0,31778000.0,28404000.0,78573000.0,40548000.0,36600000.0,62423000.0,35464000.0,35448000.0,35413000.0,29712000.0,40448000.0,48439000.0,42897000.0,74955000.0,74844000.0,69762000.0,59913000.0,40952000.0,37512000.0,36955000.0,67002000.0,58450000.0,58432000.0,57035000.0,44693000.0,37489000.0,35533000.0,33420000.0,57183000.0,57134000.0,43851000.0,42457000.0,36139000.0,35295000.0,34739000.0,33298000.0,32882000.0,83393000.0,75721000.0,29996000.0,80242000.0,79780000.0,79763000.0,79732000.0,79687000.0,50577000.0,50501000.0,48528000.0,41833000.0,36524000.0,36216000.0,31774000.0,85529000.0,75260000.0,75187000.0,74934000.0,74934000.0,69902000.0,69871000.0,67905000.0,57252000.0,52229000.0,52194000.0,83203000.0,82700000.0,82634000.0,62684000.0,31330000.0,30851000.0,71822000.0,68103000.0,66493000.0,65227000.0,56252000.0,56009000.0,55333000.0,54901000.0,54324000.0,53588000.0,53203000.0,52796000.0,52776000.0,51985000.0,39960000.0,35791000.0,32086000.0,31037000.0,81182000.0,51462000.0,51309000.0,82360000.0,70073000.0,64598000.0,63916000.0,63049000.0,62119000.0,61760000.0,77780000.0,52808000.0,79136000.0,79018000.0,78979000.0,78965000.0,76993000.0,61036000.0,56508000.0,55013000.0,35686000.0,28774000.0,79755000.0,76170000.0,76149000.0,75776000.0,65068000.0,62048000.0,48963000.0,43501000.0,35371000.0,34442000.0,31904000.0,53114000.0,45999000.0,45515000.0,45299000.0,43895000.0,41164000.0,39119000.0,38194000.0,68256000.0,63781000.0,61466000.0,59879000.0,59830000.0,55275000.0,52753000.0,51196000.0,50494000.0,48581000.0,42418000.0,40523000.0,78622000.0,61178000.0,61080000.0,54290000.0,52659000.0,52216000.0,51415000.0,51242000.0,50185000.0,47832000.0,39244000.0,37492000.0,53841000.0,55322000.0,55300000.0,51637000.0,51596000.0,51543000.0,76241000.0,72855000.0,63937000.0,63729000.0,41202000.0,40025000.0,39503000.0,35075000.0,34383000.0,32730000.0,31587000.0,39848000.0,39114000.0,36421000.0,36375000.0,36325000.0,36291000.0,36266000.0,78966000.0,78945000.0,65875000.0,65297000.0,65249000.0,64800000.0,64722000.0,74419000.0,71919000.0,71668000.0,70117000.0,69951000.0,69925000.0,69899000.0,69861000.0,56141000.0,55075000.0,42347000.0,48668000.0,47907000.0,29416000.0,29334000.0,73235000.0,72785000.0,72633000.0,72598000.0,72540000.0,72371000.0,72362000.0,69170000.0,68735000.0,67532000.0,65984000.0,65004000.0,64980000.0,83006000.0,36552000.0,35876000.0,31954000.0,52461000.0,46436000.0,42040000.0,40292000.0,47401000.0,47317000.0,60682000.0,58769000.0,58616000.0,57992000.0,56244000.0,77323000.0,51176000.0,41361000.0,39728000.0,37132000.0,36170000.0,58482000.0,76998000.0,72750000.0,55263000.0,49994000.0,49534000.0,49163000.0,41052000.0,36947000.0,36585000.0,35089000.0,33793000.0,33665000.0,32252000.0,31991000.0,51297000.0,50415000.0,40728000.0,46258000.0,46194000.0,46052000.0,46028000.0,43732000.0,43703000.0,40029000.0,39920000.0,34985000.0,61268000.0,61228000.0,61077000.0,57190000.0,57160000.0,57117000.0,53377000.0,52964000.0,52378000.0,51441000.0,51428000.0,50030000.0,49578000.0,49549000.0,33378000.0,33169000.0,52994000.0,49404000.0,46150000.0,56281000.0,36674000.0,36641000.0,46946000.0,45294000.0,44192000.0,33011000.0,26219000.0,25851000.0,74628000.0,72221000.0,67924000.0,67529000.0,73663000.0,72020000.0,57182000.0,57150000.0,44926000.0,41204000.0,40980000.0,36275000.0,41977000.0,41931000.0,64992000.0,59714000.0,55678000.0,74103000.0,58517000.0,58485000.0,52692000.0,52663000.0,49804000.0,49747000.0,48634000.0,40757000.0,33738000.0,15785000.0,58194000.0,51569000.0,51551000.0,51286000.0,41104000.0,41061000.0,55415000.0,50304000.0,48993000.0,48901000.0,48875000.0,47949000.0,37876000.0,37837000.0,36444000.0,36388000.0,62547000.0,62535000.0,81818000.0,80262000.0,80180000.0,80002000.0,71794000.0,50777000.0,40796000.0,40165000.0,49758000.0,38162000.0,38126000.0,36647000.0,6515000.0,65558000.0,65499000.0,46341000.0,46324000.0,33974000.0,78197000.0,59427000.0,43521000.0,66222000.0,64677000.0,64638000.0,60602000.0,46664000.0,46595000.0,46403000.0,31743000.0,41355000.0,55236000.0,54645000.0,54529000.0,48142000.0,47462000.0,47430000.0,44974000.0,38701000.0,57439000.0,56015000.0,52333000.0,51967000.0,38813000.0,37125000.0,34767000.0,4313000.0,51378000.0,42398000.0,42373000.0,74472000.0,73109000.0,72311000.0,72248000.0,58730000.0,54022000.0,52666000.0,52582000.0,40178000.0,35271000.0,34460000.0,27378000.0,26178000.0,76851000.0,73655000.0,69820000.0,34591000.0,73065000.0,72235000.0,72224000.0,72158000.0,72039000.0,71701000.0,55156000.0,54896000.0,53755000.0,43135000.0,35883000.0,33990000.0,32216000.0,50431000.0,47628000.0,47352000.0,36087000.0,61244000.0,61224000.0,60872000.0,57122000.0,48608000.0,47352000.0,46346000.0,44905000.0,43893000.0,42422000.0,42362000.0,33284000.0,33018000.0,53472000.0,76955000.0,74495000.0,46906000.0,31989000.0,31021000.0,30921000.0,55106000.0,45044000.0,46786000.0,46755000.0,35948000.0,79096000.0,76609000.0,74826000.0,74041000.0,56053000.0,54852000.0,35471000.0,83008000.0,81712000.0,80965000.0,79791000.0,79664000.0,79582000.0,50216000.0,30827000.0,30817000.0,41547000.0,41528000.0,27785000.0,26607000.0,26538000.0,26502000.0,54767000.0,50505000.0,33170000.0,72957000.0,72554000.0,55986000.0,51798000.0,27791000.0,24971000.0,76325000.0,75359000.0,63022000.0,61542000.0,54312000.0,83358000.0,77425000.0,73904000.0,73862000.0,73731000.0,73701000.0,53046000.0,53008000.0,35604000.0,35546000.0,33737000.0,61171000.0,43105000.0,42457000.0,36571000.0,27052000.0,77184000.0,75410000.0,53324000.0,49999000.0,49956000.0,49858000.0,49740000.0,46393000.0,52986000.0,52717000.0,52684000.0,50821000.0,41806000.0,56417000.0,35110000.0,29089000.0,29083000.0,28983000.0,28915000.0,80946000.0,76894000.0,53933000.0,50563000.0,30091000.0,30073000.0,30006000.0,79370000.0,79333000.0,78228000.0,78072000.0,59475000.0,44837000.0,44154000.0,44140000.0,41108000.0,40901000.0,40564000.0,40239000.0,40202000.0,38996000.0,38236000.0,38217000.0,36543000.0,35448000.0,33738000.0,33654000.0,33639000.0,33040000.0,80018000.0,77385000.0,77110000.0,67746000.0,65772000.0,65460000.0,59596000.0,57676000.0,55952000.0,54536000.0,53854000.0,52279000.0,50362000.0,48984000.0,47316000.0,47261000.0,47249000.0,46783000.0,44098000.0,43860000.0,43860000.0,43090000.0,43060000.0,41515000.0,41336000.0,39696000.0,39043000.0,36651000.0,34136000.0,32514000.0,31616000.0,29336000.0,72469000.0,68172000.0,63092000.0,63059000.0,45220000.0,45053000.0,41033000.0,41016000.0,48865000.0,30256000.0,28490000.0,24722000.0,84095000.0,73328000.0,64797000.0,57692000.0,54070000.0,54064000.0,51460000.0,51447000.0,47926000.0,41922000.0,35666000.0,33675000.0,33439000.0,32148000.0,31929000.0,30449000.0,76058000.0,75931000.0,73842000.0,70906000.0,62125000.0,61390000.0,58179000.0,44738000.0,38097000.0,78565000.0,76366000.0,71203000.0,71034000.0,69517000.0,69394000.0,60956000.0,59215000.0,55713000.0,55704000.0,51066000.0,46887000.0,46040000.0,45927000.0,39888000.0,34544000.0,33775000.0,26928000.0,26909000.0,26150000.0,26110000.0,78647000.0,63532000.0,63490000.0,63316000.0,62136000.0,61700000.0,60172000.0,58904000.0,46542000.0,35545000.0,34616000.0,34058000.0,33567000.0,59302000.0,45580000.0,37612000.0,82940000.0,82896000.0,67139000.0,67117000.0,65093000.0,62326000.0,59943000.0,59369000.0,59305000.0,45121000.0,45104000.0,43838000.0,80381000.0,80365000.0,75710000.0,49416000.0,43247000.0,41685000.0,40995000.0,40742000.0,39606000.0,37452000.0,58599000.0,54556000.0,53750000.0,50523000.0,50397000.0,50387000.0,45808000.0,35729000.0,83632000.0,83597000.0,77317000.0,77213000.0,76762000.0,76545000.0,76091000.0,67659000.0,62009000.0,58187000.0,56609000.0,54493000.0,54097000.0,53988000.0,47446000.0,42727000.0,84305000.0,83287000.0,82974000.0,63108000.0,62351000.0,61548000.0,60459000.0,57330000.0,51982000.0,47978000.0,47423000.0,42293000.0,41824000.0,35654000.0,35209000.0,34146000.0,32354000.0,24055000.0,80984000.0,79634000.0,78805000.0,76539000.0,76184000.0,70020000.0,54568000.0,54182000.0,50880000.0,50695000.0,49311000.0,45610000.0,43739000.0,42055000.0,40395000.0,40355000.0,40332000.0,39561000.0,39561000.0,37540000.0,63196000.0,58905000.0,57902000.0,55452000.0,45329000.0,58946000.0,58669000.0,58643000.0,56368000.0,4984000.0,4969000.0,3510000.0,2807000.0,79356000.0,76485000.0,76336000.0,68855000.0,68827000.0,68799000.0,68714000.0,59604000.0,44906000.0,41551000.0,36253000.0,36200000.0,58507000.0,57375000.0,49336000.0,76409000.0,76255000.0,58902000.0,55372000.0,54549000.0,54512000.0,54492000.0,49386000.0,49117000.0,48608000.0,46294000.0,46072000.0,42514000.0,34150000.0,33912000.0,40367000.0,38752000.0,37674000.0,37500000.0,36267000.0,34099000.0,34068000.0,32750000.0,81705000.0,60098000.0,56894000.0,56419000.0,56366000.0,53226000.0,52530000.0,45394000.0,39516000.0,76860000.0,76829000.0,62184000.0,62009000.0,58591000.0,57855000.0,40891000.0,739000.0,85729000.0,85643000.0,85469000.0,84044000.0,82924000.0,81866000.0,81708000.0,74104000.0,59317000.0,58603000.0,57043000.0,55934000.0,43487000.0,48196000.0,34944000.0,32302000.0,29122000.0,21519000.0,19334000.0,26447000.0,47116000.0,43910000.0,43827000.0,33619000.0,32809000.0,31872000.0,25849000.0,25689000.0,22487000.0,11445000.0,9228000.0,67939000.0,67923000.0,53640000.0,49819000.0,48353000.0,45478000.0,67364000.0,67333000.0,64799000.0,64510000.0,64494000.0,63296000.0,58167000.0,57730000.0,13496000.0,12784000.0,11956000.0,11146000.0,4533000.0,55909000.0,55175000.0,31738000.0,30957000.0,20115000.0,19296000.0,13284000.0,6557000.0,6542000.0,6481000.0,41707000.0,41121000.0,33720000.0,15895000.0,15886000.0,10644000.0,72280000.0,72256000.0,69627000.0,69617000.0,45683000.0,42385000.0,36726000.0,38884000.0,112000.0,85146000.0,84839000.0,84695000.0,83565000.0,82950000.0,82159000.0,77905000.0,77880000.0,72767000.0,71059000.0,71007000.0,58635000.0,57041000.0,42451000.0,42419000.0,32323000.0,32238000.0,29183000.0,26365000.0,26180000.0,80698000.0,57837000.0,40554000.0,29410000.0,28882000.0,27650000.0,80121000.0,39791000.0,30511000.0,30506000.0,30403000.0,35188000.0,35181000.0,72450000.0,50755000.0,50217000.0,49901000.0,49892000.0,49845000.0,49686000.0,49621000.0,76587000.0,60008000.0,59873000.0,56157000.0,55501000.0,55409000.0,54526000.0,54205000.0,50747000.0,45945000.0,45032000.0,44144000.0,44099000.0,43364000.0,38917000.0,37918000.0,37820000.0,36614000.0,36222000.0,35593000.0,32905000.0,54507000.0,38502000.0,37737000.0,36158000.0,86226000.0,55318000.0,53664000.0,50055000.0,43471000.0,35253000.0,35015000.0,34914000.0,33759000.0,33753000.0,32858000.0,31147000.0,86102000.0,73764000.0,71389000.0,36189000.0,34207000.0,82292000.0,1524000.0,72547000.0,71214000.0,70568000.0,64061000.0,63622000.0,59887000.0,58809000.0,58618000.0,56178000.0,49833000.0,46536000.0,44954000.0,63853000.0,61672000.0,52521000.0,47261000.0,79389000.0,79034000.0,78995000.0,78944000.0,7643000.0,6316000.0,5834000.0,5002000.0,2968000.0,81908000.0,80383000.0,78372000.0,38563000.0,71443000.0,62222000.0,54813000.0,43153000.0,36962000.0,53193000.0,35747000.0,35738000.0,35490000.0,35301000.0,56218000.0,78037000.0,49752000.0,56620000.0,50390000.0,47973000.0,44406000.0,40521000.0,40490000.0,69215000.0,68922000.0,52275000.0,48689000.0,47192000.0,69394000.0,65213000.0,63776000.0,62789000.0,54609000.0,54579000.0,38467000.0,58631000.0,55948000.0,54732000.0,54469000.0,40347000.0,40019000.0,38220000.0,38188000.0,59033000.0,58954000.0,58626000.0,56535000.0,56423000.0,37559000.0,47884000.0,40827000.0,40377000.0,28812000.0,28797000.0,28770000.0,28090000.0,24100000.0,24021000.0,23947000.0,23896000.0,52598000.0,50604000.0,40206000.0,39343000.0,33040000.0,33001000.0,66689000.0,65681000.0,65668000.0,65640000.0,32501000.0,68916000.0,68665000.0,68644000.0,37672000.0,37663000.0,69821000.0,69815000.0,69799000.0,66859000.0,86290000.0,85789000.0,84028000.0,69123000.0,69116000.0,69097000.0,59416000.0,58632000.0,57116000.0,57099000.0,54527000.0,54158000.0,41708000.0,79853000.0,53563000.0,53116000.0,52742000.0,52459000.0,50959000.0,43589000.0,43047000.0,41032000.0,40886000.0,40838000.0,32461000.0,63693000.0,60689000.0,55857000.0,55851000.0,53105000.0,50411000.0,49522000.0,49254000.0,49094000.0,86233000.0,57294000.0,53244000.0,53228000.0,55732000.0,55515000.0,44473000.0,37828000.0,37821000.0,81973000.0,60480000.0,36487000.0,36423000.0,59732000.0,56659000.0,55100000.0,50949000.0,43744000.0,43262000.0,81918000.0,66986000.0,66193000.0,62374000.0,55516000.0,46693000.0,45753000.0,44567000.0,42491000.0,41876000.0,41428000.0,40703000.0,40239000.0,38502000.0,38483000.0,37038000.0,36241000.0,35646000.0,54484000.0,46667000.0,36335000.0,42411000.0,60637000.0,59782000.0,59756000.0,59626000.0,56561000.0,56520000.0,32840000.0,63410000.0,63386000.0,63344000.0,63232000.0,61926000.0,61813000.0,61790000.0,61753000.0,36891000.0,33460000.0,32465000.0,32135000.0,27736000.0,27720000.0,86032000.0,84089000.0,84050000.0,84003000.0,81543000.0,81122000.0,81119000.0,81102000.0,61825000.0,59620000.0,55794000.0,49289000.0,48297000.0,47797000.0,46758000.0,43503000.0,42923000.0,41991000.0,40234000.0,38783000.0,79109000.0,78351000.0,76279000.0,74857000.0,73416000.0,73214000.0,25160000.0,25126000.0,82385000.0,81899000.0,80547000.0,79668000.0,78051000.0,75802000.0,75309000.0,73747000.0,72380000.0,23725000.0,23317000.0,75875000.0,75843000.0,73795000.0,71146000.0,58385000.0,57988000.0,57908000.0,57482000.0,56673000.0,53675000.0,53644000.0,53320000.0,52324000.0,52304000.0,50930000.0,49442000.0,47952000.0,59034000.0,57860000.0,22927000.0,19298000.0,10643000.0,10507000.0,9088000.0,8384000.0,59273000.0,58781000.0,27137000.0,27111000.0,27013000.0,19671000.0,36677000.0,34856000.0,34722000.0,67534000.0,67513000.0,63058000.0,63001000.0,62970000.0,45707000.0,44276000.0,33295000.0,81979000.0,75713000.0,74061000.0,61369000.0,61319000.0,61243000.0,61210000.0,61143000.0,55967000.0,55509000.0,54960000.0,54928000.0,54826000.0,52195000.0,33627000.0,77719000.0,59383000.0,58451000.0,41668000.0,61138000.0,61070000.0,57086000.0,53665000.0,53626000.0,52010000.0,38108000.0,64100000.0,56185000.0,56125000.0,39216000.0,43698000.0,39611000.0,37993000.0,34634000.0,28727000.0,26693000.0,79127000.0,78719000.0,78695000.0,45447000.0,45442000.0,40252000.0,34805000.0,34576000.0,42049000.0,42025000.0,41739000.0,74553000.0,74070000.0,73483000.0,64675000.0,64151000.0,64067000.0,59289000.0,59158000.0,58180000.0,58072000.0,57330000.0,56703000.0,56653000.0,55366000.0,55024000.0,54833000.0,53381000.0,52498000.0,50852000.0,50838000.0,47967000.0,47499000.0,45198000.0,45094000.0,42976000.0,35734000.0,32284000.0,32265000.0,31905000.0,27790000.0,74363000.0,57760000.0,56937000.0,56864000.0,56858000.0,53944000.0,53802000.0,53545000.0,53528000.0,52474000.0,32767000.0,31896000.0,31792000.0,27501000.0,47251000.0,47017000.0,46463000.0,46442000.0,40339000.0,31051000.0,50750000.0,50599000.0,49578000.0,49554000.0,73500000.0,73475000.0,70621000.0,70614000.0,70586000.0,56388000.0,55535000.0,55528000.0,48308000.0,48281000.0,47245000.0,46978000.0,40198000.0,40014000.0,39776000.0,39024000.0,36546000.0,35742000.0,30924000.0,30526000.0,30435000.0,24963000.0,24620000.0,24168000.0,23729000.0,23686000.0,23636000.0,21645000.0,21299000.0,19977000.0,55604000.0,24595000.0,24299000.0,23375000.0,23269000.0,49089000.0,48249000.0,48241000.0,36382000.0,33153000.0,33127000.0,32806000.0,27653000.0,27634000.0,27589000.0,26947000.0,18320000.0,44018000.0,43230000.0,81764000.0,81676000.0,81586000.0,80755000.0,80211000.0,80184000.0,80175000.0,79955000.0,79901000.0,59168000.0,58252000.0,50757000.0,50749000.0,50189000.0,50151000.0,50020000.0,40623000.0,31877000.0,30722000.0,30656000.0,77259000.0,77021000.0,76988000.0,73108000.0,65320000.0,63270000.0,63231000.0,54727000.0,54716000.0,54648000.0,53347000.0,53302000.0,49285000.0,48227000.0,40139000.0,83071000.0,83035000.0,66583000.0,66545000.0,66424000.0,52594000.0,52372000.0,52327000.0,59947000.0,59923000.0,32204000.0,84194000.0,82425000.0,76388000.0,74825000.0,73729000.0,70470000.0,68899000.0,64203000.0,53992000.0,53625000.0,54554000.0,53632000.0,50358000.0,49921000.0,47637000.0,47526000.0,40643000.0,3917000.0,3153000.0,3127000.0,81053000.0,81020000.0,80358000.0,77986000.0,76563000.0,74807000.0,67486000.0,67471000.0,60115000.0,57414000.0,57407000.0,84293000.0,61519000.0,61511000.0,51456000.0,51322000.0,37148000.0,37013000.0,36948000.0,60065000.0,59609000.0,53798000.0,53288000.0,52834000.0,51805000.0,51610000.0,85784000.0,56799000.0,55419000.0,52873000.0,52842000.0,52809000.0,51258000.0,51200000.0,43811000.0,43802000.0,43777000.0,38214000.0,37902000.0,36933000.0,85876000.0,85836000.0,85319000.0,78959000.0,78765000.0,75720000.0,73593000.0,70916000.0,69733000.0,69713000.0,69630000.0,65614000.0,57332000.0,56598000.0,51852000.0,51754000.0,40586000.0,37457000.0,75153000.0,73337000.0,70551000.0,70121000.0,64818000.0,64790000.0,56418000.0,55193000.0,51519000.0,49186000.0,48787000.0,48701000.0,48667000.0,34436000.0,34391000.0,2749000.0,2254000.0,84792000.0,83476000.0,83196000.0,83162000.0,79492000.0,59597000.0,55819000.0,53468000.0,58280000.0,58273000.0,57142000.0,57106000.0,54679000.0,54655000.0,34278000.0,83411000.0,53820000.0,42068000.0,41153000.0,36890000.0,36635000.0,36179000.0,58922000.0,58595000.0,43580000.0,39588000.0,33646000.0,73218000.0,38810000.0,46672000.0,46332000.0,77175000.0,59963000.0,57307000.0,57303000.0,57279000.0,57174000.0,55784000.0,54912000.0,53559000.0,53342000.0,52983000.0,52977000.0,52948000.0,35352000.0,61961000.0,56662000.0,56562000.0,55779000.0,53456000.0,51856000.0,51761000.0,50343000.0,50331000.0,48743000.0,58610000.0,58570000.0,50932000.0,40855000.0,80639000.0,82783000.0,73741000.0,72741000.0,48247000.0,46986000.0,58202000.0,55449000.0,55255000.0,54996000.0,38285000.0,38252000.0,64791000.0,60054000.0,59837000.0,59283000.0,56943000.0,50335000.0,50242000.0,50224000.0,36745000.0,77982000.0,77860000.0,77749000.0,77676000.0,77609000.0,76843000.0,69350000.0,69308000.0,69064000.0,69022000.0,49919000.0,49389000.0,49330000.0,26581000.0,26581000.0,38699000.0,71775000.0,71775000.0,28481000.0,55517000.0,51548000.0,40124000.0,54399000.0,79978000.0,76335000.0,53610000.0,53590000.0,53541000.0,47291000.0,42229000.0,42203000.0,58174000.0,51371000.0,43404000.0,42330000.0,40242000.0,48990000.0,48670000.0,48230000.0,47018000.0,46681000.0,46550000.0,46454000.0,37557000.0,37530000.0,36264000.0,36212000.0,34387000.0,34368000.0,34348000.0,33723000.0,206000.0,85903000.0,82838000.0,77590000.0,76504000.0,41269000.0,71278000.0,43723000.0,71280000.0,71209000.0,68127000.0,15066000.0,13813000.0,35482000.0,50395000.0,52968000.0,49195000.0,49154000.0,48184000.0,44294000.0,44116000.0,42304000.0,42298000.0,83805000.0,83798000.0,53396000.0,53071000.0,52735000.0,48994000.0,48087000.0,48024000.0,32253000.0,80700000.0,80572000.0,78825000.0,78340000.0,78220000.0,78152000.0,77845000.0,74165000.0,74026000.0,74007000.0,73240000.0,72779000.0,72765000.0,68470000.0,68392000.0,66351000.0,58664000.0,58556000.0,58471000.0,58410000.0,55520000.0,39043000.0,38847000.0,36048000.0,35978000.0,34567000.0,85722000.0,84971000.0,81266000.0,77481000.0,76556000.0,76549000.0,74456000.0,74432000.0,71135000.0,70133000.0,69336000.0,68279000.0,67948000.0,65438000.0,65417000.0,40248000.0,40231000.0,40203000.0,35120000.0,34990000.0,34945000.0,79692000.0,78240000.0,78063000.0,55979000.0,55506000.0,54063000.0,54045000.0,49334000.0,48928000.0,47168000.0,46973000.0,46665000.0,46628000.0,61565000.0,61557000.0,57158000.0,56724000.0,56172000.0,54208000.0,54025000.0,54004000.0,50873000.0,50137000.0,49876000.0,49767000.0,76282000.0,75757000.0,75634000.0,61555000.0,59844000.0,59822000.0,57680000.0,56600000.0,54278000.0,54270000.0,44645000.0,43744000.0,43708000.0,37592000.0,37556000.0,34488000.0,34395000.0,34066000.0,3371000.0,76163000.0,81899000.0,79167000.0,78857000.0,58644000.0,71341000.0,69101000.0,51533000.0,40796000.0,40796000.0,64417000.0,62735000.0,57061000.0,51092000.0,39167000.0,83345000.0,5031000.0,4323000.0,76308000.0,76091000.0,76054000.0,72072000.0,43412000.0,43395000.0,42798000.0,38143000.0,38143000.0,63146000.0,61822000.0,61399000.0,61399000.0,61087000.0,61052000.0,59572000.0,59572000.0,51141000.0,51119000.0,50744000.0,49818000.0,49371000.0,47146000.0,46104000.0,44380000.0,43783000.0,43738000.0,43198000.0,625000.0,85413000.0,79072000.0,67396000.0,65276000.0,65276000.0,65231000.0,65183000.0,65172000.0,63669000.0,58138000.0,58115000.0,44178000.0,41567000.0,5731000.0,5164000.0,85901000.0,84027000.0,83232000.0,83204000.0,66962000.0,64246000.0,30309000.0,30262000.0,25525000.0,19045000.0,16786000.0,14885000.0,14035000.0,74469000.0,16813000.0,13944000.0,1495000.0,636000.0,86131000.0,85834000.0,83399000.0,83005000.0,82969000.0,63672000.0,45993000.0,45903000.0,45154000.0,45011000.0,40972000.0,40022000.0,39507000.0,34603000.0,32580000.0,73855000.0,59956000.0,49214000.0,48780000.0,48687000.0,48417000.0,48042000.0,47967000.0,37772000.0,23070000.0,22212000.0,22212000.0,22207000.0,6301000.0,85578000.0,83806000.0,82348000.0,80754000.0,79868000.0,79369000.0,79079000.0,78594000.0,74387000.0,72603000.0,72411000.0,72298000.0,72243000.0,58032000.0,57687000.0,57183000.0,56232000.0,56232000.0,55851000.0,54433000.0,54433000.0,54075000.0,48724000.0,50857000.0,33694000.0,33675000.0,31727000.0,31693000.0,31318000.0,31303000.0,2661000.0,80838000.0,80529000.0,77748000.0,77717000.0,77649000.0,77649000.0,77633000.0,75795000.0,75134000.0,72702000.0,52416000.0,51092000.0,51085000.0,51005000.0,50972000.0,50921000.0,45532000.0,45571000.0,45532000.0,45532000.0,81515000.0,81487000.0,81487000.0,76745000.0,76707000.0,76707000.0,67691000.0,67626000.0,67626000.0,67275000.0,67275000.0,67241000.0,66456000.0,66456000.0,64142000.0,63946000.0,61167000.0,61167000.0,61133000.0,61097000.0,60953000.0,52826000.0,46569000.0,46569000.0,46535000.0,46467000.0,62317000.0,62003000.0,62003000.0,61986000.0,60916000.0,60916000.0,60886000.0,49334000.0,48415000.0,47429000.0,46990000.0,45503000.0,69735000.0,35737000.0,35737000.0,35223000.0,35223000.0,35030000.0,35002000.0,85167000.0,85049000.0,84687000.0,33359000.0,63046000.0,63032000.0,62772000.0,62772000.0,62751000.0,62751000.0,62711000.0,62711000.0,58236000.0,58236000.0,58219000.0,57297000.0,57297000.0,57123000.0,54419000.0,54356000.0,48560000.0,45573000.0,42332000.0,63906000.0,63436000.0,61720000.0,61720000.0,61716000.0,61250000.0,55424000.0,53272000.0,52281000.0,52281000.0,52277000.0,40071000.0,38028000.0,61703000.0,53345000.0,51975000.0,41524000.0,41415000.0,41323000.0,49644000.0,55157000.0,54822000.0,54249000.0,54217000.0,64432000.0,64432000.0,64416000.0,64409000.0,61838000.0,61773000.0,60755000.0,60755000.0,56076000.0,56076000.0,56076000.0,55886000.0,55337000.0,55337000.0,55300000.0,53314000.0,52410000.0,52393000.0,52360000.0,50150000.0,40355000.0,40355000.0,40355000.0,36397000.0,30988000.0,29905000.0,29892000.0,28336000.0,28336000.0,28336000.0,28270000.0,28235000.0,67199000.0,67199000.0,67199000.0,57981000.0,57028000.0,57028000.0,56979000.0,54608000.0,53834000.0,53777000.0,51719000.0,51139000.0,49757000.0,49715000.0,49083000.0,48312000.0,78007000.0,68975000.0,45100000.0,63842000.0,52473000.0,50129000.0,42009000.0,41784000.0,41784000.0,41784000.0,58122000.0,58083000.0,84858000.0,84858000.0,80007000.0,78298000.0,78210000.0,76316000.0,76316000.0,67772000.0,67772000.0,62663000.0,62663000.0,48674000.0,48374000.0,45002000.0,43522000.0,43423000.0,41122000.0,40894000.0,40367000.0,40334000.0,64888000.0,64888000.0,45996000.0,45818000.0,30657000.0,30006000.0,28261000.0,26749000.0,26621000.0,26471000.0,30559000.0,62093000.0,62093000.0,62075000.0,62075000.0,58420000.0,58420000.0,56039000.0,56039000.0,52777000.0,52765000.0,48024000.0,48024000.0,48024000.0,41543000.0,28149000.0,50594000.0,27602000.0,26763000.0,26357000.0,83769000.0,83761000.0,2628000.0,80945000.0,80707000.0,80696000.0,76922000.0,76904000.0,54485000.0,53794000.0,53014000.0,51085000.0,84398000.0,81980000.0,80332000.0,77740000.0,4253000.0,4067000.0,4042000.0,84846000.0,75533000.0,80035000.0,79998000.0,67907000.0,63188000.0,63182000.0,60625000.0,58662000.0,57946000.0,57068000.0,57068000.0,56934000.0,33638000.0,37885000.0,28196000.0,3423000.0,81697000.0,56334000.0,56138000.0,65209000.0,65176000.0,64135000.0,62472000.0,51618000.0,51182000.0,40855000.0,38331000.0,62068000.0,61284000.0,47947000.0,43909000.0,48434000.0,40596000.0,47419000.0,47415000.0,41514000.0,78888000.0,77918000.0,60773000.0,59130000.0,57409000.0,57369000.0,57357000.0,61475000.0,452000.0,60975000.0,56470000.0,55840000.0,51767000.0,36749000.0,36749000.0,35654000.0,66609000.0,66580000.0,2660000.0,2640000.0,79241000.0,74090000.0,73954000.0,73929000.0,69075000.0,68299000.0,64160000.0,48520000.0,48232000.0,48187000.0,40351000.0,39271000.0,36995000.0,68327000.0,66688000.0,66619000.0,66549000.0,66517000.0,58018000.0,52174000.0,40663000.0,37143000.0,58275000.0,36784000.0,57283000.0,54595000.0,46216000.0,52251000.0,36022000.0,44999000.0,44981000.0,44956000.0,36787000.0,50487000.0,43481000.0,37909000.0,62709000.0,61307000.0,61245000.0,39157000.0,39145000.0,39123000.0,38191000.0,62125000.0,62100000.0,62073000.0,58882000.0,58680000.0,43473000.0,58896000.0,58817000.0,58088000.0,58034000.0,58002000.0,38945000.0,38735000.0,36025000.0,32942000.0,32450000.0,32223000.0,83088000.0,79089000.0,56078000.0,55119000.0,48269000.0,54173000.0,24670000.0,56039000.0,50378000.0,84915000.0,68171000.0,61022000.0,38879000.0,38351000.0,37812000.0,36962000.0,36576000.0,36354000.0,36220000.0,67657000.0,61284000.0,67657000.0,61284000.0,50909000.0,45721000.0,45660000.0,47461000.0,47199000.0,66949000.0,65840000.0,4593000.0,1539000.0,79802000.0,79784000.0,62536000.0,56579000.0,56546000.0,63575000.0,63404000.0,40853000.0,40647000.0,46983000.0,46935000.0,78728000.0,63742000.0,3911000.0,962000.0,82465000.0,82442000.0,73077000.0,37792000.0,74378000.0,36876000.0,3605000.0,34000.0,78431000.0,78329000.0,77662000.0,76448000.0,76407000.0,36622000.0,36615000.0,9103000.0,9092000.0,79647000.0,77109000.0,63049000.0,76929000.0,76060000.0,54967000.0,39283000.0,61304000.0,47123000.0,62197000.0,39102000.0,39081000.0,82004000.0,80813000.0,80773000.0,80714000.0,80653000.0,61876000.0,60136000.0,54458000.0,50655000.0,50578000.0,50364000.0,50345000.0,47927000.0,47654000.0,46104000.0,39062000.0,36291000.0,35773000.0,77004000.0,69883000.0,65543000.0,64924000.0,62284000.0,58566000.0,57673000.0,57648000.0,57618000.0,47624000.0,82306000.0,80716000.0,76243000.0,6217000.0,6045000.0,83173000.0,76451000.0,55319000.0,52787000.0,52188000.0,50328000.0,48660000.0,48607000.0,48217000.0,47833000.0,45455000.0,44825000.0,40637000.0,54712000.0,33404000.0,32280000.0,47359000.0,47340000.0,45452000.0,45276000.0,45209000.0,45045000.0,44990000.0,44848000.0,44793000.0,44730000.0,47379000.0,46358000.0,44532000.0,39204000.0,65908000.0,61737000.0,58959000.0,59329000.0,64003000.0,43070000.0]},"selected":{"id":"2229"},"selection_policy":{"id":"2228"}},"id":"2102","type":"ColumnDataSource"},{"attributes":{"coordinates":null,"data_source":{"id":"2102"},"glyph":{"id":"2137"},"group":null,"hover_glyph":null,"muted_glyph":{"id":"2139"},"nonselection_glyph":{"id":"2138"},"view":{"id":"2141"}},"id":"2140","type":"GlyphRenderer"},{"attributes":{"coordinates":null,"formatter":{"id":"2223"},"group":null,"major_label_policy":{"id":"2224"},"ticker":{"id":"2119"}},"id":"2118","type":"CategoricalAxis"},{"attributes":{"base":24,"mantissas":[1,2,4,6,8,12],"max_interval":43200000.0,"min_interval":3600000.0,"num_minor_ticks":0},"id":"2233","type":"AdaptiveTicker"},{"attributes":{},"id":"2223","type":"CategoricalTickFormatter"},{"attributes":{"range":{"id":"2108"},"width":0.6},"id":"2135","type":"Jitter"},{"attributes":{"days":[1,4,7,10,13,16,19,22,25,28]},"id":"2235","type":"DaysTicker"},{"attributes":{"bottom_units":"screen","coordinates":null,"fill_alpha":0.5,"fill_color":"lightgrey","group":null,"left_units":"screen","level":"overlay","line_alpha":1.0,"line_color":"black","line_dash":[4,4],"line_width":2,"right_units":"screen","syncable":false,"top_units":"screen"},"id":"2127","type":"BoxAnnotation"},{"attributes":{"fill_alpha":{"value":0.2},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.2},"line_alpha":{"value":0.2},"line_color":{"value":"#1f77b4"},"x":{"field":"time"},"y":{"field":"day","transform":{"id":"2135"}}},"id":"2139","type":"Circle"},{"attributes":{"days":["%Hh"]},"id":"2142","type":"DatetimeTickFormatter"},{"attributes":{"months":[0,1,2,3,4,5,6,7,8,9,10,11]},"id":"2238","type":"MonthsTicker"},{"attributes":{},"id":"2112","type":"CategoricalScale"},{"attributes":{"fill_alpha":{"value":0.1},"fill_color":{"value":"#1f77b4"},"hatch_alpha":{"value":0.1},"line_alpha":{"value":0.1},"line_color":{"value":"#1f77b4"},"x":{"field":"time"},"y":{"field":"day","transform":{"id":"2135"}}},"id":"2138","type":"Circle"},{"attributes":{"days":[1,8,15,22]},"id":"2236","type":"DaysTicker"},{"attributes":{"source":{"id":"2102"}},"id":"2141","type":"CDSView"},{"attributes":{"days":[1,15]},"id":"2237","type":"DaysTicker"},{"attributes":{"num_minor_ticks":5,"tickers":[{"id":"2231"},{"id":"2232"},{"id":"2233"},{"id":"2234"},{"id":"2235"},{"id":"2236"},{"id":"2237"},{"id":"2238"},{"id":"2239"},{"id":"2240"},{"id":"2241"},{"id":"2242"}]},"id":"2115","type":"DatetimeTicker"}],"root_ids":["2103"]},"title":"Bokeh Application","version":"2.4.3"}};
|
1858
|
-
const render_items = [{"docid":"782f9d92-8206-4e6d-a5bc-2fed73501171","root_ids":["2103"],"roots":{"2103":"c8a49138-42fc-4d47-82d3-e565c499c30d"}}];
|
1859
|
-
root.Bokeh.embed.embed_items_notebook(docs_json, render_items);
|
1860
|
-
}
|
1861
|
-
if (root.Bokeh !== undefined) {
|
1862
|
-
embed_document(root);
|
1863
|
-
} else {
|
1864
|
-
let attempts = 0;
|
1865
|
-
const timer = setInterval(function(root) {
|
1866
|
-
if (root.Bokeh !== undefined) {
|
1867
|
-
clearInterval(timer);
|
1868
|
-
embed_document(root);
|
1869
|
-
} else {
|
1870
|
-
attempts++;
|
1871
|
-
if (attempts > 100) {
|
1872
|
-
clearInterval(timer);
|
1873
|
-
console.log("Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing");
|
1874
|
-
}
|
1875
|
-
}
|
1876
|
-
}, 10, root)
|
1877
|
-
}
|
1878
|
-
})(window);
|
1879
|
-
</script>
|
1880
|
-
</div>
|
1881
|
-
|
1882
|
-
</div>
|
1883
|
-
|
1884
|
-
</div>
|
1885
|
-
</div>
|
1886
|
-
|
1887
|
-
</div>
|
1888
|
-
|