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.
Files changed (401) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/attics/generator.html +5 -13
  3. data/assets/data/banner.html +2 -2
  4. data/assets/themes/j1/adapter/js/attic.js +106 -62
  5. data/assets/themes/j1/adapter/js/masterslider.js +22 -5
  6. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +26 -1
  7. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  8. data/assets/themes/j1/modules/backstretch/js/backstretch.js +1 -1
  9. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.js +1696 -0
  10. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.min.js +20 -0
  11. data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.js +1627 -0
  12. data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.min.js +20 -0
  13. data/assets/themes/j1/modules/cryptoJS/js/rc4.js +2 -2
  14. data/lib/j1/version.rb +1 -1
  15. data/lib/starter_web/Gemfile +1 -1
  16. data/lib/starter_web/README.md +440 -175
  17. data/lib/starter_web/_config.yml +3 -3
  18. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  19. data/lib/starter_web/_data/modules/attics.yml +12 -0
  20. data/lib/starter_web/_data/modules/defaults/attics.yml +16 -1
  21. data/lib/starter_web/_data/modules/defaults/masterslider.yml +1 -1
  22. data/lib/starter_web/_data/modules/masterslider.yml +0 -4
  23. data/lib/starter_web/_data/modules/navigator_menu.yml +31 -25
  24. data/lib/starter_web/_includes/attributes.asciidoc +2 -0
  25. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  26. data/lib/starter_web/assets/images/modules/attics/1920x1280/ben-kolde.jpg +0 -0
  27. data/lib/starter_web/assets/images/modules/attics/1920x1280/braden-collum.jpg +0 -0
  28. data/lib/starter_web/assets/images/modules/attics/1920x1280/ev.jpg +0 -0
  29. data/lib/starter_web/assets/images/modules/attics/1920x1280/firmbee-com.jpg +0 -0
  30. data/lib/starter_web/assets/images/modules/attics/1920x1280/max-harlynking.jpg +0 -0
  31. data/lib/starter_web/assets/images/modules/attics/guillaume-bolduc-1920x1280.jpg +0 -0
  32. data/lib/starter_web/assets/images/modules/attics/spacex-1920x1280.jpg +0 -0
  33. data/lib/starter_web/assets/videos/headers/{still → present_videos/still}/underground-broadway.jpg +0 -0
  34. data/lib/starter_web/assets/videos/headers/present_videos/underground-broadway.mp4 +0 -0
  35. data/lib/starter_web/collections/asciidoc_skeletons/simple-post/_posts/yyyy-mm-dd-your-post-name.asciidoc +3 -1
  36. data/lib/starter_web/collections/posts/public/featured/_posts/2021-01-01-about-cookies.adoc +3 -0
  37. data/lib/starter_web/collections/posts/public/featured/_posts/2021-02-01-site-generators.adoc +2 -3
  38. data/lib/starter_web/collections/posts/public/featured/_posts/2022-02-01-about-j1.adoc +3 -0
  39. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-01-post-wiki-series.adoc +3 -0
  40. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-02-post-wiki-series.adoc +3 -0
  41. data/lib/starter_web/collections/posts/public/series/_posts/2020-01-03-post-wiki-series.adoc +3 -0
  42. data/lib/starter_web/index.html +41 -7
  43. data/lib/starter_web/package.json +2 -2
  44. data/lib/starter_web/pages/public/about/features.adoc +119 -0
  45. data/lib/starter_web/pages/public/about/reporting_issues.adoc +78 -0
  46. data/lib/starter_web/pages/public/about/{about_site.adoc → site.adoc} +20 -15
  47. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +3 -0
  48. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +3 -0
  49. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +3 -0
  50. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +3 -0
  51. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +4 -1
  52. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +4 -1
  53. data/lib/starter_web/pages/public/blog/navigator/archive.html +4 -1
  54. data/lib/starter_web/pages/public/blog/navigator/index.html +4 -1
  55. data/lib/starter_web/pages/public/features/general.adoc +5 -1
  56. data/lib/starter_web/pages/public/features/template.adoc +4 -0
  57. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-circular-times-table.adoc +3 -0
  58. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-common-used-widgets.adoc +3 -0
  59. data/lib/starter_web/pages/public/jupyter/examples/distributed/j1-odes-in-python.adoc +3 -0
  60. data/lib/starter_web/pages/public/jupyter/examples/localized/j1_climate-change-forecast.adoc +3 -0
  61. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_interactive_widgets.html +512 -512
  62. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets.html +629 -629
  63. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +95 -95
  64. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +93 -93
  65. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +96 -96
  66. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +70 -70
  67. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +156 -156
  68. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +95 -95
  69. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +93 -93
  70. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_odes_in_python.html +955 -955
  71. data/lib/starter_web/pages/public/learn/quickstart.adoc +4 -1
  72. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +4 -1
  73. data/lib/starter_web/pages/public/learn/roundtrip/100_present_videos.adoc +16 -5
  74. data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +3 -0
  75. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +3 -0
  76. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +3 -0
  77. data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +3 -0
  78. data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +3 -0
  79. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +3 -0
  80. data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +6 -2
  81. data/lib/starter_web/pages/public/learn/where_to_go.adoc +3 -0
  82. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +3 -0
  83. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +3 -0
  84. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +3 -0
  85. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +3 -0
  86. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +9 -1
  87. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +10 -2
  88. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +3 -0
  89. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +3 -0
  90. data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +3 -0
  91. data/lib/starter_web/pages/public/plans/plans.adoc +3 -0
  92. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +4 -0
  93. data/lib/starter_web/pages/public/se/se-fake.adoc +4 -0
  94. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  95. data/lib/starter_web/utilsrv/package.json +1 -1
  96. metadata +18 -365
  97. data/lib/starter_web/assets/videos/headers/still/victoria-oskolovich-on-vimeo.jpg +0 -0
  98. data/lib/starter_web/pages/public/_jupyter/docs/_includes/attributes.asciidoc +0 -67
  99. data/lib/starter_web/pages/public/_jupyter/docs/_includes/documents/j1_docs_example_static.asciidoc +0 -232
  100. data/lib/starter_web/pages/public/_jupyter/docs/binderhub.adoc +0 -631
  101. data/lib/starter_web/pages/public/_jupyter/docs/j1-nbinteract.adoc +0 -638
  102. data/lib/starter_web/pages/public/_jupyter/docs/jupyterhub.adoc +0 -248
  103. data/lib/starter_web/pages/public/_jupyter/docs/nbinteract-widget-manual.adoc +0 -928
  104. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-circular-times-table.adoc +0 -139
  105. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-common-used-widgets.adoc +0 -229
  106. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-odes-in-python.adoc +0 -112
  107. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-altair/j1-altair-visualisations.adoc +0 -142
  108. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bokeh-visualisations.adoc +0 -171
  109. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bqplot-eamples.adoc +0 -111
  110. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-plotly/j1-plotly-visualisations.adoc +0 -94
  111. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1_climate-change-forecast.adoc +0 -106
  112. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16260
  113. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_bgplot_line_plot-checkpoint.ipynb +0 -247
  114. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-Copy1-checkpoint.ipynb +0 -12382
  115. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-checkpoint.ipynb +0 -12387
  116. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-short-checkpoint.ipynb +0 -12170
  117. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast-checkpoint.ipynb +0 -1058
  118. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_example_dynamic-checkpoint.ipynb +0 -14478
  119. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-Copy1-checkpoint.ipynb +0 -379
  120. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-checkpoint.ipynb +0 -442
  121. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets-checkpoint.ipynb +0 -523
  122. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.line_charts-checkpoint.ipynb +0 -84
  123. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.questions-checkpoint.ipynb +0 -194
  124. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_chart-checkpoint.ipynb +0 -89
  125. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-Copy1-checkpoint.ipynb +0 -164
  126. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-checkpoint.ipynb +0 -173
  127. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts.1-checkpoint.ipynb +0 -256
  128. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_barcharts-checkpoint.ipynb +0 -126
  129. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_hist_chart-checkpoint.ipynb +0 -87
  130. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_chart-checkpoint.ipynb +0 -90
  131. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_charts-checkpoint.ipynb +0 -87
  132. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_multiple_choice-checkpoint.ipynb +0 -64
  133. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_short_answer-checkpoint.ipynb +0 -122
  134. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_questions-checkpoint.ipynb +0 -181
  135. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_chart-checkpoint.ipynb +0 -89
  136. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_charts-checkpoint.ipynb +0 -175
  137. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_drag_chart-checkpoint.ipynb +0 -87
  138. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_ode_selected-checkpoint.ipynb +0 -14478
  139. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_odes_in_python-checkpoint.ipynb +0 -15227
  140. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/factor_by_factor.mp4 +0 -0
  141. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_circular_times_table.ipynb +0 -12382
  142. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +0 -1058
  143. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +0 -14478
  144. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_interactive_widgets.ipynb +0 -442
  145. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets.ipynb +0 -523
  146. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_bar_chart.ipynb +0 -89
  147. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_hist_chart.ipynb +0 -87
  148. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_line_chart.ipynb +0 -90
  149. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_multiple_choice.ipynb +0 -64
  150. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_short_answer.ipynb +0 -122
  151. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_chart.ipynb +0 -89
  152. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_drag_chart.ipynb +0 -87
  153. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_odes_in_python.ipynb +0 -15227
  154. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/line_by_line.mp4 +0 -0
  155. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/point_by_point.mp4 +0 -0
  156. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +0 -16296
  157. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_non_interactive-checkpoint.ipynb +0 -15385
  158. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_interactive.ipynb +0 -16296
  159. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_non_interactive.ipynb +0 -15385
  160. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/00 - Introduction and Setup-checkpoint.ipynb +0 -717
  161. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/01 - Basic Plotting-checkpoint.ipynb +0 -1381
  162. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/02 - Styling and Theming-checkpoint.ipynb +0 -1440
  163. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/03 - Data Sources and Transformations-checkpoint.ipynb +0 -927
  164. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/04 - Adding Annotations-checkpoint.ipynb +0 -1105
  165. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/05 - Presentation Layouts-checkpoint.ipynb +0 -578
  166. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/06 - Linking and Interactions-checkpoint.ipynb +0 -1196
  167. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/07 - Bar and Categorical Data Plots-checkpoint.ipynb +0 -1681
  168. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/08 - Graph and Network Plots-checkpoint.ipynb +0 -680
  169. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/09 - Geographic Plots-checkpoint.ipynb +0 -693
  170. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/10 - Exporting and Embedding-checkpoint.ipynb +0 -751
  171. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/11 - Running Bokeh Applications-checkpoint.ipynb +0 -770
  172. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/bokeh_tut_00_introduction_and_setup-checkpoint.ipynb +0 -666
  173. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_01_basic_plotting-checkpoint.ipynb +0 -1365
  174. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_02_styling_and_theming-checkpoint.ipynb +0 -1405
  175. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_03_data_sources_and_transformations-checkpoint.ipynb +0 -856
  176. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_04_adding_annotations-checkpoint.ipynb +0 -1167
  177. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_05_presentation_layouts-checkpoint.ipynb +0 -601
  178. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_06_linking_and_interactions-checkpoint.ipynb +0 -1356
  179. 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
  180. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_08_graph_and_network_plots-checkpoint.ipynb +0 -625
  181. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_09_geographic_plots-checkpoint.ipynb +0 -685
  182. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.ipynb +0 -726
  183. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.org +0 -726
  184. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding.new-checkpoint.ipynb +0 -560
  185. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_11_running_bokeh_applications-checkpoint.ipynb +0 -716
  186. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_01_basic_plotting.ipynb +0 -1365
  187. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_02_styling_and_theming.ipynb +0 -1405
  188. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_03_data_sources_and_transformations.ipynb +0 -856
  189. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_04_adding_annotations.ipynb +0 -1167
  190. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_05_presentation_layouts.ipynb +0 -601
  191. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_06_linking_and_interactions.ipynb +0 -1356
  192. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_07_bar_and_categorical_data_plots.ipynb +0 -1742
  193. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_08_graph_and_network_plots.ipynb +0 -625
  194. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_09_geographic_plots.ipynb +0 -685
  195. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/.ipynb_checkpoints/j1_mathplot_vs_bqplot-checkpoint.ipynb +0 -336
  196. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/advanced/Feature_Vector_Distribution-Iris-Digits.ipynb +0 -433
  197. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_bgplot_line_plot.ipynb +0 -244
  198. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_circular_times_table-short.ipynb +0 -12170
  199. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_mathplot_vs_bqplot.ipynb +0 -336
  200. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Index-checkpoint.ipynb +0 -163
  201. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Tutorials-checkpoint.ipynb +0 -51
  202. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Advanced Plotting.ipynb +0 -289
  203. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Animations.ipynb +0 -266
  204. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Axis Properties.ipynb +0 -396
  205. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Plotting Dates.ipynb +0 -318
  206. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/Time Series.ipynb +0 -158
  207. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/spx_prices.csv +0 -6799
  208. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Feature_Vector_Distribution-Iris-Digits.ipynb +0 -470
  209. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Index.ipynb +0 -49
  210. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Logs Analytics/Logs Dashboard.ipynb +0 -378
  211. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Mobile Patent Suits.ipynb +0 -123
  212. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Neural Network.ipynb +0 -177
  213. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Outlier Detection.ipynb +0 -311
  214. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Bubble Chart.ipynb +0 -255
  215. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Choropleth.ipynb +0 -275
  216. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/nations.json +0 -1
  217. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/world_map_codes.csv +0 -234
  218. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Basic Plotting-checkpoint.ipynb +0 -186
  219. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Pyplot-checkpoint.ipynb +0 -794
  220. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Untitled-checkpoint.ipynb +0 -323
  221. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Basic Plotting.ipynb +0 -261
  222. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Pyplot.ipynb +0 -1489
  223. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Index.ipynb +0 -163
  224. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Interaction Layer.ipynb +0 -966
  225. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Mark Interactions.ipynb +0 -476
  226. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Selectors.ipynb +0 -427
  227. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Introduction.ipynb +0 -528
  228. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bars.ipynb +0 -480
  229. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bins.ipynb +0 -217
  230. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Boxplot.ipynb +0 -253
  231. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Candles.ipynb +0 -225
  232. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/FlexLine.ipynb +0 -123
  233. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Graph.ipynb +0 -357
  234. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/GridHeatMap.ipynb +0 -422
  235. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/HeatMap.ipynb +0 -157
  236. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Hist.ipynb +0 -176
  237. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Image.ipynb +0 -195
  238. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Label.ipynb +0 -189
  239. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Lines.ipynb +0 -565
  240. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Map.ipynb +0 -182
  241. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Market Map.ipynb +0 -315
  242. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Pie.ipynb +0 -465
  243. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Scatter.ipynb +0 -835
  244. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bars.ipynb +0 -362
  245. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bins.ipynb +0 -252
  246. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Boxplot.ipynb +0 -273
  247. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Candles.ipynb +0 -242
  248. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/GridHeatMap.ipynb +0 -417
  249. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/HeatMap.ipynb +0 -155
  250. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Hist.ipynb +0 -238
  251. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Image.ipynb +0 -152
  252. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Label.ipynb +0 -206
  253. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Lines.ipynb +0 -474
  254. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Map.ipynb +0 -181
  255. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Pie.ipynb +0 -310
  256. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Scatter.ipynb +0 -702
  257. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Scales/Color Scales.ipynb +0 -495
  258. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Feature_Vector_Distribution-Iris-Digits-checkpoint.ipynb +0 -433
  259. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Linking Plots With Widgets-checkpoint.ipynb +0 -326
  260. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-Copy1-checkpoint.ipynb +0 -177
  261. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-checkpoint.ipynb +0 -177
  262. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Brush Interval Selector.ipynb +0 -154
  263. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Fast Interval Selector.ipynb +0 -152
  264. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density Widget.ipynb +0 -128
  265. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density.ipynb +0 -113
  266. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Linking Plots With Widgets.ipynb +0 -326
  267. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Object Model.ipynb +0 -179
  268. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Pyplot.ipynb +0 -174
  269. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Updating Plots.ipynb +0 -177
  270. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials.ipynb +0 -51
  271. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/country_codes.csv +0 -213
  272. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/gdp_per_capita.csv +0 -56
  273. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/state_codes.csv +0 -52
  274. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/trees.jpg +0 -0
  275. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_central_limit_theorem-checkpoint.ipynb +0 -247
  276. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_variability_of_the_sample_mean-checkpoint.ipynb +0 -323
  277. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +0 -387
  278. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_interactive_questions-checkpoint.ipynb +0 -185
  279. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_layout-checkpoint.ipynb +0 -384
  280. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_interact-checkpoint.ipynb +0 -254
  281. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_monty_hall-checkpoint.ipynb +0 -732
  282. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_central_limit_theorem.ipynb +0 -247
  283. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_correlation.ipynb +0 -651
  284. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_empirical_distributions.ipynb +0 -773
  285. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_linear_regression.ipynb +0 -111
  286. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_probability_distribution_plots.ipynb +0 -199
  287. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_sampling_from_a_population.ipynb +0 -421
  288. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_variability_of_the_sample_mean.ipynb +0 -323
  289. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_graphing.ipynb +0 -387
  290. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_interactive_questions.ipynb +0 -185
  291. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_layout.ipynb +0 -384
  292. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_interact.ipynb +0 -254
  293. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_monty_hall.ipynb +0 -732
  294. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Advanced Plotting.html +0 -373
  295. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Animations.html +0 -361
  296. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Axis Properties.html +0 -569
  297. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bars.html +0 -487
  298. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Basic Plotting.html +0 -341
  299. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bins.html +0 -259
  300. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Boxplot.html +0 -277
  301. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Brush Interval Selector.html +0 -182
  302. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bubble Chart.html +0 -299
  303. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Candles.html +0 -252
  304. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Choropleth.html +0 -318
  305. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Color Scales.html +0 -514
  306. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Fast Interval Selector.html +0 -182
  307. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Feature_Vector_Distribution-Iris-Digits.html +0 -479
  308. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/FlexLine.html +0 -128
  309. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density Widget.html +0 -152
  310. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density.html +0 -137
  311. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Graph.html +0 -484
  312. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/GridHeatMap.html +0 -483
  313. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/HeatMap.html +0 -170
  314. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Hist.html +0 -349
  315. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Image.html +0 -177
  316. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Index.html +0 -29
  317. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Interaction Layer.html +0 -1372
  318. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Introduction.html +0 -749
  319. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Label.html +0 -268
  320. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Lines.html +0 -704
  321. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Linking Plots With Widgets.html +0 -389
  322. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Logs Dashboard.html +0 -455
  323. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Map.html +0 -229
  324. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mark Interactions.html +0 -613
  325. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Market Map.html +0 -413
  326. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mobile Patent Suits.html +0 -131
  327. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Neural Network.html +0 -190
  328. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Object Model.html +0 -193
  329. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Outlier Detection.html +0 -363
  330. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pie.html +0 -367
  331. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Plotting Dates.html +0 -337
  332. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pyplot.html +0 -196
  333. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Scatter.html +0 -948
  334. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Selectors.html +0 -489
  335. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Time Series.html +0 -173
  336. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Tutorials.html +0 -40
  337. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Updating Plots.html +0 -228
  338. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_interactive.html +0 -2216
  339. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_non_interactive.html +0 -1170
  340. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bgplot_line_plot.html +0 -318
  341. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_01_basic_plotting.html +0 -1479
  342. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_02_styling_and_theming.html +0 -1524
  343. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_03_data_sources_and_transformations.html +0 -983
  344. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_04_adding_annotations.html +0 -1280
  345. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_05_presentation_layouts.html +0 -660
  346. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_06_linking_and_interactions.html +0 -1563
  347. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_07_bar_and_categorical_data_plots.html +0 -1888
  348. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_08_graph_and_network_plots.html +0 -689
  349. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_09_geographic_plots.html +0 -767
  350. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table-short.html +0 -475
  351. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table.html +0 -747
  352. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_climate_change_forecast.html +0 -1250
  353. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +0 -186
  354. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_interactive_widgets.html +0 -512
  355. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_mathplot_vs_bqplot.html +0 -407
  356. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets.html +0 -629
  357. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +0 -95
  358. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +0 -93
  359. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +0 -96
  360. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +0 -70
  361. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +0 -156
  362. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +0 -95
  363. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +0 -93
  364. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_odes_in_python.html +0 -955
  365. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_central_limit_theorem.html +0 -290
  366. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_correlation.html +0 -818
  367. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_empirical_distributions.html +0 -351
  368. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_linear_regression.html +0 -106
  369. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_probability_distribution_plots.html +0 -228
  370. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_sampling_from_a_population.html +0 -518
  371. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_variability_of_the_sample_mean.html +0 -372
  372. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_graphing.html +0 -473
  373. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_interactive_questions.html +0 -242
  374. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_layout.html +0 -496
  375. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_interact.html +0 -329
  376. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_monty_hall.html +0 -866
  377. data/lib/starter_web/pages/public/_jupyter/where_to_go.adoc +0 -270
  378. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_images.adoc +0 -313
  379. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_videos.adoc +0 -281
  380. data/lib/starter_web/pages/public/learn/_roundtrip/200_typography.adoc +0 -253
  381. data/lib/starter_web/pages/public/learn/_roundtrip/300_icon_fonts.adoc +0 -579
  382. data/lib/starter_web/pages/public/learn/_roundtrip/400_asciidoc_extensions.adoc +0 -718
  383. data/lib/starter_web/pages/public/learn/_roundtrip/410_bs_modals_extentions.adoc +0 -91
  384. data/lib/starter_web/pages/public/learn/_roundtrip/420_responsive_tables_extensions.adoc +0 -420
  385. data/lib/starter_web/pages/public/learn/_roundtrip/500_themes.adoc +0 -250
  386. data/lib/starter_web/pages/public/learn/_roundtrip/600_quicksearch.adoc +0 -425
  387. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/attributes.asciidoc +0 -118
  388. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/100_gistblock.asciidoc +0 -28
  389. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_info.asciidoc +0 -14
  390. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +0 -11
  391. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +0 -11
  392. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_central_success.asciidoc +0 -11
  393. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_left_info.asciidoc +0 -11
  394. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_right_success.asciidoc +0 -11
  395. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +0 -47
  396. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_info.asciidoc +0 -11
  397. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_left_info.asciidoc +0 -11
  398. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_right_success.asciidoc +0 -11
  399. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +0 -337
  400. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +0 -47
  401. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/google-ad.js +0 -130
@@ -1,1742 +0,0 @@
1
- {
2
- "cells": [
3
- {
4
- "cell_type": "markdown",
5
- "metadata": {},
6
- "source": [
7
- "## 7. Bar and Categorical Data Plots"
8
- ]
9
- },
10
- {
11
- "cell_type": "code",
12
- "execution_count": 1,
13
- "metadata": {},
14
- "outputs": [],
15
- "source": [
16
- "from bokeh.io import show, output_notebook\n",
17
- "from bokeh.plotting import figure"
18
- ]
19
- },
20
- {
21
- "cell_type": "code",
22
- "execution_count": 2,
23
- "metadata": {},
24
- "outputs": [
25
- {
26
- "data": {
27
- "text/html": [
28
- "<div class=\"bk-root\">\n",
29
- " <a href=\"https://bokeh.org\" target=\"_blank\" class=\"bk-logo bk-logo-small bk-logo-notebook\"></a>\n",
30
- " <span id=\"1002\">Loading BokehJS ...</span>\n",
31
- " </div>\n"
32
- ]
33
- },
34
- "metadata": {},
35
- "output_type": "display_data"
36
- },
37
- {
38
- "data": {
39
- "application/javascript": [
40
- "(function(root) {\n",
41
- " function now() {\n",
42
- " return new Date();\n",
43
- " }\n",
44
- "\n",
45
- " const force = true;\n",
46
- "\n",
47
- " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n",
48
- " root._bokeh_onload_callbacks = [];\n",
49
- " root._bokeh_is_loading = undefined;\n",
50
- " }\n",
51
- "\n",
52
- "const JS_MIME_TYPE = 'application/javascript';\n",
53
- " const HTML_MIME_TYPE = 'text/html';\n",
54
- " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n",
55
- " const CLASS_NAME = 'output_bokeh rendered_html';\n",
56
- "\n",
57
- " /**\n",
58
- " * Render data to the DOM node\n",
59
- " */\n",
60
- " function render(props, node) {\n",
61
- " const script = document.createElement(\"script\");\n",
62
- " node.appendChild(script);\n",
63
- " }\n",
64
- "\n",
65
- " /**\n",
66
- " * Handle when an output is cleared or removed\n",
67
- " */\n",
68
- " function handleClearOutput(event, handle) {\n",
69
- " const cell = handle.cell;\n",
70
- "\n",
71
- " const id = cell.output_area._bokeh_element_id;\n",
72
- " const server_id = cell.output_area._bokeh_server_id;\n",
73
- " // Clean up Bokeh references\n",
74
- " if (id != null && id in Bokeh.index) {\n",
75
- " Bokeh.index[id].model.document.clear();\n",
76
- " delete Bokeh.index[id];\n",
77
- " }\n",
78
- "\n",
79
- " if (server_id !== undefined) {\n",
80
- " // Clean up Bokeh references\n",
81
- " const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n",
82
- " cell.notebook.kernel.execute(cmd_clean, {\n",
83
- " iopub: {\n",
84
- " output: function(msg) {\n",
85
- " const id = msg.content.text.trim();\n",
86
- " if (id in Bokeh.index) {\n",
87
- " Bokeh.index[id].model.document.clear();\n",
88
- " delete Bokeh.index[id];\n",
89
- " }\n",
90
- " }\n",
91
- " }\n",
92
- " });\n",
93
- " // Destroy server and session\n",
94
- " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n",
95
- " cell.notebook.kernel.execute(cmd_destroy);\n",
96
- " }\n",
97
- " }\n",
98
- "\n",
99
- " /**\n",
100
- " * Handle when a new output is added\n",
101
- " */\n",
102
- " function handleAddOutput(event, handle) {\n",
103
- " const output_area = handle.output_area;\n",
104
- " const output = handle.output;\n",
105
- "\n",
106
- " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n",
107
- " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n",
108
- " return\n",
109
- " }\n",
110
- "\n",
111
- " const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n",
112
- "\n",
113
- " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n",
114
- " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n",
115
- " // store reference to embed id on output_area\n",
116
- " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n",
117
- " }\n",
118
- " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n",
119
- " const bk_div = document.createElement(\"div\");\n",
120
- " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n",
121
- " const script_attrs = bk_div.children[0].attributes;\n",
122
- " for (let i = 0; i < script_attrs.length; i++) {\n",
123
- " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n",
124
- " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n",
125
- " }\n",
126
- " // store reference to server id on output_area\n",
127
- " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n",
128
- " }\n",
129
- " }\n",
130
- "\n",
131
- " function register_renderer(events, OutputArea) {\n",
132
- "\n",
133
- " function append_mime(data, metadata, element) {\n",
134
- " // create a DOM node to render to\n",
135
- " const toinsert = this.create_output_subarea(\n",
136
- " metadata,\n",
137
- " CLASS_NAME,\n",
138
- " EXEC_MIME_TYPE\n",
139
- " );\n",
140
- " this.keyboard_manager.register_events(toinsert);\n",
141
- " // Render to node\n",
142
- " const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n",
143
- " render(props, toinsert[toinsert.length - 1]);\n",
144
- " element.append(toinsert);\n",
145
- " return toinsert\n",
146
- " }\n",
147
- "\n",
148
- " /* Handle when an output is cleared or removed */\n",
149
- " events.on('clear_output.CodeCell', handleClearOutput);\n",
150
- " events.on('delete.Cell', handleClearOutput);\n",
151
- "\n",
152
- " /* Handle when a new output is added */\n",
153
- " events.on('output_added.OutputArea', handleAddOutput);\n",
154
- "\n",
155
- " /**\n",
156
- " * Register the mime type and append_mime function with output_area\n",
157
- " */\n",
158
- " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n",
159
- " /* Is output safe? */\n",
160
- " safe: true,\n",
161
- " /* Index of renderer in `output_area.display_order` */\n",
162
- " index: 0\n",
163
- " });\n",
164
- " }\n",
165
- "\n",
166
- " // register the mime type if in Jupyter Notebook environment and previously unregistered\n",
167
- " if (root.Jupyter !== undefined) {\n",
168
- " const events = require('base/js/events');\n",
169
- " const OutputArea = require('notebook/js/outputarea').OutputArea;\n",
170
- "\n",
171
- " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n",
172
- " register_renderer(events, OutputArea);\n",
173
- " }\n",
174
- " }\n",
175
- " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n",
176
- " root._bokeh_timeout = Date.now() + 5000;\n",
177
- " root._bokeh_failed_load = false;\n",
178
- " }\n",
179
- "\n",
180
- " const NB_LOAD_WARNING = {'data': {'text/html':\n",
181
- " \"<div style='background-color: #fdd'>\\n\"+\n",
182
- " \"<p>\\n\"+\n",
183
- " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n",
184
- " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n",
185
- " \"</p>\\n\"+\n",
186
- " \"<ul>\\n\"+\n",
187
- " \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n",
188
- " \"<li>use INLINE resources instead, as so:</li>\\n\"+\n",
189
- " \"</ul>\\n\"+\n",
190
- " \"<code>\\n\"+\n",
191
- " \"from bokeh.resources import INLINE\\n\"+\n",
192
- " \"output_notebook(resources=INLINE)\\n\"+\n",
193
- " \"</code>\\n\"+\n",
194
- " \"</div>\"}};\n",
195
- "\n",
196
- " function display_loaded() {\n",
197
- " const el = document.getElementById(\"1002\");\n",
198
- " if (el != null) {\n",
199
- " el.textContent = \"BokehJS is loading...\";\n",
200
- " }\n",
201
- " if (root.Bokeh !== undefined) {\n",
202
- " if (el != null) {\n",
203
- " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n",
204
- " }\n",
205
- " } else if (Date.now() < root._bokeh_timeout) {\n",
206
- " setTimeout(display_loaded, 100)\n",
207
- " }\n",
208
- " }\n",
209
- "\n",
210
- " function run_callbacks() {\n",
211
- " try {\n",
212
- " root._bokeh_onload_callbacks.forEach(function(callback) {\n",
213
- " if (callback != null)\n",
214
- " callback();\n",
215
- " });\n",
216
- " } finally {\n",
217
- " delete root._bokeh_onload_callbacks\n",
218
- " }\n",
219
- " console.debug(\"Bokeh: all callbacks have finished\");\n",
220
- " }\n",
221
- "\n",
222
- " function load_libs(css_urls, js_urls, callback) {\n",
223
- " if (css_urls == null) css_urls = [];\n",
224
- " if (js_urls == null) js_urls = [];\n",
225
- "\n",
226
- " root._bokeh_onload_callbacks.push(callback);\n",
227
- " if (root._bokeh_is_loading > 0) {\n",
228
- " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
229
- " return null;\n",
230
- " }\n",
231
- " if (js_urls == null || js_urls.length === 0) {\n",
232
- " run_callbacks();\n",
233
- " return null;\n",
234
- " }\n",
235
- " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
236
- " root._bokeh_is_loading = css_urls.length + js_urls.length;\n",
237
- "\n",
238
- " function on_load() {\n",
239
- " root._bokeh_is_loading--;\n",
240
- " if (root._bokeh_is_loading === 0) {\n",
241
- " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n",
242
- " run_callbacks()\n",
243
- " }\n",
244
- " }\n",
245
- "\n",
246
- " function on_error(url) {\n",
247
- " console.error(\"failed to load \" + url);\n",
248
- " }\n",
249
- "\n",
250
- " for (let i = 0; i < css_urls.length; i++) {\n",
251
- " const url = css_urls[i];\n",
252
- " const element = document.createElement(\"link\");\n",
253
- " element.onload = on_load;\n",
254
- " element.onerror = on_error.bind(null, url);\n",
255
- " element.rel = \"stylesheet\";\n",
256
- " element.type = \"text/css\";\n",
257
- " element.href = url;\n",
258
- " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n",
259
- " document.body.appendChild(element);\n",
260
- " }\n",
261
- "\n",
262
- " for (let i = 0; i < js_urls.length; i++) {\n",
263
- " const url = js_urls[i];\n",
264
- " const element = document.createElement('script');\n",
265
- " element.onload = on_load;\n",
266
- " element.onerror = on_error.bind(null, url);\n",
267
- " element.async = false;\n",
268
- " element.src = url;\n",
269
- " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
270
- " document.head.appendChild(element);\n",
271
- " }\n",
272
- " };\n",
273
- "\n",
274
- " function inject_raw_css(css) {\n",
275
- " const element = document.createElement(\"style\");\n",
276
- " element.appendChild(document.createTextNode(css));\n",
277
- " document.body.appendChild(element);\n",
278
- " }\n",
279
- "\n",
280
- " 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\"];\n",
281
- " const css_urls = [];\n",
282
- "\n",
283
- " const inline_js = [ function(Bokeh) {\n",
284
- " Bokeh.set_log_level(\"info\");\n",
285
- " },\n",
286
- "function(Bokeh) {\n",
287
- " }\n",
288
- " ];\n",
289
- "\n",
290
- " function run_inline_js() {\n",
291
- " if (root.Bokeh !== undefined || force === true) {\n",
292
- " for (let i = 0; i < inline_js.length; i++) {\n",
293
- " inline_js[i].call(root, root.Bokeh);\n",
294
- " }\n",
295
- "if (force === true) {\n",
296
- " display_loaded();\n",
297
- " }} else if (Date.now() < root._bokeh_timeout) {\n",
298
- " setTimeout(run_inline_js, 100);\n",
299
- " } else if (!root._bokeh_failed_load) {\n",
300
- " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n",
301
- " root._bokeh_failed_load = true;\n",
302
- " } else if (force !== true) {\n",
303
- " const cell = $(document.getElementById(\"1002\")).parents('.cell').data().cell;\n",
304
- " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n",
305
- " }\n",
306
- " }\n",
307
- "\n",
308
- " if (root._bokeh_is_loading === 0) {\n",
309
- " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n",
310
- " run_inline_js();\n",
311
- " } else {\n",
312
- " load_libs(css_urls, js_urls, function() {\n",
313
- " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n",
314
- " run_inline_js();\n",
315
- " });\n",
316
- " }\n",
317
- "}(window));"
318
- ],
319
- "application/vnd.bokehjs_load.v0+json": "(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n\n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"<div style='background-color: #fdd'>\\n\"+\n \"<p>\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"</p>\\n\"+\n \"<ul>\\n\"+\n \"<li>re-rerun `output_notebook()` to attempt to load from CDN again, or</li>\\n\"+\n \"<li>use INLINE resources instead, as so:</li>\\n\"+\n \"</ul>\\n\"+\n \"<code>\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"</code>\\n\"+\n \"</div>\"}};\n\n function display_loaded() {\n const el = document.getElementById(\"1002\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n 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\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\nif (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"1002\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));"
320
- },
321
- "metadata": {},
322
- "output_type": "display_data"
323
- }
324
- ],
325
- "source": [
326
- "# nbi:hide_out\n",
327
- "# Make all outputs INLINE for default (why a hell this is needed !!!)\n",
328
- "output_notebook()"
329
- ]
330
- },
331
- {
332
- "cell_type": "markdown",
333
- "metadata": {},
334
- "source": [
335
- "### Basic Bar Charts\n",
336
- "\n",
337
- "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.\n",
338
- "The example below shows a simple bar chart created using the `vbar` method for drawing vertical bars. (There is a corresponding `hbar` for horizontal bars.) We also set a few plot properties to make the chart look nicer, see chapter **Styles and Themes** for information about visual properties."
339
- ]
340
- },
341
- {
342
- "cell_type": "code",
343
- "execution_count": 3,
344
- "metadata": {},
345
- "outputs": [
346
- {
347
- "data": {
348
- "text/html": [
349
- "\n",
350
- " <div class=\"bk-root\" id=\"d3c87e97-4e3d-4b40-b001-7eaff8258cfb\" data-root-id=\"1003\"></div>\n"
351
- ]
352
- },
353
- "metadata": {},
354
- "output_type": "display_data"
355
- },
356
- {
357
- "data": {
358
- "application/javascript": [
359
- "(function(root) {\n",
360
- " function embed_document(root) {\n",
361
- " 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\"}};\n",
362
- " const render_items = [{\"docid\":\"a6933a3a-239f-45c1-b48e-7136ba3ba9c2\",\"root_ids\":[\"1003\"],\"roots\":{\"1003\":\"d3c87e97-4e3d-4b40-b001-7eaff8258cfb\"}}];\n",
363
- " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
364
- " }\n",
365
- " if (root.Bokeh !== undefined) {\n",
366
- " embed_document(root);\n",
367
- " } else {\n",
368
- " let attempts = 0;\n",
369
- " const timer = setInterval(function(root) {\n",
370
- " if (root.Bokeh !== undefined) {\n",
371
- " clearInterval(timer);\n",
372
- " embed_document(root);\n",
373
- " } else {\n",
374
- " attempts++;\n",
375
- " if (attempts > 100) {\n",
376
- " clearInterval(timer);\n",
377
- " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
378
- " }\n",
379
- " }\n",
380
- " }, 10, root)\n",
381
- " }\n",
382
- "})(window);"
383
- ],
384
- "application/vnd.bokehjs_exec.v0+json": ""
385
- },
386
- "metadata": {
387
- "application/vnd.bokehjs_exec.v0+json": {
388
- "id": "1003"
389
- }
390
- },
391
- "output_type": "display_data"
392
- }
393
- ],
394
- "source": [
395
- "# Here is a list of categorical values (or factors)\n",
396
- "fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']\n",
397
- "\n",
398
- "# Set the x_range to the list of categories above\n",
399
- "p = figure(\n",
400
- " plot_height=400,\n",
401
- " plot_width=800, \n",
402
- " x_range=fruits,\n",
403
- " title=\"Fruit Counts\"\n",
404
- ")\n",
405
- "\n",
406
- "# Categorical values can also be used as coordinates\n",
407
- "p.vbar(\n",
408
- " x=fruits,\n",
409
- " top=[5, 3, 4, 2, 4, 6],\n",
410
- " width=0.9\n",
411
- ")\n",
412
- "\n",
413
- "# Set some properties to make the plot look better\n",
414
- "p.xgrid.grid_line_color = None\n",
415
- "p.y_range.start = 0\n",
416
- "\n",
417
- "# show the results\n",
418
- "show(p)"
419
- ]
420
- },
421
- {
422
- "cell_type": "markdown",
423
- "metadata": {},
424
- "source": [
425
- "When we want to create a plot with a categorical range, we pass the ordered list of categorical values to `figure`, e.g. `x_range=['a', 'b', 'c']`. In the plot above, we passed the list of fruits as `x_range`, and we can see those refelected as the x-axis.\n",
426
- "\n",
427
- "The `vbar` glyph method takes an `x` location for the center of the bar, a `top` and `bottom` (which defaults to 0), and a `width`. When we are using a categorical range as we are here, each category implicitly has width of 1, so setting `width=0.9` as we have done here makes the bars shrink away from each other. (Another option would be to add some padding to the range.)"
428
- ]
429
- },
430
- {
431
- "cell_type": "markdown",
432
- "metadata": {},
433
- "source": [
434
- "Since `vbar` is a glyph method, we can use it with a `ColumnDataSource` just as we would with any other glyph. In the example below, we put the data (including color data) in a `ColumnDataSource` and use that to drive our plot. We also add a legend, see chapter **Adding Annotations.ipynb** for more information about legends and other annotations."
435
- ]
436
- },
437
- {
438
- "cell_type": "code",
439
- "execution_count": 4,
440
- "metadata": {},
441
- "outputs": [
442
- {
443
- "data": {
444
- "text/html": [
445
- "\n",
446
- " <div class=\"bk-root\" id=\"7fe397d8-e3ba-4b54-bba4-e62daa6cfe13\" data-root-id=\"1102\"></div>\n"
447
- ]
448
- },
449
- "metadata": {},
450
- "output_type": "display_data"
451
- },
452
- {
453
- "data": {
454
- "application/javascript": [
455
- "(function(root) {\n",
456
- " function embed_document(root) {\n",
457
- " 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\"}};\n",
458
- " const render_items = [{\"docid\":\"f005f898-87cb-4474-a7e9-e26d0bf95d0b\",\"root_ids\":[\"1102\"],\"roots\":{\"1102\":\"7fe397d8-e3ba-4b54-bba4-e62daa6cfe13\"}}];\n",
459
- " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
460
- " }\n",
461
- " if (root.Bokeh !== undefined) {\n",
462
- " embed_document(root);\n",
463
- " } else {\n",
464
- " let attempts = 0;\n",
465
- " const timer = setInterval(function(root) {\n",
466
- " if (root.Bokeh !== undefined) {\n",
467
- " clearInterval(timer);\n",
468
- " embed_document(root);\n",
469
- " } else {\n",
470
- " attempts++;\n",
471
- " if (attempts > 100) {\n",
472
- " clearInterval(timer);\n",
473
- " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
474
- " }\n",
475
- " }\n",
476
- " }, 10, root)\n",
477
- " }\n",
478
- "})(window);"
479
- ],
480
- "application/vnd.bokehjs_exec.v0+json": ""
481
- },
482
- "metadata": {
483
- "application/vnd.bokehjs_exec.v0+json": {
484
- "id": "1102"
485
- }
486
- },
487
- "output_type": "display_data"
488
- }
489
- ],
490
- "source": [
491
- "from bokeh.models import ColumnDataSource\n",
492
- "from bokeh.palettes import Spectral6\n",
493
- "\n",
494
- "fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']\n",
495
- "counts = [5, 3, 4, 2, 4, 6]\n",
496
- "\n",
497
- "source = ColumnDataSource(\n",
498
- " data=dict(\n",
499
- " fruits=fruits,\n",
500
- " counts=counts,\n",
501
- " color=Spectral6\n",
502
- " )\n",
503
- ")\n",
504
- "\n",
505
- "p = figure(\n",
506
- " plot_height=400,\n",
507
- " plot_width=800, \n",
508
- " x_range=fruits,\n",
509
- " y_range=(0, 9),\n",
510
- " title=\"Fruit Counts\"\n",
511
- ")\n",
512
- "p.vbar(\n",
513
- " x='fruits',\n",
514
- " top='counts',\n",
515
- " width=0.9,\n",
516
- " color='color',\n",
517
- " legend_field=\"fruits\",\n",
518
- " source=source\n",
519
- ")\n",
520
- "\n",
521
- "p.xgrid.grid_line_color = None\n",
522
- "p.legend.orientation = \"horizontal\"\n",
523
- "p.legend.location = \"top_center\"\n",
524
- "\n",
525
- "# show the results\n",
526
- "show(p)"
527
- ]
528
- },
529
- {
530
- "cell_type": "markdown",
531
- "metadata": {},
532
- "source": [
533
- "### Stacked Bars\n",
534
- "\n",
535
- "It's often desirable to stack bars together. Bokeh makes this straightforward using the `vbar_stack` and `hbar_stack` 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. \n",
536
- "\n",
537
- "In the example below, we see simulated data for fruit exports (positive values) and imports (negative values) stacked using two calls to `hbar_stack`. The values in the columns for each year are ordered according to the `fruits`, i.e. this is not a \"tidy\" data format."
538
- ]
539
- },
540
- {
541
- "cell_type": "code",
542
- "execution_count": 5,
543
- "metadata": {},
544
- "outputs": [
545
- {
546
- "data": {
547
- "text/html": [
548
- "\n",
549
- " <div class=\"bk-root\" id=\"6c68f943-2315-4fdd-8976-d7ae6b9d8dbf\" data-root-id=\"1222\"></div>\n"
550
- ]
551
- },
552
- "metadata": {},
553
- "output_type": "display_data"
554
- },
555
- {
556
- "data": {
557
- "application/javascript": [
558
- "(function(root) {\n",
559
- " function embed_document(root) {\n",
560
- " 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\"}};\n",
561
- " const render_items = [{\"docid\":\"caa131b0-8413-4d08-a67f-f981e71d897d\",\"root_ids\":[\"1222\"],\"roots\":{\"1222\":\"6c68f943-2315-4fdd-8976-d7ae6b9d8dbf\"}}];\n",
562
- " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
563
- " }\n",
564
- " if (root.Bokeh !== undefined) {\n",
565
- " embed_document(root);\n",
566
- " } else {\n",
567
- " let attempts = 0;\n",
568
- " const timer = setInterval(function(root) {\n",
569
- " if (root.Bokeh !== undefined) {\n",
570
- " clearInterval(timer);\n",
571
- " embed_document(root);\n",
572
- " } else {\n",
573
- " attempts++;\n",
574
- " if (attempts > 100) {\n",
575
- " clearInterval(timer);\n",
576
- " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
577
- " }\n",
578
- " }\n",
579
- " }, 10, root)\n",
580
- " }\n",
581
- "})(window);"
582
- ],
583
- "application/vnd.bokehjs_exec.v0+json": ""
584
- },
585
- "metadata": {
586
- "application/vnd.bokehjs_exec.v0+json": {
587
- "id": "1222"
588
- }
589
- },
590
- "output_type": "display_data"
591
- }
592
- ],
593
- "source": [
594
- "from bokeh.palettes import GnBu3, OrRd3\n",
595
- "\n",
596
- "years = ['2015', '2016', '2017']\n",
597
- "exports = {'fruits' : fruits,\n",
598
- " '2015' : [2, 1, 4, 3, 2, 4],\n",
599
- " '2016' : [5, 3, 4, 2, 4, 6],\n",
600
- " '2017' : [3, 2, 4, 4, 5, 3]}\n",
601
- "imports = {'fruits' : fruits,\n",
602
- " '2015' : [-1, 0, -1, -3, -2, -1],\n",
603
- " '2016' : [-2, -1, -3, -1, -2, -2],\n",
604
- " '2017' : [-1, -2, -1, 0, -2, -2]}\n",
605
- "\n",
606
- "p = figure(\n",
607
- " plot_height=400,\n",
608
- " plot_width=800, \n",
609
- " y_range=fruits,\n",
610
- " x_range=(-16, 16),\n",
611
- " title=\"Fruit import/export, by year\"\n",
612
- ")\n",
613
- "\n",
614
- "p.hbar_stack(\n",
615
- " years,\n",
616
- " y='fruits',\n",
617
- " height=0.9,\n",
618
- " color=GnBu3, \n",
619
- " legend_label=[\"%s exports\" % x for x in years],\n",
620
- " source=ColumnDataSource(exports)\n",
621
- ")\n",
622
- "\n",
623
- "p.hbar_stack(\n",
624
- " years,\n",
625
- " y='fruits',\n",
626
- " height=0.9,\n",
627
- " color=OrRd3,\n",
628
- " legend_label=[\"%s imports\" % x for x in years],\n",
629
- " source=ColumnDataSource(imports)\n",
630
- ")\n",
631
- "\n",
632
- "p.y_range.range_padding = 0.1\n",
633
- "p.ygrid.grid_line_color = None\n",
634
- "p.legend.location = \"center_left\"\n",
635
- "\n",
636
- "# show the results\n",
637
- "show(p)"
638
- ]
639
- },
640
- {
641
- "cell_type": "markdown",
642
- "metadata": {},
643
- "source": [
644
- "Notice we also added some padding *around* the categorical range (e.g. at both ends of the axis) by specifying\n",
645
- "\n",
646
- "```python\n",
647
- "p.y_range.range_padding = 0.1\n",
648
- "```"
649
- ]
650
- },
651
- {
652
- "cell_type": "markdown",
653
- "metadata": {},
654
- "source": [
655
- "### Grouped Bar Charts\n",
656
- "\n",
657
- "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:\n",
658
- "\n",
659
- "```python\n",
660
- " x = [ (\"Apples\", \"2015\"), (\"Apples\", \"2016\"), (\"Apples\", \"2017\"), (\"Pears\", \"2015), ... ]\n",
661
- "```\n",
662
- "\n",
663
- "Values in other columns correspond to each item in `x`, 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 `FactorRange` to `figure`. In the example below, this is seen as\n",
664
- "\n",
665
- "```python\n",
666
- " p = figure(x_range=FactorRange(*x), ....)\n",
667
- "``` "
668
- ]
669
- },
670
- {
671
- "cell_type": "code",
672
- "execution_count": 6,
673
- "metadata": {},
674
- "outputs": [
675
- {
676
- "data": {
677
- "text/html": [
678
- "\n",
679
- " <div class=\"bk-root\" id=\"9ce3b536-299f-4034-a659-d4bf83afc407\" data-root-id=\"1471\"></div>\n"
680
- ]
681
- },
682
- "metadata": {},
683
- "output_type": "display_data"
684
- },
685
- {
686
- "data": {
687
- "application/javascript": [
688
- "(function(root) {\n",
689
- " function embed_document(root) {\n",
690
- " 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\"}};\n",
691
- " const render_items = [{\"docid\":\"3a7f931e-14db-4860-8918-446cbecee634\",\"root_ids\":[\"1471\"],\"roots\":{\"1471\":\"9ce3b536-299f-4034-a659-d4bf83afc407\"}}];\n",
692
- " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
693
- " }\n",
694
- " if (root.Bokeh !== undefined) {\n",
695
- " embed_document(root);\n",
696
- " } else {\n",
697
- " let attempts = 0;\n",
698
- " const timer = setInterval(function(root) {\n",
699
- " if (root.Bokeh !== undefined) {\n",
700
- " clearInterval(timer);\n",
701
- " embed_document(root);\n",
702
- " } else {\n",
703
- " attempts++;\n",
704
- " if (attempts > 100) {\n",
705
- " clearInterval(timer);\n",
706
- " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
707
- " }\n",
708
- " }\n",
709
- " }, 10, root)\n",
710
- " }\n",
711
- "})(window);"
712
- ],
713
- "application/vnd.bokehjs_exec.v0+json": ""
714
- },
715
- "metadata": {
716
- "application/vnd.bokehjs_exec.v0+json": {
717
- "id": "1471"
718
- }
719
- },
720
- "output_type": "display_data"
721
- }
722
- ],
723
- "source": [
724
- "from bokeh.models import FactorRange\n",
725
- "\n",
726
- "fruits = ['Apples', 'Pears', 'Nectarines', 'Plums', 'Grapes', 'Strawberries']\n",
727
- "years = ['2015', '2016', '2017']\n",
728
- "data = {'fruits' : fruits,\n",
729
- " '2015' : [2, 1, 4, 3, 2, 4],\n",
730
- " '2016' : [5, 3, 3, 2, 4, 6],\n",
731
- " '2017' : [3, 2, 4, 4, 5, 3]}\n",
732
- "\n",
733
- "# this creates [ (\"Apples\", \"2015\"), (\"Apples\", \"2016\"), (\"Apples\", \"2017\"), (\"Pears\", \"2015), ... ]\n",
734
- "x = [ (fruit, year) for fruit in fruits for year in years ]\n",
735
- "\n",
736
- "# like an hstack\n",
737
- "counts = sum(\n",
738
- " zip(data['2015'],\n",
739
- " data['2016'],\n",
740
- " data['2017']),\n",
741
- " ()\n",
742
- ")\n",
743
- "\n",
744
- "source = ColumnDataSource(\n",
745
- " data=dict(\n",
746
- " x=x,\n",
747
- " counts=counts\n",
748
- " )\n",
749
- ")\n",
750
- "\n",
751
- "p = figure(\n",
752
- " plot_height=400,\n",
753
- " plot_width=800, \n",
754
- " x_range=FactorRange(*x),\n",
755
- " title=\"Fruit Counts by Year\"\n",
756
- ")\n",
757
- "\n",
758
- "p.vbar(\n",
759
- " x='x',\n",
760
- " top='counts',\n",
761
- " width=0.9,\n",
762
- " source=source\n",
763
- ")\n",
764
- "\n",
765
- "p.y_range.start = 0\n",
766
- "p.x_range.range_padding = 0.1\n",
767
- "p.xaxis.major_label_orientation = 1\n",
768
- "p.xgrid.grid_line_color = None\n",
769
- "\n",
770
- "# show the results\n",
771
- "show(p)"
772
- ]
773
- },
774
- {
775
- "cell_type": "markdown",
776
- "metadata": {},
777
- "source": [
778
- "Another way we can set the color of the bars is to use a transform. We first saw some transforms in previous chapter **Data Sources and Transformations**. Here we use a new one `factor_cmap` that accepts a the name of a column to use for colormapping, as well as the palette and factors that define the color mapping. \n",
779
- "\n",
780
- "Additionally we can configure it to map just the sub-factors if desired. For instance in this case we don't want shade each `(fruit, year)` pair differently. Instead, we want to only shade based on the `year`. So we pass `start=1` and `end=2` to specify the slice range of each factor to use when colormapping. Then we pass the result as the `fill_color` value:\n",
781
- "\n",
782
- "```python\n",
783
- " fill_color=factor_cmap('x', palette=['firebrick', 'olive', 'navy'], factors=years, start=1, end=2))\n",
784
- "```\n",
785
- "\n",
786
- "to have the colors be applied automatically based on the underlying data. "
787
- ]
788
- },
789
- {
790
- "cell_type": "code",
791
- "execution_count": 7,
792
- "metadata": {},
793
- "outputs": [
794
- {
795
- "data": {
796
- "text/html": [
797
- "\n",
798
- " <div class=\"bk-root\" id=\"62605c03-2b83-49e3-9212-afbb55ea42db\" data-root-id=\"1601\"></div>\n"
799
- ]
800
- },
801
- "metadata": {},
802
- "output_type": "display_data"
803
- },
804
- {
805
- "data": {
806
- "application/javascript": [
807
- "(function(root) {\n",
808
- " function embed_document(root) {\n",
809
- " 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\"}};\n",
810
- " const render_items = [{\"docid\":\"bb6614eb-faac-4d6d-ab26-1f8a8e41eb87\",\"root_ids\":[\"1601\"],\"roots\":{\"1601\":\"62605c03-2b83-49e3-9212-afbb55ea42db\"}}];\n",
811
- " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
812
- " }\n",
813
- " if (root.Bokeh !== undefined) {\n",
814
- " embed_document(root);\n",
815
- " } else {\n",
816
- " let attempts = 0;\n",
817
- " const timer = setInterval(function(root) {\n",
818
- " if (root.Bokeh !== undefined) {\n",
819
- " clearInterval(timer);\n",
820
- " embed_document(root);\n",
821
- " } else {\n",
822
- " attempts++;\n",
823
- " if (attempts > 100) {\n",
824
- " clearInterval(timer);\n",
825
- " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
826
- " }\n",
827
- " }\n",
828
- " }, 10, root)\n",
829
- " }\n",
830
- "})(window);"
831
- ],
832
- "application/vnd.bokehjs_exec.v0+json": ""
833
- },
834
- "metadata": {
835
- "application/vnd.bokehjs_exec.v0+json": {
836
- "id": "1601"
837
- }
838
- },
839
- "output_type": "display_data"
840
- }
841
- ],
842
- "source": [
843
- "from bokeh.transform import factor_cmap\n",
844
- "\n",
845
- "p = figure(\n",
846
- " plot_height=400,\n",
847
- " plot_width=800, \n",
848
- " x_range=FactorRange(*x),\n",
849
- " title=\"Fruit Counts by Year\"\n",
850
- ")\n",
851
- "\n",
852
- "p.vbar(\n",
853
- " x='x',\n",
854
- " top='counts',\n",
855
- " width=0.9,\n",
856
- " line_color=\"white\",\n",
857
- " # use the palette to colormap based on the the x[1:2] values\n",
858
- " fill_color=factor_cmap(\n",
859
- " 'x',\n",
860
- " palette=['firebrick', 'olive', 'navy'],\n",
861
- " factors=years,\n",
862
- " start=1,\n",
863
- " end=2\n",
864
- " ),\n",
865
- " source=source\n",
866
- ")\n",
867
- "\n",
868
- "p.y_range.start = 0\n",
869
- "p.x_range.range_padding = 0.1\n",
870
- "p.xaxis.major_label_orientation = 1\n",
871
- "p.xgrid.grid_line_color = None\n",
872
- "\n",
873
- "# show the results\n",
874
- "show(p)"
875
- ]
876
- },
877
- {
878
- "cell_type": "markdown",
879
- "metadata": {},
880
- "source": [
881
- "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 [User's Guide](https://bokeh.pydata.org/en/dev/docs/user_guide/categorical.html#visual-dodge). "
882
- ]
883
- },
884
- {
885
- "cell_type": "markdown",
886
- "metadata": {},
887
- "source": [
888
- "### Mixing Categorical Levels\n",
889
- "\n",
890
- "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:\n",
891
- "\n",
892
- "```python\n",
893
- " factors = [(\"Q1\", \"jan\"), (\"Q1\", \"feb\"), (\"Q1\", \"mar\"), ....]\n",
894
- "```\n",
895
- "\n",
896
- "The plot also overlays a line representing average quarterly values, and this is accomplished by using only the \"quarter\" part of each nexted category:\n",
897
- "\n",
898
- "```python\n",
899
- " p.line(x=[\"Q1\", \"Q2\", \"Q3\", \"Q4\"], y=....)\n",
900
- "``` "
901
- ]
902
- },
903
- {
904
- "cell_type": "code",
905
- "execution_count": 8,
906
- "metadata": {},
907
- "outputs": [
908
- {
909
- "data": {
910
- "text/html": [
911
- "\n",
912
- " <div class=\"bk-root\" id=\"f11c21a5-5bd4-40f6-9ed2-eb47a64cd09d\" data-root-id=\"1742\"></div>\n"
913
- ]
914
- },
915
- "metadata": {},
916
- "output_type": "display_data"
917
- },
918
- {
919
- "data": {
920
- "application/javascript": [
921
- "(function(root) {\n",
922
- " function embed_document(root) {\n",
923
- " 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\"}};\n",
924
- " const render_items = [{\"docid\":\"68c3d26b-74fe-45bb-81b0-a78dbf40dd1c\",\"root_ids\":[\"1742\"],\"roots\":{\"1742\":\"f11c21a5-5bd4-40f6-9ed2-eb47a64cd09d\"}}];\n",
925
- " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
926
- " }\n",
927
- " if (root.Bokeh !== undefined) {\n",
928
- " embed_document(root);\n",
929
- " } else {\n",
930
- " let attempts = 0;\n",
931
- " const timer = setInterval(function(root) {\n",
932
- " if (root.Bokeh !== undefined) {\n",
933
- " clearInterval(timer);\n",
934
- " embed_document(root);\n",
935
- " } else {\n",
936
- " attempts++;\n",
937
- " if (attempts > 100) {\n",
938
- " clearInterval(timer);\n",
939
- " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
940
- " }\n",
941
- " }\n",
942
- " }, 10, root)\n",
943
- " }\n",
944
- "})(window);"
945
- ],
946
- "application/vnd.bokehjs_exec.v0+json": ""
947
- },
948
- "metadata": {
949
- "application/vnd.bokehjs_exec.v0+json": {
950
- "id": "1742"
951
- }
952
- },
953
- "output_type": "display_data"
954
- }
955
- ],
956
- "source": [
957
- "factors = [(\"Q1\", \"jan\"), (\"Q1\", \"feb\"), (\"Q1\", \"mar\"),\n",
958
- " (\"Q2\", \"apr\"), (\"Q2\", \"may\"), (\"Q2\", \"jun\"),\n",
959
- " (\"Q3\", \"jul\"), (\"Q3\", \"aug\"), (\"Q3\", \"sep\"),\n",
960
- " (\"Q4\", \"oct\"), (\"Q4\", \"nov\"), (\"Q4\", \"dec\")]\n",
961
- "\n",
962
- "p = figure(\n",
963
- " plot_height=400,\n",
964
- " plot_width=800, \n",
965
- " x_range=FactorRange(*factors)\n",
966
- ")\n",
967
- "\n",
968
- "x = [ 10, 12, 16, 9, 10, 8, 12, 13, 14, 14, 12, 16 ]\n",
969
- "p.vbar(\n",
970
- " x=factors,\n",
971
- " top=x,\n",
972
- " width=0.9,\n",
973
- " alpha=0.5\n",
974
- ")\n",
975
- "\n",
976
- "qs, aves = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"], [12, 9, 13, 14]\n",
977
- "p.line(\n",
978
- " x=qs,\n",
979
- " y=aves,\n",
980
- " color=\"red\",\n",
981
- " line_width=3\n",
982
- ")\n",
983
- "p.circle(\n",
984
- " x=qs,\n",
985
- " y=aves,\n",
986
- " line_color=\"red\",\n",
987
- " fill_color=\"white\",\n",
988
- " size=10\n",
989
- ")\n",
990
- "\n",
991
- "p.y_range.start = 0\n",
992
- "p.x_range.range_padding = 0.1\n",
993
- "p.xgrid.grid_line_color = None\n",
994
- "\n",
995
- "# show the results\n",
996
- "show(p)"
997
- ]
998
- },
999
- {
1000
- "cell_type": "markdown",
1001
- "metadata": {},
1002
- "source": [
1003
- "### Using Pandas `GroupBy`\n",
1004
- "\n",
1005
- "We may want to make charts based on the results of \"group by\" operations. Bokeh can utilize Pandas `GroupBy` objects directly to make this simpler. Let's take a look at how Bokeh deals with `GroupBy` objects by examining the \"cars\" data set."
1006
- ]
1007
- },
1008
- {
1009
- "cell_type": "code",
1010
- "execution_count": 9,
1011
- "metadata": {},
1012
- "outputs": [
1013
- {
1014
- "data": {
1015
- "text/html": [
1016
- "<div>\n",
1017
- "<style scoped>\n",
1018
- " .dataframe tbody tr th:only-of-type {\n",
1019
- " vertical-align: middle;\n",
1020
- " }\n",
1021
- "\n",
1022
- " .dataframe tbody tr th {\n",
1023
- " vertical-align: top;\n",
1024
- " }\n",
1025
- "\n",
1026
- " .dataframe thead th {\n",
1027
- " text-align: right;\n",
1028
- " }\n",
1029
- "</style>\n",
1030
- "<table border=\"1\" class=\"dataframe\">\n",
1031
- " <thead>\n",
1032
- " <tr style=\"text-align: right;\">\n",
1033
- " <th></th>\n",
1034
- " <th>mpg</th>\n",
1035
- " <th>cyl</th>\n",
1036
- " <th>displ</th>\n",
1037
- " <th>hp</th>\n",
1038
- " <th>weight</th>\n",
1039
- " <th>accel</th>\n",
1040
- " <th>yr</th>\n",
1041
- " <th>origin</th>\n",
1042
- " <th>name</th>\n",
1043
- " <th>mfr</th>\n",
1044
- " </tr>\n",
1045
- " </thead>\n",
1046
- " <tbody>\n",
1047
- " <tr>\n",
1048
- " <th>0</th>\n",
1049
- " <td>18.0</td>\n",
1050
- " <td>8</td>\n",
1051
- " <td>307.0</td>\n",
1052
- " <td>130</td>\n",
1053
- " <td>3504</td>\n",
1054
- " <td>12.0</td>\n",
1055
- " <td>70</td>\n",
1056
- " <td>North America</td>\n",
1057
- " <td>chevrolet chevelle malibu</td>\n",
1058
- " <td>chevrolet</td>\n",
1059
- " </tr>\n",
1060
- " <tr>\n",
1061
- " <th>1</th>\n",
1062
- " <td>15.0</td>\n",
1063
- " <td>8</td>\n",
1064
- " <td>350.0</td>\n",
1065
- " <td>165</td>\n",
1066
- " <td>3693</td>\n",
1067
- " <td>11.5</td>\n",
1068
- " <td>70</td>\n",
1069
- " <td>North America</td>\n",
1070
- " <td>buick skylark 320</td>\n",
1071
- " <td>buick</td>\n",
1072
- " </tr>\n",
1073
- " <tr>\n",
1074
- " <th>2</th>\n",
1075
- " <td>18.0</td>\n",
1076
- " <td>8</td>\n",
1077
- " <td>318.0</td>\n",
1078
- " <td>150</td>\n",
1079
- " <td>3436</td>\n",
1080
- " <td>11.0</td>\n",
1081
- " <td>70</td>\n",
1082
- " <td>North America</td>\n",
1083
- " <td>plymouth satellite</td>\n",
1084
- " <td>plymouth</td>\n",
1085
- " </tr>\n",
1086
- " <tr>\n",
1087
- " <th>3</th>\n",
1088
- " <td>16.0</td>\n",
1089
- " <td>8</td>\n",
1090
- " <td>304.0</td>\n",
1091
- " <td>150</td>\n",
1092
- " <td>3433</td>\n",
1093
- " <td>12.0</td>\n",
1094
- " <td>70</td>\n",
1095
- " <td>North America</td>\n",
1096
- " <td>amc rebel sst</td>\n",
1097
- " <td>amc</td>\n",
1098
- " </tr>\n",
1099
- " <tr>\n",
1100
- " <th>4</th>\n",
1101
- " <td>17.0</td>\n",
1102
- " <td>8</td>\n",
1103
- " <td>302.0</td>\n",
1104
- " <td>140</td>\n",
1105
- " <td>3449</td>\n",
1106
- " <td>10.5</td>\n",
1107
- " <td>70</td>\n",
1108
- " <td>North America</td>\n",
1109
- " <td>ford torino</td>\n",
1110
- " <td>ford</td>\n",
1111
- " </tr>\n",
1112
- " </tbody>\n",
1113
- "</table>\n",
1114
- "</div>"
1115
- ],
1116
- "text/plain": [
1117
- " mpg cyl displ hp weight accel yr origin \\\n",
1118
- "0 18.0 8 307.0 130 3504 12.0 70 North America \n",
1119
- "1 15.0 8 350.0 165 3693 11.5 70 North America \n",
1120
- "2 18.0 8 318.0 150 3436 11.0 70 North America \n",
1121
- "3 16.0 8 304.0 150 3433 12.0 70 North America \n",
1122
- "4 17.0 8 302.0 140 3449 10.5 70 North America \n",
1123
- "\n",
1124
- " name mfr \n",
1125
- "0 chevrolet chevelle malibu chevrolet \n",
1126
- "1 buick skylark 320 buick \n",
1127
- "2 plymouth satellite plymouth \n",
1128
- "3 amc rebel sst amc \n",
1129
- "4 ford torino ford "
1130
- ]
1131
- },
1132
- "execution_count": 9,
1133
- "metadata": {},
1134
- "output_type": "execute_result"
1135
- }
1136
- ],
1137
- "source": [
1138
- "from bokeh.sampledata.autompg import autompg_clean as df\n",
1139
- "\n",
1140
- "df.cyl = df.cyl.astype(str)\n",
1141
- "df.head()"
1142
- ]
1143
- },
1144
- {
1145
- "cell_type": "markdown",
1146
- "metadata": {},
1147
- "source": [
1148
- "Suppose we would like to display some values grouped according to `\"cyl\"`. If we create `df.groupby(('cyl'))` then call `group.describe()` we can see that Pandas automatically computes various statistics for each group. "
1149
- ]
1150
- },
1151
- {
1152
- "cell_type": "code",
1153
- "execution_count": 10,
1154
- "metadata": {},
1155
- "outputs": [
1156
- {
1157
- "data": {
1158
- "text/html": [
1159
- "<div>\n",
1160
- "<style scoped>\n",
1161
- " .dataframe tbody tr th:only-of-type {\n",
1162
- " vertical-align: middle;\n",
1163
- " }\n",
1164
- "\n",
1165
- " .dataframe tbody tr th {\n",
1166
- " vertical-align: top;\n",
1167
- " }\n",
1168
- "\n",
1169
- " .dataframe thead tr th {\n",
1170
- " text-align: left;\n",
1171
- " }\n",
1172
- "\n",
1173
- " .dataframe thead tr:last-of-type th {\n",
1174
- " text-align: right;\n",
1175
- " }\n",
1176
- "</style>\n",
1177
- "<table border=\"1\" class=\"dataframe\">\n",
1178
- " <thead>\n",
1179
- " <tr>\n",
1180
- " <th></th>\n",
1181
- " <th colspan=\"8\" halign=\"left\">mpg</th>\n",
1182
- " <th colspan=\"2\" halign=\"left\">displ</th>\n",
1183
- " <th>...</th>\n",
1184
- " <th colspan=\"2\" halign=\"left\">accel</th>\n",
1185
- " <th colspan=\"8\" halign=\"left\">yr</th>\n",
1186
- " </tr>\n",
1187
- " <tr>\n",
1188
- " <th></th>\n",
1189
- " <th>count</th>\n",
1190
- " <th>mean</th>\n",
1191
- " <th>std</th>\n",
1192
- " <th>min</th>\n",
1193
- " <th>25%</th>\n",
1194
- " <th>50%</th>\n",
1195
- " <th>75%</th>\n",
1196
- " <th>max</th>\n",
1197
- " <th>count</th>\n",
1198
- " <th>mean</th>\n",
1199
- " <th>...</th>\n",
1200
- " <th>75%</th>\n",
1201
- " <th>max</th>\n",
1202
- " <th>count</th>\n",
1203
- " <th>mean</th>\n",
1204
- " <th>std</th>\n",
1205
- " <th>min</th>\n",
1206
- " <th>25%</th>\n",
1207
- " <th>50%</th>\n",
1208
- " <th>75%</th>\n",
1209
- " <th>max</th>\n",
1210
- " </tr>\n",
1211
- " <tr>\n",
1212
- " <th>cyl</th>\n",
1213
- " <th></th>\n",
1214
- " <th></th>\n",
1215
- " <th></th>\n",
1216
- " <th></th>\n",
1217
- " <th></th>\n",
1218
- " <th></th>\n",
1219
- " <th></th>\n",
1220
- " <th></th>\n",
1221
- " <th></th>\n",
1222
- " <th></th>\n",
1223
- " <th></th>\n",
1224
- " <th></th>\n",
1225
- " <th></th>\n",
1226
- " <th></th>\n",
1227
- " <th></th>\n",
1228
- " <th></th>\n",
1229
- " <th></th>\n",
1230
- " <th></th>\n",
1231
- " <th></th>\n",
1232
- " <th></th>\n",
1233
- " <th></th>\n",
1234
- " </tr>\n",
1235
- " </thead>\n",
1236
- " <tbody>\n",
1237
- " <tr>\n",
1238
- " <th>3</th>\n",
1239
- " <td>4.0</td>\n",
1240
- " <td>20.550000</td>\n",
1241
- " <td>2.564501</td>\n",
1242
- " <td>18.0</td>\n",
1243
- " <td>18.75</td>\n",
1244
- " <td>20.25</td>\n",
1245
- " <td>22.05</td>\n",
1246
- " <td>23.7</td>\n",
1247
- " <td>4.0</td>\n",
1248
- " <td>72.500000</td>\n",
1249
- " <td>...</td>\n",
1250
- " <td>13.5</td>\n",
1251
- " <td>13.5</td>\n",
1252
- " <td>4.0</td>\n",
1253
- " <td>75.500000</td>\n",
1254
- " <td>3.696846</td>\n",
1255
- " <td>72.0</td>\n",
1256
- " <td>72.75</td>\n",
1257
- " <td>75.0</td>\n",
1258
- " <td>77.75</td>\n",
1259
- " <td>80.0</td>\n",
1260
- " </tr>\n",
1261
- " <tr>\n",
1262
- " <th>4</th>\n",
1263
- " <td>199.0</td>\n",
1264
- " <td>29.283920</td>\n",
1265
- " <td>5.670546</td>\n",
1266
- " <td>18.0</td>\n",
1267
- " <td>25.00</td>\n",
1268
- " <td>28.40</td>\n",
1269
- " <td>32.95</td>\n",
1270
- " <td>46.6</td>\n",
1271
- " <td>199.0</td>\n",
1272
- " <td>109.670854</td>\n",
1273
- " <td>...</td>\n",
1274
- " <td>18.0</td>\n",
1275
- " <td>24.8</td>\n",
1276
- " <td>199.0</td>\n",
1277
- " <td>77.030151</td>\n",
1278
- " <td>3.737484</td>\n",
1279
- " <td>70.0</td>\n",
1280
- " <td>74.00</td>\n",
1281
- " <td>77.0</td>\n",
1282
- " <td>80.00</td>\n",
1283
- " <td>82.0</td>\n",
1284
- " </tr>\n",
1285
- " <tr>\n",
1286
- " <th>5</th>\n",
1287
- " <td>3.0</td>\n",
1288
- " <td>27.366667</td>\n",
1289
- " <td>8.228204</td>\n",
1290
- " <td>20.3</td>\n",
1291
- " <td>22.85</td>\n",
1292
- " <td>25.40</td>\n",
1293
- " <td>30.90</td>\n",
1294
- " <td>36.4</td>\n",
1295
- " <td>3.0</td>\n",
1296
- " <td>145.000000</td>\n",
1297
- " <td>...</td>\n",
1298
- " <td>20.0</td>\n",
1299
- " <td>20.1</td>\n",
1300
- " <td>3.0</td>\n",
1301
- " <td>79.000000</td>\n",
1302
- " <td>1.000000</td>\n",
1303
- " <td>78.0</td>\n",
1304
- " <td>78.50</td>\n",
1305
- " <td>79.0</td>\n",
1306
- " <td>79.50</td>\n",
1307
- " <td>80.0</td>\n",
1308
- " </tr>\n",
1309
- " <tr>\n",
1310
- " <th>6</th>\n",
1311
- " <td>83.0</td>\n",
1312
- " <td>19.973494</td>\n",
1313
- " <td>3.828809</td>\n",
1314
- " <td>15.0</td>\n",
1315
- " <td>18.00</td>\n",
1316
- " <td>19.00</td>\n",
1317
- " <td>21.00</td>\n",
1318
- " <td>38.0</td>\n",
1319
- " <td>83.0</td>\n",
1320
- " <td>218.361446</td>\n",
1321
- " <td>...</td>\n",
1322
- " <td>17.6</td>\n",
1323
- " <td>21.0</td>\n",
1324
- " <td>83.0</td>\n",
1325
- " <td>75.951807</td>\n",
1326
- " <td>3.264381</td>\n",
1327
- " <td>70.0</td>\n",
1328
- " <td>74.00</td>\n",
1329
- " <td>76.0</td>\n",
1330
- " <td>78.00</td>\n",
1331
- " <td>82.0</td>\n",
1332
- " </tr>\n",
1333
- " <tr>\n",
1334
- " <th>8</th>\n",
1335
- " <td>103.0</td>\n",
1336
- " <td>14.963107</td>\n",
1337
- " <td>2.836284</td>\n",
1338
- " <td>9.0</td>\n",
1339
- " <td>13.00</td>\n",
1340
- " <td>14.00</td>\n",
1341
- " <td>16.00</td>\n",
1342
- " <td>26.6</td>\n",
1343
- " <td>103.0</td>\n",
1344
- " <td>345.009709</td>\n",
1345
- " <td>...</td>\n",
1346
- " <td>14.0</td>\n",
1347
- " <td>22.2</td>\n",
1348
- " <td>103.0</td>\n",
1349
- " <td>73.902913</td>\n",
1350
- " <td>3.021214</td>\n",
1351
- " <td>70.0</td>\n",
1352
- " <td>72.00</td>\n",
1353
- " <td>73.0</td>\n",
1354
- " <td>76.00</td>\n",
1355
- " <td>81.0</td>\n",
1356
- " </tr>\n",
1357
- " </tbody>\n",
1358
- "</table>\n",
1359
- "<p>5 rows × 48 columns</p>\n",
1360
- "</div>"
1361
- ],
1362
- "text/plain": [
1363
- " mpg displ \\\n",
1364
- " count mean std min 25% 50% 75% max count \n",
1365
- "cyl \n",
1366
- "3 4.0 20.550000 2.564501 18.0 18.75 20.25 22.05 23.7 4.0 \n",
1367
- "4 199.0 29.283920 5.670546 18.0 25.00 28.40 32.95 46.6 199.0 \n",
1368
- "5 3.0 27.366667 8.228204 20.3 22.85 25.40 30.90 36.4 3.0 \n",
1369
- "6 83.0 19.973494 3.828809 15.0 18.00 19.00 21.00 38.0 83.0 \n",
1370
- "8 103.0 14.963107 2.836284 9.0 13.00 14.00 16.00 26.6 103.0 \n",
1371
- "\n",
1372
- " ... accel yr \\\n",
1373
- " mean ... 75% max count mean std min 25% \n",
1374
- "cyl ... \n",
1375
- "3 72.500000 ... 13.5 13.5 4.0 75.500000 3.696846 72.0 72.75 \n",
1376
- "4 109.670854 ... 18.0 24.8 199.0 77.030151 3.737484 70.0 74.00 \n",
1377
- "5 145.000000 ... 20.0 20.1 3.0 79.000000 1.000000 78.0 78.50 \n",
1378
- "6 218.361446 ... 17.6 21.0 83.0 75.951807 3.264381 70.0 74.00 \n",
1379
- "8 345.009709 ... 14.0 22.2 103.0 73.902913 3.021214 70.0 72.00 \n",
1380
- "\n",
1381
- " \n",
1382
- " 50% 75% max \n",
1383
- "cyl \n",
1384
- "3 75.0 77.75 80.0 \n",
1385
- "4 77.0 80.00 82.0 \n",
1386
- "5 79.0 79.50 80.0 \n",
1387
- "6 76.0 78.00 82.0 \n",
1388
- "8 73.0 76.00 81.0 \n",
1389
- "\n",
1390
- "[5 rows x 48 columns]"
1391
- ]
1392
- },
1393
- "execution_count": 10,
1394
- "metadata": {},
1395
- "output_type": "execute_result"
1396
- }
1397
- ],
1398
- "source": [
1399
- "group = df.groupby(('cyl'))\n",
1400
- "group.describe()"
1401
- ]
1402
- },
1403
- {
1404
- "cell_type": "markdown",
1405
- "metadata": {},
1406
- "source": [
1407
- "Bokeh allows us to create a `ColumnDataSource` directly from Pandas `GroupBy` objects, and when this happens, the data source is automatically filled with the summary values from `group.desribe()`. Observe the column names below, which correspond to the output above."
1408
- ]
1409
- },
1410
- {
1411
- "cell_type": "code",
1412
- "execution_count": 11,
1413
- "metadata": {},
1414
- "outputs": [
1415
- {
1416
- "data": {
1417
- "text/plain": [
1418
- "'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'"
1419
- ]
1420
- },
1421
- "execution_count": 11,
1422
- "metadata": {},
1423
- "output_type": "execute_result"
1424
- }
1425
- ],
1426
- "source": [
1427
- "source = ColumnDataSource(group)\n",
1428
- "\",\".join(source.column_names)"
1429
- ]
1430
- },
1431
- {
1432
- "cell_type": "markdown",
1433
- "metadata": {},
1434
- "source": [
1435
- "Knowing these column names, we can immediately create bar charts based on Pandas `GroupBy` objects. The example below plots the aveage MPG per cylinder, i.e. columns `\"mpg_mean\"` vs `\"cyl\"`"
1436
- ]
1437
- },
1438
- {
1439
- "cell_type": "code",
1440
- "execution_count": 12,
1441
- "metadata": {},
1442
- "outputs": [
1443
- {
1444
- "data": {
1445
- "text/html": [
1446
- "\n",
1447
- " <div class=\"bk-root\" id=\"f3dee939-12c9-4951-806c-cd27369930b6\" data-root-id=\"1933\"></div>\n"
1448
- ]
1449
- },
1450
- "metadata": {},
1451
- "output_type": "display_data"
1452
- },
1453
- {
1454
- "data": {
1455
- "application/javascript": [
1456
- "(function(root) {\n",
1457
- " function embed_document(root) {\n",
1458
- " 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\"}};\n",
1459
- " const render_items = [{\"docid\":\"0148fb35-1851-4a4f-bb64-9b3f4227179c\",\"root_ids\":[\"1933\"],\"roots\":{\"1933\":\"f3dee939-12c9-4951-806c-cd27369930b6\"}}];\n",
1460
- " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
1461
- " }\n",
1462
- " if (root.Bokeh !== undefined) {\n",
1463
- " embed_document(root);\n",
1464
- " } else {\n",
1465
- " let attempts = 0;\n",
1466
- " const timer = setInterval(function(root) {\n",
1467
- " if (root.Bokeh !== undefined) {\n",
1468
- " clearInterval(timer);\n",
1469
- " embed_document(root);\n",
1470
- " } else {\n",
1471
- " attempts++;\n",
1472
- " if (attempts > 100) {\n",
1473
- " clearInterval(timer);\n",
1474
- " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
1475
- " }\n",
1476
- " }\n",
1477
- " }, 10, root)\n",
1478
- " }\n",
1479
- "})(window);"
1480
- ],
1481
- "application/vnd.bokehjs_exec.v0+json": ""
1482
- },
1483
- "metadata": {
1484
- "application/vnd.bokehjs_exec.v0+json": {
1485
- "id": "1933"
1486
- }
1487
- },
1488
- "output_type": "display_data"
1489
- }
1490
- ],
1491
- "source": [
1492
- "from bokeh.palettes import Spectral5\n",
1493
- "\n",
1494
- "cyl_cmap = factor_cmap(\n",
1495
- " 'cyl',\n",
1496
- " palette=Spectral5,\n",
1497
- " factors=sorted(df.cyl.unique())\n",
1498
- ")\n",
1499
- "\n",
1500
- "# create a new plot using figure\n",
1501
- "p = figure(\n",
1502
- " plot_height=400,\n",
1503
- " plot_width=800, \n",
1504
- " x_range=group\n",
1505
- ")\n",
1506
- "p.vbar(\n",
1507
- " x='cyl',\n",
1508
- " top='mpg_mean',\n",
1509
- " width=1,\n",
1510
- " line_color=\"white\", \n",
1511
- " fill_color=cyl_cmap,\n",
1512
- " source=source\n",
1513
- ")\n",
1514
- "\n",
1515
- "p.xgrid.grid_line_color = None\n",
1516
- "p.xaxis.axis_label = \"number of cylinders\"\n",
1517
- "p.yaxis.axis_label = \"Mean MPG\"\n",
1518
- "p.y_range.start = 0\n",
1519
- "\n",
1520
- "# show the results\n",
1521
- "show(p)"
1522
- ]
1523
- },
1524
- {
1525
- "cell_type": "markdown",
1526
- "metadata": {},
1527
- "source": [
1528
- "### Categorical Scatterplots\n",
1529
- "\n",
1530
- "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 `commits` 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."
1531
- ]
1532
- },
1533
- {
1534
- "cell_type": "code",
1535
- "execution_count": 13,
1536
- "metadata": {},
1537
- "outputs": [
1538
- {
1539
- "data": {
1540
- "text/html": [
1541
- "<div>\n",
1542
- "<style scoped>\n",
1543
- " .dataframe tbody tr th:only-of-type {\n",
1544
- " vertical-align: middle;\n",
1545
- " }\n",
1546
- "\n",
1547
- " .dataframe tbody tr th {\n",
1548
- " vertical-align: top;\n",
1549
- " }\n",
1550
- "\n",
1551
- " .dataframe thead th {\n",
1552
- " text-align: right;\n",
1553
- " }\n",
1554
- "</style>\n",
1555
- "<table border=\"1\" class=\"dataframe\">\n",
1556
- " <thead>\n",
1557
- " <tr style=\"text-align: right;\">\n",
1558
- " <th></th>\n",
1559
- " <th>day</th>\n",
1560
- " <th>time</th>\n",
1561
- " </tr>\n",
1562
- " <tr>\n",
1563
- " <th>datetime</th>\n",
1564
- " <th></th>\n",
1565
- " <th></th>\n",
1566
- " </tr>\n",
1567
- " </thead>\n",
1568
- " <tbody>\n",
1569
- " <tr>\n",
1570
- " <th>2017-04-22 15:11:58-05:00</th>\n",
1571
- " <td>Sat</td>\n",
1572
- " <td>15:11:58</td>\n",
1573
- " </tr>\n",
1574
- " <tr>\n",
1575
- " <th>2017-04-21 14:20:57-05:00</th>\n",
1576
- " <td>Fri</td>\n",
1577
- " <td>14:20:57</td>\n",
1578
- " </tr>\n",
1579
- " <tr>\n",
1580
- " <th>2017-04-20 14:35:08-05:00</th>\n",
1581
- " <td>Thu</td>\n",
1582
- " <td>14:35:08</td>\n",
1583
- " </tr>\n",
1584
- " <tr>\n",
1585
- " <th>2017-04-20 10:34:29-05:00</th>\n",
1586
- " <td>Thu</td>\n",
1587
- " <td>10:34:29</td>\n",
1588
- " </tr>\n",
1589
- " <tr>\n",
1590
- " <th>2017-04-20 09:17:23-05:00</th>\n",
1591
- " <td>Thu</td>\n",
1592
- " <td>09:17:23</td>\n",
1593
- " </tr>\n",
1594
- " </tbody>\n",
1595
- "</table>\n",
1596
- "</div>"
1597
- ],
1598
- "text/plain": [
1599
- " day time\n",
1600
- "datetime \n",
1601
- "2017-04-22 15:11:58-05:00 Sat 15:11:58\n",
1602
- "2017-04-21 14:20:57-05:00 Fri 14:20:57\n",
1603
- "2017-04-20 14:35:08-05:00 Thu 14:35:08\n",
1604
- "2017-04-20 10:34:29-05:00 Thu 10:34:29\n",
1605
- "2017-04-20 09:17:23-05:00 Thu 09:17:23"
1606
- ]
1607
- },
1608
- "execution_count": 13,
1609
- "metadata": {},
1610
- "output_type": "execute_result"
1611
- }
1612
- ],
1613
- "source": [
1614
- "from bokeh.sampledata.commits import data\n",
1615
- "\n",
1616
- "data.head()"
1617
- ]
1618
- },
1619
- {
1620
- "cell_type": "markdown",
1621
- "metadata": {},
1622
- "source": [
1623
- "To create our scatter plot, we pass the list of categories as the range just as before\n",
1624
- "\n",
1625
- "```python\n",
1626
- " p = figure(y_range=DAYS, ...)\n",
1627
- "```\n",
1628
- "\n",
1629
- "Then we can plot circles for each commit, with `\"time\"` driving the x-coordinate, and `\"day\"` driving the y-coordinate.\n",
1630
- "\n",
1631
- "```python\n",
1632
- " p.circle(x='time', y='day', ...)\n",
1633
- "```\n",
1634
- "\n",
1635
- "To make the values more distinguishable, we can also add a `jitter` transform to the y-coordinate, which is shown in the complete example below."
1636
- ]
1637
- },
1638
- {
1639
- "cell_type": "code",
1640
- "execution_count": 14,
1641
- "metadata": {},
1642
- "outputs": [
1643
- {
1644
- "data": {
1645
- "text/html": [
1646
- "\n",
1647
- " <div class=\"bk-root\" id=\"c8a49138-42fc-4d47-82d3-e565c499c30d\" data-root-id=\"2103\"></div>\n"
1648
- ]
1649
- },
1650
- "metadata": {},
1651
- "output_type": "display_data"
1652
- },
1653
- {
1654
- "data": {
1655
- "application/javascript": [
1656
- "(function(root) {\n",
1657
- " function embed_document(root) {\n",
1658
- " 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\"}};\n",
1659
- " const render_items = [{\"docid\":\"782f9d92-8206-4e6d-a5bc-2fed73501171\",\"root_ids\":[\"2103\"],\"roots\":{\"2103\":\"c8a49138-42fc-4d47-82d3-e565c499c30d\"}}];\n",
1660
- " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n",
1661
- " }\n",
1662
- " if (root.Bokeh !== undefined) {\n",
1663
- " embed_document(root);\n",
1664
- " } else {\n",
1665
- " let attempts = 0;\n",
1666
- " const timer = setInterval(function(root) {\n",
1667
- " if (root.Bokeh !== undefined) {\n",
1668
- " clearInterval(timer);\n",
1669
- " embed_document(root);\n",
1670
- " } else {\n",
1671
- " attempts++;\n",
1672
- " if (attempts > 100) {\n",
1673
- " clearInterval(timer);\n",
1674
- " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n",
1675
- " }\n",
1676
- " }\n",
1677
- " }, 10, root)\n",
1678
- " }\n",
1679
- "})(window);"
1680
- ],
1681
- "application/vnd.bokehjs_exec.v0+json": ""
1682
- },
1683
- "metadata": {
1684
- "application/vnd.bokehjs_exec.v0+json": {
1685
- "id": "2103"
1686
- }
1687
- },
1688
- "output_type": "display_data"
1689
- }
1690
- ],
1691
- "source": [
1692
- "from bokeh.transform import jitter\n",
1693
- "\n",
1694
- "DAYS = ['Sun', 'Sat', 'Fri', 'Thu', 'Wed', 'Tue', 'Mon']\n",
1695
- "source = ColumnDataSource(data)\n",
1696
- "\n",
1697
- "p = figure(\n",
1698
- " plot_height=400,\n",
1699
- " plot_width=800,\n",
1700
- " y_range=DAYS,\n",
1701
- " x_axis_type='datetime', \n",
1702
- " title=\"Commits by Time of Day (US/Central) 2012—2016\"\n",
1703
- ")\n",
1704
- "\n",
1705
- "p.circle(\n",
1706
- " x='time',\n",
1707
- " y=jitter('day', width=0.6, range=p.y_range),\n",
1708
- " alpha=0.3,\n",
1709
- " source=source\n",
1710
- ")\n",
1711
- "\n",
1712
- "p.xaxis[0].formatter.days = ['%Hh']\n",
1713
- "p.x_range.range_padding = 0\n",
1714
- "p.ygrid.grid_line_color = None\n",
1715
- "\n",
1716
- "# show the results\n",
1717
- "show(p)"
1718
- ]
1719
- }
1720
- ],
1721
- "metadata": {
1722
- "kernelspec": {
1723
- "display_name": "Python 3",
1724
- "language": "python",
1725
- "name": "python3"
1726
- },
1727
- "language_info": {
1728
- "codemirror_mode": {
1729
- "name": "ipython",
1730
- "version": 3
1731
- },
1732
- "file_extension": ".py",
1733
- "mimetype": "text/x-python",
1734
- "name": "python",
1735
- "nbconvert_exporter": "python",
1736
- "pygments_lexer": "ipython3",
1737
- "version": "3.7.9"
1738
- }
1739
- },
1740
- "nbformat": 4,
1741
- "nbformat_minor": 4
1742
- }