j1-template 2022.5.0.rc1 → 2022.5.0.rc4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (378) hide show
  1. checksums.yaml +4 -4
  2. data/assets/data/banner.html +24 -1
  3. data/assets/themes/j1/adapter/js/masterslider.js +22 -5
  4. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +56 -0
  5. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  6. data/lib/j1/version.rb +1 -1
  7. data/lib/starter_web/Gemfile +270 -270
  8. data/lib/starter_web/_config.yml +19 -9
  9. data/lib/starter_web/_data/blocks/banner.yml +17 -0
  10. data/lib/starter_web/_data/modules/defaults/masterslider.yml +1 -1
  11. data/lib/starter_web/_data/modules/justifiedGallery.yml +82 -0
  12. data/lib/starter_web/_data/modules/masterslider.yml +5 -9
  13. data/lib/starter_web/_data/modules/navigator_menu.yml +208 -168
  14. data/lib/starter_web/_includes/attributes.asciidoc +18 -14
  15. data/lib/starter_web/_includes/tables/template_variables.asciidoc +1 -1
  16. data/lib/starter_web/_plugins/asciidoctor-extensions/lightbox-block.rb +4 -4
  17. data/lib/starter_web/assets/images/pages/features/blog-post-navigator-1280x1000.jpg +0 -0
  18. data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1280x800.png +0 -0
  19. data/lib/starter_web/assets/images/pages/features/clipboard-1280x600.jpg +0 -0
  20. data/lib/starter_web/assets/images/pages/features/comments-1280x600.jpg +0 -0
  21. data/lib/starter_web/assets/images/pages/features/cookie-consent-1280x800.jpg +0 -0
  22. data/lib/starter_web/assets/images/pages/features/desktop-web-navigation-1280x1000.jpg +0 -0
  23. data/lib/starter_web/assets/images/pages/features/example-content-1280x800.jpg +0 -0
  24. data/lib/starter_web/assets/images/pages/features/example-content-present-videos-1280x800.jpg +0 -0
  25. data/lib/starter_web/assets/images/pages/features/fab-1280x500.jpg +0 -0
  26. data/lib/starter_web/assets/images/pages/features/full-text-search-1280x800.jpg +0 -0
  27. data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.png +0 -0
  28. data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.png +0 -0
  29. data/lib/starter_web/assets/images/pages/features/intro-panel-1280x800.jpg +0 -0
  30. data/lib/starter_web/assets/images/pages/features/master-header-1280x600.jpg +0 -0
  31. data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.png +0 -0
  32. data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.png +0 -0
  33. data/lib/starter_web/assets/images/pages/features/nav-module-1280x300.jpg +0 -0
  34. data/lib/starter_web/assets/images/pages/features/nbi-barchart-1280x800.jpg +0 -0
  35. data/lib/starter_web/assets/images/pages/features/teaser-banner-1280x600.jpg +0 -0
  36. data/lib/starter_web/assets/images/pages/features/translator-1280x800.jpg +0 -0
  37. data/lib/starter_web/assets/images/sticker/600x600/sticker-new-version.png +0 -0
  38. data/lib/starter_web/assets/images/sticker/scalable/readme +0 -0
  39. data/lib/starter_web/package.json +6 -6
  40. data/lib/starter_web/pages/public/_jupyter/docs/_includes/attributes.asciidoc +67 -0
  41. data/lib/starter_web/pages/public/_jupyter/docs/_includes/documents/j1_docs_example_static.asciidoc +232 -0
  42. data/lib/starter_web/pages/public/_jupyter/docs/binderhub.adoc +631 -0
  43. data/lib/starter_web/pages/public/_jupyter/docs/j1-nbinteract.adoc +638 -0
  44. data/lib/starter_web/pages/public/_jupyter/docs/jupyterhub.adoc +248 -0
  45. data/lib/starter_web/pages/public/_jupyter/docs/nbinteract-widget-manual.adoc +928 -0
  46. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-circular-times-table.adoc +139 -0
  47. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-common-used-widgets.adoc +229 -0
  48. data/lib/starter_web/pages/public/_jupyter/examples/distributed/j1-odes-in-python.adoc +112 -0
  49. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-altair/j1-altair-visualisations.adoc +142 -0
  50. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bokeh-visualisations.adoc +171 -0
  51. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-bokeh/j1-bqplot-eamples.adoc +111 -0
  52. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1-plotly/j1-plotly-visualisations.adoc +94 -0
  53. data/lib/starter_web/pages/public/_jupyter/examples/localized/j1_climate-change-forecast.adoc +106 -0
  54. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +16260 -0
  55. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_bgplot_line_plot-checkpoint.ipynb +247 -0
  56. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-Copy1-checkpoint.ipynb +12382 -0
  57. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-checkpoint.ipynb +12387 -0
  58. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_circular_times_table-short-checkpoint.ipynb +12170 -0
  59. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_climate_change_forecast-checkpoint.ipynb +1058 -0
  60. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_docs_example_dynamic-checkpoint.ipynb +14478 -0
  61. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-Copy1-checkpoint.ipynb +379 -0
  62. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_interactive_widgets-checkpoint.ipynb +442 -0
  63. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets-checkpoint.ipynb +523 -0
  64. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.line_charts-checkpoint.ipynb +84 -0
  65. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets.questions-checkpoint.ipynb +194 -0
  66. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_chart-checkpoint.ipynb +89 -0
  67. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-Copy1-checkpoint.ipynb +164 -0
  68. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts-checkpoint.ipynb +173 -0
  69. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_bar_charts.1-checkpoint.ipynb +256 -0
  70. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_barcharts-checkpoint.ipynb +126 -0
  71. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_hist_chart-checkpoint.ipynb +87 -0
  72. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_chart-checkpoint.ipynb +90 -0
  73. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_line_charts-checkpoint.ipynb +87 -0
  74. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_multiple_choice-checkpoint.ipynb +64 -0
  75. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_question_short_answer-checkpoint.ipynb +122 -0
  76. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_questions-checkpoint.ipynb +181 -0
  77. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_chart-checkpoint.ipynb +89 -0
  78. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_charts-checkpoint.ipynb +175 -0
  79. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_nbi_widgets_scatter_drag_chart-checkpoint.ipynb +87 -0
  80. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_ode_selected-checkpoint.ipynb +14478 -0
  81. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/.ipynb_checkpoints/j1_odes_in_python-checkpoint.ipynb +15227 -0
  82. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/factor_by_factor.mp4 +0 -0
  83. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_circular_times_table.ipynb +12382 -0
  84. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_climate_change_forecast.ipynb +1058 -0
  85. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_docs_example_dynamic.ipynb +14478 -0
  86. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_interactive_widgets.ipynb +442 -0
  87. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets.ipynb +523 -0
  88. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_bar_chart.ipynb +89 -0
  89. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_hist_chart.ipynb +87 -0
  90. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_line_chart.ipynb +90 -0
  91. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_multiple_choice.ipynb +64 -0
  92. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_question_short_answer.ipynb +122 -0
  93. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_chart.ipynb +89 -0
  94. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_nbi_widgets_scatter_drag_chart.ipynb +87 -0
  95. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/j1_odes_in_python.ipynb +15227 -0
  96. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/line_by_line.mp4 +0 -0
  97. data/lib/starter_web/pages/public/_jupyter/notebooks/j1/point_by_point.mp4 +0 -0
  98. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_interactive-checkpoint.ipynb +16296 -0
  99. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/.ipynb_checkpoints/j1_altair_non_interactive-checkpoint.ipynb +15385 -0
  100. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_interactive.ipynb +16296 -0
  101. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-altair-tutorial/j1_altair_non_interactive.ipynb +15385 -0
  102. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/00 - Introduction and Setup-checkpoint.ipynb +717 -0
  103. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/01 - Basic Plotting-checkpoint.ipynb +1381 -0
  104. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/02 - Styling and Theming-checkpoint.ipynb +1440 -0
  105. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/03 - Data Sources and Transformations-checkpoint.ipynb +927 -0
  106. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/04 - Adding Annotations-checkpoint.ipynb +1105 -0
  107. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/05 - Presentation Layouts-checkpoint.ipynb +578 -0
  108. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/06 - Linking and Interactions-checkpoint.ipynb +1196 -0
  109. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/07 - Bar and Categorical Data Plots-checkpoint.ipynb +1681 -0
  110. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/08 - Graph and Network Plots-checkpoint.ipynb +680 -0
  111. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/09 - Geographic Plots-checkpoint.ipynb +693 -0
  112. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/10 - Exporting and Embedding-checkpoint.ipynb +751 -0
  113. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/11 - Running Bokeh Applications-checkpoint.ipynb +770 -0
  114. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/bokeh_tut_00_introduction_and_setup-checkpoint.ipynb +666 -0
  115. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_01_basic_plotting-checkpoint.ipynb +1365 -0
  116. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_02_styling_and_theming-checkpoint.ipynb +1405 -0
  117. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_03_data_sources_and_transformations-checkpoint.ipynb +856 -0
  118. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_04_adding_annotations-checkpoint.ipynb +1167 -0
  119. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_05_presentation_layouts-checkpoint.ipynb +601 -0
  120. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_06_linking_and_interactions-checkpoint.ipynb +1356 -0
  121. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_07_bar_and_categorical_data_plots-checkpoint.ipynb +1742 -0
  122. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_08_graph_and_network_plots-checkpoint.ipynb +625 -0
  123. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_09_geographic_plots-checkpoint.ipynb +685 -0
  124. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.ipynb +726 -0
  125. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding-checkpoint.org +726 -0
  126. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_10_exporting_and_embedding.new-checkpoint.ipynb +560 -0
  127. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/.ipynb_checkpoints/j1_bokeh_11_running_bokeh_applications-checkpoint.ipynb +716 -0
  128. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_01_basic_plotting.ipynb +1365 -0
  129. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_02_styling_and_theming.ipynb +1405 -0
  130. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_03_data_sources_and_transformations.ipynb +856 -0
  131. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_04_adding_annotations.ipynb +1167 -0
  132. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_05_presentation_layouts.ipynb +601 -0
  133. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_06_linking_and_interactions.ipynb +1356 -0
  134. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_07_bar_and_categorical_data_plots.ipynb +1742 -0
  135. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_08_graph_and_network_plots.ipynb +625 -0
  136. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bokeh-tutorial/j1_bokeh_09_geographic_plots.ipynb +685 -0
  137. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/.ipynb_checkpoints/j1_mathplot_vs_bqplot-checkpoint.ipynb +336 -0
  138. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/advanced/Feature_Vector_Distribution-Iris-Digits.ipynb +433 -0
  139. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_bgplot_line_plot.ipynb +244 -0
  140. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_circular_times_table-short.ipynb +12170 -0
  141. data/lib/starter_web/pages/public/_jupyter/notebooks/j1-bqplot/j1_mathplot_vs_bqplot.ipynb +336 -0
  142. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Index-checkpoint.ipynb +163 -0
  143. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/.ipynb_checkpoints/Tutorials-checkpoint.ipynb +51 -0
  144. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Advanced Plotting.ipynb +289 -0
  145. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Animations.ipynb +266 -0
  146. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Axis Properties.ipynb +396 -0
  147. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Advanced Plotting/Plotting Dates.ipynb +318 -0
  148. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/Time Series.ipynb +158 -0
  149. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Equity Index Performance/spx_prices.csv +6799 -0
  150. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Feature_Vector_Distribution-Iris-Digits.ipynb +470 -0
  151. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Index.ipynb +49 -0
  152. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Logs Analytics/Logs Dashboard.ipynb +378 -0
  153. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Mobile Patent Suits.ipynb +123 -0
  154. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Neural Network.ipynb +177 -0
  155. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Outlier Detection.ipynb +311 -0
  156. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Bubble Chart.ipynb +255 -0
  157. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/Choropleth.ipynb +275 -0
  158. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/nations.json +1 -0
  159. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Applications/Wealth Of Nations/world_map_codes.csv +234 -0
  160. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Basic Plotting-checkpoint.ipynb +186 -0
  161. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Pyplot-checkpoint.ipynb +794 -0
  162. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/.ipynb_checkpoints/Untitled-checkpoint.ipynb +323 -0
  163. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Basic Plotting.ipynb +261 -0
  164. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Basic Plotting/Pyplot.ipynb +1489 -0
  165. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Index.ipynb +163 -0
  166. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Interaction Layer.ipynb +966 -0
  167. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Mark Interactions.ipynb +476 -0
  168. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Interactions/Selectors.ipynb +427 -0
  169. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Introduction.ipynb +528 -0
  170. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bars.ipynb +480 -0
  171. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Bins.ipynb +217 -0
  172. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Boxplot.ipynb +253 -0
  173. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Candles.ipynb +225 -0
  174. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/FlexLine.ipynb +123 -0
  175. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Graph.ipynb +357 -0
  176. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/GridHeatMap.ipynb +422 -0
  177. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/HeatMap.ipynb +157 -0
  178. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Hist.ipynb +176 -0
  179. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Image.ipynb +195 -0
  180. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Label.ipynb +189 -0
  181. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Lines.ipynb +565 -0
  182. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Map.ipynb +182 -0
  183. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Market Map.ipynb +315 -0
  184. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Pie.ipynb +465 -0
  185. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Object Model/Scatter.ipynb +835 -0
  186. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bars.ipynb +362 -0
  187. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Bins.ipynb +252 -0
  188. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Boxplot.ipynb +273 -0
  189. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Candles.ipynb +242 -0
  190. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/GridHeatMap.ipynb +417 -0
  191. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/HeatMap.ipynb +155 -0
  192. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Hist.ipynb +238 -0
  193. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Image.ipynb +152 -0
  194. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Label.ipynb +206 -0
  195. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Lines.ipynb +474 -0
  196. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Map.ipynb +181 -0
  197. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Pie.ipynb +310 -0
  198. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Marks/Pyplot/Scatter.ipynb +702 -0
  199. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Scales/Color Scales.ipynb +495 -0
  200. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Feature_Vector_Distribution-Iris-Digits-checkpoint.ipynb +433 -0
  201. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Linking Plots With Widgets-checkpoint.ipynb +326 -0
  202. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-Copy1-checkpoint.ipynb +177 -0
  203. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/.ipynb_checkpoints/Updating Plots-checkpoint.ipynb +177 -0
  204. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Brush Interval Selector.ipynb +154 -0
  205. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Fast Interval Selector.ipynb +152 -0
  206. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density Widget.ipynb +128 -0
  207. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Gaussian Density.ipynb +113 -0
  208. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Linking Plots With Widgets.ipynb +326 -0
  209. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Object Model.ipynb +179 -0
  210. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Pyplot.ipynb +174 -0
  211. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials/Updating Plots.ipynb +177 -0
  212. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/Tutorials.ipynb +51 -0
  213. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/country_codes.csv +213 -0
  214. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/gdp_per_capita.csv +56 -0
  215. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/state_codes.csv +52 -0
  216. data/lib/starter_web/pages/public/_jupyter/notebooks/martin_renou_bqplot/data_files/trees.jpg +0 -0
  217. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_central_limit_theorem-checkpoint.ipynb +247 -0
  218. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_examples_variability_of_the_sample_mean-checkpoint.ipynb +323 -0
  219. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_graphing-checkpoint.ipynb +387 -0
  220. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_interactive_questions-checkpoint.ipynb +185 -0
  221. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_recipes_layout-checkpoint.ipynb +384 -0
  222. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_interact-checkpoint.ipynb +254 -0
  223. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/.ipynb_checkpoints/nbi_docs_tutorial_monty_hall-checkpoint.ipynb +732 -0
  224. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_central_limit_theorem.ipynb +247 -0
  225. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_correlation.ipynb +651 -0
  226. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_empirical_distributions.ipynb +773 -0
  227. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_linear_regression.ipynb +111 -0
  228. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_probability_distribution_plots.ipynb +199 -0
  229. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_sampling_from_a_population.ipynb +421 -0
  230. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_examples_variability_of_the_sample_mean.ipynb +323 -0
  231. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_graphing.ipynb +387 -0
  232. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_interactive_questions.ipynb +185 -0
  233. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_recipes_layout.ipynb +384 -0
  234. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_interact.ipynb +254 -0
  235. data/lib/starter_web/pages/public/_jupyter/notebooks/nbi-docs/nbi_docs_tutorial_monty_hall.ipynb +732 -0
  236. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Advanced Plotting.html +373 -0
  237. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Animations.html +361 -0
  238. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Axis Properties.html +569 -0
  239. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bars.html +487 -0
  240. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Basic Plotting.html +341 -0
  241. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bins.html +259 -0
  242. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Boxplot.html +277 -0
  243. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Brush Interval Selector.html +182 -0
  244. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Bubble Chart.html +299 -0
  245. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Candles.html +252 -0
  246. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Choropleth.html +318 -0
  247. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Color Scales.html +514 -0
  248. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Fast Interval Selector.html +182 -0
  249. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Feature_Vector_Distribution-Iris-Digits.html +479 -0
  250. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/FlexLine.html +128 -0
  251. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density Widget.html +152 -0
  252. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Gaussian Density.html +137 -0
  253. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Graph.html +484 -0
  254. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/GridHeatMap.html +483 -0
  255. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/HeatMap.html +170 -0
  256. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Hist.html +349 -0
  257. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Image.html +177 -0
  258. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Index.html +29 -0
  259. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Interaction Layer.html +1372 -0
  260. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Introduction.html +749 -0
  261. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Label.html +268 -0
  262. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Lines.html +704 -0
  263. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Linking Plots With Widgets.html +389 -0
  264. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Logs Dashboard.html +455 -0
  265. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Map.html +229 -0
  266. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mark Interactions.html +613 -0
  267. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Market Map.html +413 -0
  268. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Mobile Patent Suits.html +131 -0
  269. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Neural Network.html +190 -0
  270. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Object Model.html +193 -0
  271. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Outlier Detection.html +363 -0
  272. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pie.html +367 -0
  273. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Plotting Dates.html +337 -0
  274. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Pyplot.html +196 -0
  275. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Scatter.html +948 -0
  276. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Selectors.html +489 -0
  277. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Time Series.html +173 -0
  278. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Tutorials.html +40 -0
  279. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/Updating Plots.html +228 -0
  280. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_interactive.html +2216 -0
  281. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_altair_non_interactive.html +1170 -0
  282. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bgplot_line_plot.html +318 -0
  283. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_01_basic_plotting.html +1479 -0
  284. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_02_styling_and_theming.html +1524 -0
  285. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_03_data_sources_and_transformations.html +983 -0
  286. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_04_adding_annotations.html +1280 -0
  287. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_05_presentation_layouts.html +660 -0
  288. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_06_linking_and_interactions.html +1563 -0
  289. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_07_bar_and_categorical_data_plots.html +1888 -0
  290. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_08_graph_and_network_plots.html +689 -0
  291. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_bokeh_09_geographic_plots.html +767 -0
  292. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table-short.html +475 -0
  293. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_circular_times_table.html +747 -0
  294. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_climate_change_forecast.html +1250 -0
  295. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_docs_example_dynamic.html +186 -0
  296. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_interactive_widgets.html +512 -0
  297. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_mathplot_vs_bqplot.html +407 -0
  298. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets.html +629 -0
  299. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +95 -0
  300. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +93 -0
  301. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +96 -0
  302. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +70 -0
  303. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +156 -0
  304. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +95 -0
  305. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +93 -0
  306. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/j1_odes_in_python.html +955 -0
  307. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_central_limit_theorem.html +290 -0
  308. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_correlation.html +818 -0
  309. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_empirical_distributions.html +351 -0
  310. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_linear_regression.html +106 -0
  311. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_probability_distribution_plots.html +228 -0
  312. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_sampling_from_a_population.html +518 -0
  313. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_examples_variability_of_the_sample_mean.html +372 -0
  314. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_graphing.html +473 -0
  315. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_interactive_questions.html +242 -0
  316. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_recipes_layout.html +496 -0
  317. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_interact.html +329 -0
  318. data/lib/starter_web/pages/public/_jupyter/notebooks/textbooks/nbi_docs_tutorial_monty_hall.html +866 -0
  319. data/lib/starter_web/pages/public/_jupyter/where_to_go.adoc +270 -0
  320. data/lib/starter_web/pages/public/features/general.adoc +74 -33
  321. data/lib/starter_web/pages/public/features/template.adoc +159 -68
  322. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_interactive_widgets.html +512 -512
  323. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets.html +629 -629
  324. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_bar_chart.html +95 -95
  325. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_hist_chart.html +93 -93
  326. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_line_chart.html +96 -96
  327. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_multiple_choice.html +70 -70
  328. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_question_short_answer.html +156 -156
  329. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_chart.html +95 -95
  330. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_nbi_widgets_scatter_drag_chart.html +93 -93
  331. data/lib/starter_web/pages/public/jupyter/notebooks/textbooks/j1_odes_in_python.html +955 -955
  332. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_images.adoc +313 -0
  333. data/lib/starter_web/pages/public/learn/_roundtrip/100_present_videos.adoc +281 -0
  334. data/lib/starter_web/pages/public/learn/_roundtrip/200_typography.adoc +253 -0
  335. data/lib/starter_web/pages/public/learn/_roundtrip/300_icon_fonts.adoc +579 -0
  336. data/lib/starter_web/pages/public/learn/_roundtrip/400_asciidoc_extensions.adoc +718 -0
  337. data/lib/starter_web/pages/public/learn/_roundtrip/410_bs_modals_extentions.adoc +91 -0
  338. data/lib/starter_web/pages/public/learn/_roundtrip/420_responsive_tables_extensions.adoc +420 -0
  339. data/lib/starter_web/pages/public/learn/_roundtrip/500_themes.adoc +250 -0
  340. data/lib/starter_web/pages/public/learn/_roundtrip/600_quicksearch.adoc +425 -0
  341. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/attributes.asciidoc +118 -0
  342. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/100_gistblock.asciidoc +28 -0
  343. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_info.asciidoc +14 -0
  344. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_left_warning.asciidoc +11 -0
  345. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_bottom_right_danger.asciidoc +11 -0
  346. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_central_success.asciidoc +11 -0
  347. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_left_info.asciidoc +11 -0
  348. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_full_height_right_success.asciidoc +11 -0
  349. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_table_bs_modal_examples.asciidoc +47 -0
  350. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_info.asciidoc +11 -0
  351. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_left_info.asciidoc +11 -0
  352. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/410_top_right_success.asciidoc +11 -0
  353. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/419_advanced_modals_demo.asciidoc +337 -0
  354. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/documents/tables/bs_modal_examples.asciidoc +47 -0
  355. data/lib/starter_web/pages/public/learn/_roundtrip/_includes/google-ad.js +130 -0
  356. data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +6 -5
  357. data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +1 -2
  358. data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +4 -2
  359. data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +1 -1
  360. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +1 -1
  361. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  362. data/lib/starter_web/utilsrv/package.json +1 -1
  363. metadata +384 -17
  364. data/lib/starter_web/_includes/_attributes.asciidoc +0 -575
  365. data/lib/starter_web/assets/images/pages/features/bootswatch-themes-1080x800.jpg +0 -0
  366. data/lib/starter_web/assets/images/pages/features/comments-1080x600.jpg +0 -0
  367. data/lib/starter_web/assets/images/pages/features/cookie-consent-1080x800.jpg +0 -0
  368. data/lib/starter_web/assets/images/pages/features/example-content-present-videos-1080x800.jpg +0 -0
  369. data/lib/starter_web/assets/images/pages/features/fab-1080x500.jpg +0 -0
  370. data/lib/starter_web/assets/images/pages/features/full-text-search-1080x800.jpg +0 -0
  371. data/lib/starter_web/assets/images/pages/features/global-mobile-traffic-1920x1080.jpg +0 -0
  372. data/lib/starter_web/assets/images/pages/features/google-lighthouse-1080x300.jpg +0 -0
  373. data/lib/starter_web/assets/images/pages/features/intro-panel-1080x800.jpg +0 -0
  374. data/lib/starter_web/assets/images/pages/features/mobile-navigation-600x800.jpg +0 -0
  375. data/lib/starter_web/assets/images/pages/features/native-speakers-by-language.jpg +0 -0
  376. data/lib/starter_web/assets/images/pages/features/nav-module-1080x300.jpg +0 -0
  377. data/lib/starter_web/assets/images/pages/features/teaser-banner-1080x600.jpg +0 -0
  378. data/lib/starter_web/assets/images/pages/features/translator-1080x800.jpg +0 -0
@@ -0,0 +1,1372 @@
1
+ <div class="cell text_cell">
2
+ <button class="js-nbinteract-widget">
3
+ Loading widgets...
4
+ </button>
5
+ </div>
6
+
7
+
8
+
9
+
10
+
11
+
12
+ <div class="
13
+ cell border-box-sizing code_cell rendered">
14
+ <div class="input">
15
+
16
+ <div class="inner_cell">
17
+ <div class="input_area">
18
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">pandas</span> <span class="k">as</span> <span class="nn">pd</span>
19
+ <span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
20
+
21
+ <span class="n">symbol</span> <span class="o">=</span> <span class="s2">&quot;Security 1&quot;</span>
22
+ <span class="n">symbol2</span> <span class="o">=</span> <span class="s2">&quot;Security 2&quot;</span>
23
+ </pre></div>
24
+
25
+ </div>
26
+ </div>
27
+ </div>
28
+
29
+ </div>
30
+
31
+
32
+
33
+ <div class="
34
+ cell border-box-sizing code_cell rendered">
35
+ <div class="input">
36
+
37
+ <div class="inner_cell">
38
+ <div class="input_area">
39
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">price_data</span> <span class="o">=</span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">(</span>
40
+ <span class="n">np</span><span class="o">.</span><span class="n">cumsum</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">150</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">dot</span><span class="p">([[</span><span class="mf">0.5</span><span class="p">,</span> <span class="mf">0.4</span><span class="p">],</span> <span class="p">[</span><span class="mf">0.4</span><span class="p">,</span> <span class="mf">1.0</span><span class="p">]]),</span> <span class="n">axis</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="mi">100</span><span class="p">,</span>
41
+ <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;Security 1&quot;</span><span class="p">,</span> <span class="s2">&quot;Security 2&quot;</span><span class="p">],</span>
42
+ <span class="n">index</span><span class="o">=</span><span class="n">pd</span><span class="o">.</span><span class="n">date_range</span><span class="p">(</span><span class="n">start</span><span class="o">=</span><span class="s2">&quot;01-01-2007&quot;</span><span class="p">,</span> <span class="n">periods</span><span class="o">=</span><span class="mi">150</span><span class="p">),</span>
43
+ <span class="p">)</span>
44
+
45
+ <span class="n">dates_actual</span> <span class="o">=</span> <span class="n">price_data</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">values</span>
46
+ <span class="n">prices</span> <span class="o">=</span> <span class="n">price_data</span><span class="p">[</span><span class="n">symbol</span><span class="p">]</span><span class="o">.</span><span class="n">values</span>
47
+ </pre></div>
48
+
49
+ </div>
50
+ </div>
51
+ </div>
52
+
53
+ </div>
54
+
55
+
56
+
57
+ <div class="
58
+ cell border-box-sizing code_cell rendered">
59
+ <div class="input">
60
+
61
+ <div class="inner_cell">
62
+ <div class="input_area">
63
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">bqplot</span> <span class="kn">import</span> <span class="n">DateScale</span><span class="p">,</span> <span class="n">LinearScale</span><span class="p">,</span> <span class="n">Axis</span><span class="p">,</span> <span class="n">Lines</span><span class="p">,</span> <span class="n">Scatter</span><span class="p">,</span> <span class="n">Bars</span><span class="p">,</span> <span class="n">Hist</span><span class="p">,</span> <span class="n">Figure</span>
64
+ <span class="kn">from</span> <span class="nn">bqplot.interacts</span> <span class="kn">import</span> <span class="p">(</span>
65
+ <span class="n">FastIntervalSelector</span><span class="p">,</span>
66
+ <span class="n">IndexSelector</span><span class="p">,</span>
67
+ <span class="n">BrushIntervalSelector</span><span class="p">,</span>
68
+ <span class="n">BrushSelector</span><span class="p">,</span>
69
+ <span class="n">MultiSelector</span><span class="p">,</span>
70
+ <span class="n">LassoSelector</span><span class="p">,</span>
71
+ <span class="n">PanZoom</span><span class="p">,</span>
72
+ <span class="n">HandDraw</span><span class="p">,</span>
73
+ <span class="p">)</span>
74
+ <span class="kn">from</span> <span class="nn">traitlets</span> <span class="kn">import</span> <span class="n">link</span>
75
+
76
+ <span class="kn">from</span> <span class="nn">ipywidgets</span> <span class="kn">import</span> <span class="n">ToggleButtons</span><span class="p">,</span> <span class="n">VBox</span><span class="p">,</span> <span class="n">HTML</span>
77
+ </pre></div>
78
+
79
+ </div>
80
+ </div>
81
+ </div>
82
+
83
+ </div>
84
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
85
+ <div class="text_cell_render border-box-sizing rendered_html">
86
+ <h1 id="Line-Chart-Selectors">Line Chart Selectors<a class="anchor-link" href="#Line-Chart-Selectors">&#182;</a></h1>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
91
+ <div class="text_cell_render border-box-sizing rendered_html">
92
+ <h2 id="Fast-Interval-Selector">Fast Interval Selector<a class="anchor-link" href="#Fast-Interval-Selector">&#182;</a></h2>
93
+ </div>
94
+ </div>
95
+ </div>
96
+
97
+
98
+
99
+ <div class="
100
+ cell border-box-sizing code_cell rendered">
101
+ <div class="input">
102
+
103
+ <div class="inner_cell">
104
+ <div class="input_area">
105
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## First we define a Figure</span>
106
+ <span class="n">dt_x_fast</span> <span class="o">=</span> <span class="n">DateScale</span><span class="p">()</span>
107
+ <span class="n">lin_y</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
108
+
109
+ <span class="n">x_ax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="s2">&quot;Index&quot;</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="n">dt_x_fast</span><span class="p">)</span>
110
+ <span class="n">x_ay</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="p">(</span><span class="n">symbol</span> <span class="o">+</span> <span class="s2">&quot; Price&quot;</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">lin_y</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">)</span>
111
+ <span class="n">lc</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span>
112
+ <span class="n">x</span><span class="o">=</span><span class="n">dates_actual</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">prices</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">dt_x_fast</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">lin_y</span><span class="p">},</span> <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;orange&quot;</span><span class="p">]</span>
113
+ <span class="p">)</span>
114
+ <span class="n">lc_2</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span>
115
+ <span class="n">x</span><span class="o">=</span><span class="n">dates_actual</span><span class="p">[</span><span class="mi">50</span><span class="p">:],</span>
116
+ <span class="n">y</span><span class="o">=</span><span class="n">prices</span><span class="p">[</span><span class="mi">50</span><span class="p">:]</span> <span class="o">+</span> <span class="mi">2</span><span class="p">,</span>
117
+ <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">dt_x_fast</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">lin_y</span><span class="p">},</span>
118
+ <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;blue&quot;</span><span class="p">],</span>
119
+ <span class="p">)</span>
120
+ </pre></div>
121
+
122
+ </div>
123
+ </div>
124
+ </div>
125
+
126
+ </div>
127
+
128
+
129
+
130
+ <div class="
131
+ cell border-box-sizing code_cell rendered">
132
+ <div class="input">
133
+
134
+ <div class="inner_cell">
135
+ <div class="input_area">
136
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Next we define the type of selector we would like</span>
137
+ <span class="n">intsel_fast</span> <span class="o">=</span> <span class="n">FastIntervalSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">dt_x_fast</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc</span><span class="p">,</span> <span class="n">lc_2</span><span class="p">])</span>
138
+ </pre></div>
139
+
140
+ </div>
141
+ </div>
142
+ </div>
143
+
144
+ </div>
145
+
146
+
147
+
148
+ <div class="
149
+ cell border-box-sizing code_cell rendered">
150
+ <div class="input">
151
+
152
+ <div class="inner_cell">
153
+ <div class="input_area">
154
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Now, we define a function that will be called when the FastIntervalSelector is interacted with</span>
155
+ <span class="k">def</span> <span class="nf">fast_interval_change_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
156
+ <span class="n">db_fast</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="s2">&quot;The selected period is &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">change</span><span class="o">.</span><span class="n">new</span><span class="p">)</span>
157
+ </pre></div>
158
+
159
+ </div>
160
+ </div>
161
+ </div>
162
+
163
+ </div>
164
+
165
+
166
+
167
+ <div class="
168
+ cell border-box-sizing code_cell rendered">
169
+ <div class="input">
170
+
171
+ <div class="inner_cell">
172
+ <div class="input_area">
173
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Now we connect the selectors to that function</span>
174
+ <span class="n">intsel_fast</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">fast_interval_change_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
175
+ </pre></div>
176
+
177
+ </div>
178
+ </div>
179
+ </div>
180
+
181
+ </div>
182
+
183
+
184
+
185
+ <div class="
186
+ cell border-box-sizing code_cell rendered">
187
+ <div class="input">
188
+
189
+ <div class="inner_cell">
190
+ <div class="input_area">
191
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## We use the HTML widget to see the value of what we are selecting and modify it when an interaction is performed</span>
192
+ <span class="c1">## on the selector</span>
193
+ <span class="n">db_fast</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">()</span>
194
+ <span class="n">db_fast</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="s2">&quot;The selected period is &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">intsel_fast</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
195
+
196
+ <span class="n">fig_fast_intsel</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
197
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc</span><span class="p">,</span> <span class="n">lc_2</span><span class="p">],</span>
198
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">x_ax</span><span class="p">,</span> <span class="n">x_ay</span><span class="p">],</span>
199
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Fast Interval Selector Example&quot;</span><span class="p">,</span>
200
+ <span class="n">interaction</span><span class="o">=</span><span class="n">intsel_fast</span><span class="p">,</span>
201
+ <span class="p">)</span> <span class="c1"># This is where we assign the interaction to this particular Figure</span>
202
+
203
+ <span class="n">VBox</span><span class="p">([</span><span class="n">db_fast</span><span class="p">,</span> <span class="n">fig_fast_intsel</span><span class="p">])</span>
204
+ </pre></div>
205
+
206
+ </div>
207
+ </div>
208
+ </div>
209
+
210
+ </div>
211
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
212
+ <div class="text_cell_render border-box-sizing rendered_html">
213
+ <h2 id="Index-Selector">Index Selector<a class="anchor-link" href="#Index-Selector">&#182;</a></h2>
214
+ </div>
215
+ </div>
216
+ </div>
217
+
218
+
219
+
220
+ <div class="
221
+ cell border-box-sizing code_cell rendered">
222
+ <div class="input">
223
+
224
+ <div class="inner_cell">
225
+ <div class="input_area">
226
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">db_index</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="s2">&quot;[]&quot;</span><span class="p">)</span>
227
+ </pre></div>
228
+
229
+ </div>
230
+ </div>
231
+ </div>
232
+
233
+ </div>
234
+
235
+
236
+
237
+ <div class="
238
+ cell border-box-sizing code_cell rendered">
239
+ <div class="input">
240
+
241
+ <div class="inner_cell">
242
+ <div class="input_area">
243
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Now we try a selector made to select all the y-values associated with a single x-value</span>
244
+ <span class="n">index_sel</span> <span class="o">=</span> <span class="n">IndexSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">dt_x_fast</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc</span><span class="p">,</span> <span class="n">lc_2</span><span class="p">])</span>
245
+ </pre></div>
246
+
247
+ </div>
248
+ </div>
249
+ </div>
250
+
251
+ </div>
252
+
253
+
254
+
255
+ <div class="
256
+ cell border-box-sizing code_cell rendered">
257
+ <div class="input">
258
+
259
+ <div class="inner_cell">
260
+ <div class="input_area">
261
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Now, we define a function that will be called when the selectors are interacted with</span>
262
+ <span class="k">def</span> <span class="nf">index_change_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
263
+ <span class="n">db_index</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="s2">&quot;The selected date is &quot;</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">change</span><span class="o">.</span><span class="n">new</span><span class="p">)</span>
264
+ </pre></div>
265
+
266
+ </div>
267
+ </div>
268
+ </div>
269
+
270
+ </div>
271
+
272
+
273
+
274
+ <div class="
275
+ cell border-box-sizing code_cell rendered">
276
+ <div class="input">
277
+
278
+ <div class="inner_cell">
279
+ <div class="input_area">
280
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">index_sel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">index_change_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
281
+ </pre></div>
282
+
283
+ </div>
284
+ </div>
285
+ </div>
286
+
287
+ </div>
288
+
289
+
290
+
291
+ <div class="
292
+ cell border-box-sizing code_cell rendered">
293
+ <div class="input">
294
+
295
+ <div class="inner_cell">
296
+ <div class="input_area">
297
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">fig_index_sel</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
298
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc</span><span class="p">,</span> <span class="n">lc_2</span><span class="p">],</span>
299
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">x_ax</span><span class="p">,</span> <span class="n">x_ay</span><span class="p">],</span>
300
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Index Selector Example&quot;</span><span class="p">,</span>
301
+ <span class="n">interaction</span><span class="o">=</span><span class="n">index_sel</span><span class="p">,</span>
302
+ <span class="p">)</span>
303
+ <span class="n">VBox</span><span class="p">([</span><span class="n">db_index</span><span class="p">,</span> <span class="n">fig_index_sel</span><span class="p">])</span>
304
+ </pre></div>
305
+
306
+ </div>
307
+ </div>
308
+ </div>
309
+
310
+ </div>
311
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
312
+ <div class="text_cell_render border-box-sizing rendered_html">
313
+ <h2 id="Returning-indexes-of-selected-values">Returning indexes of selected values<a class="anchor-link" href="#Returning-indexes-of-selected-values">&#182;</a></h2>
314
+ </div>
315
+ </div>
316
+ </div>
317
+
318
+
319
+
320
+ <div class="
321
+ cell border-box-sizing code_cell rendered">
322
+ <div class="input">
323
+
324
+ <div class="inner_cell">
325
+ <div class="input_area">
326
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">datetime</span> <span class="kn">import</span> <span class="n">datetime</span> <span class="k">as</span> <span class="n">py_dtime</span>
327
+
328
+ <span class="n">dt_x_index</span> <span class="o">=</span> <span class="n">DateScale</span><span class="p">(</span><span class="nb">min</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">datetime64</span><span class="p">(</span><span class="n">py_dtime</span><span class="p">(</span><span class="mi">2006</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
329
+ <span class="n">lin_y2</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
330
+
331
+ <span class="n">lc2_index</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">dates_actual</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">prices</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">dt_x_index</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">lin_y2</span><span class="p">})</span>
332
+
333
+ <span class="n">x_ax1</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="s2">&quot;Date&quot;</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="n">dt_x_index</span><span class="p">)</span>
334
+ <span class="n">x_ay2</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="p">(</span><span class="n">symbol</span> <span class="o">+</span> <span class="s2">&quot; Price&quot;</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">lin_y2</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">)</span>
335
+ </pre></div>
336
+
337
+ </div>
338
+ </div>
339
+ </div>
340
+
341
+ </div>
342
+
343
+
344
+
345
+ <div class="
346
+ cell border-box-sizing code_cell rendered">
347
+ <div class="input">
348
+
349
+ <div class="inner_cell">
350
+ <div class="input_area">
351
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">intsel_date</span> <span class="o">=</span> <span class="n">FastIntervalSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">dt_x_index</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc2_index</span><span class="p">])</span>
352
+ </pre></div>
353
+
354
+ </div>
355
+ </div>
356
+ </div>
357
+
358
+ </div>
359
+
360
+
361
+
362
+ <div class="
363
+ cell border-box-sizing code_cell rendered">
364
+ <div class="input">
365
+
366
+ <div class="inner_cell">
367
+ <div class="input_area">
368
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">db_date</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">()</span>
369
+ <span class="n">db_date</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">intsel_date</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
370
+ </pre></div>
371
+
372
+ </div>
373
+ </div>
374
+ </div>
375
+
376
+ </div>
377
+
378
+
379
+
380
+ <div class="
381
+ cell border-box-sizing code_cell rendered">
382
+ <div class="input">
383
+
384
+ <div class="inner_cell">
385
+ <div class="input_area">
386
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Now, we define a function that will be called when the selectors are interacted with - a callback</span>
387
+ <span class="k">def</span> <span class="nf">date_interval_change_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
388
+ <span class="n">db_date</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">change</span><span class="o">.</span><span class="n">new</span><span class="p">)</span>
389
+ </pre></div>
390
+
391
+ </div>
392
+ </div>
393
+ </div>
394
+
395
+ </div>
396
+
397
+
398
+
399
+ <div class="
400
+ cell border-box-sizing code_cell rendered">
401
+ <div class="input">
402
+
403
+ <div class="inner_cell">
404
+ <div class="input_area">
405
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Notice here that we call the observe on the Mark lc2_index rather than on the selector intsel_date</span>
406
+ <span class="n">lc2_index</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">date_interval_change_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
407
+
408
+ <span class="n">fig_date_mark</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
409
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc2_index</span><span class="p">],</span>
410
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">x_ax1</span><span class="p">,</span> <span class="n">x_ay2</span><span class="p">],</span>
411
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Fast Interval Selector Selected Indices Example&quot;</span><span class="p">,</span>
412
+ <span class="n">interaction</span><span class="o">=</span><span class="n">intsel_date</span><span class="p">,</span>
413
+ <span class="p">)</span>
414
+
415
+ <span class="n">VBox</span><span class="p">([</span><span class="n">db_date</span><span class="p">,</span> <span class="n">fig_date_mark</span><span class="p">])</span>
416
+ </pre></div>
417
+
418
+ </div>
419
+ </div>
420
+ </div>
421
+
422
+ </div>
423
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
424
+ <div class="text_cell_render border-box-sizing rendered_html">
425
+ <h2 id="Brush-Selector">Brush Selector<a class="anchor-link" href="#Brush-Selector">&#182;</a></h2>
426
+ </div>
427
+ </div>
428
+ </div>
429
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
430
+ <div class="text_cell_render border-box-sizing rendered_html">
431
+ <h3 id="We-can-do-the-same-with-any-type-of-selector">We can do the same with any type of selector<a class="anchor-link" href="#We-can-do-the-same-with-any-type-of-selector">&#182;</a></h3>
432
+ </div>
433
+ </div>
434
+ </div>
435
+
436
+
437
+
438
+ <div class="
439
+ cell border-box-sizing code_cell rendered">
440
+ <div class="input">
441
+
442
+ <div class="inner_cell">
443
+ <div class="input_area">
444
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Defining a new Figure</span>
445
+ <span class="n">dt_x_brush</span> <span class="o">=</span> <span class="n">DateScale</span><span class="p">(</span><span class="nb">min</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">datetime64</span><span class="p">(</span><span class="n">py_dtime</span><span class="p">(</span><span class="mi">2006</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
446
+ <span class="n">lin_y2_brush</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
447
+
448
+ <span class="n">lc3_brush</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">dates_actual</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">prices</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">dt_x_brush</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">lin_y2_brush</span><span class="p">})</span>
449
+
450
+ <span class="n">x_ax_brush</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="s2">&quot;Date&quot;</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="n">dt_x_brush</span><span class="p">)</span>
451
+ <span class="n">x_ay_brush</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="p">(</span><span class="n">symbol</span> <span class="o">+</span> <span class="s2">&quot; Price&quot;</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">lin_y2_brush</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">)</span>
452
+ </pre></div>
453
+
454
+ </div>
455
+ </div>
456
+ </div>
457
+
458
+ </div>
459
+
460
+
461
+
462
+ <div class="
463
+ cell border-box-sizing code_cell rendered">
464
+ <div class="input">
465
+
466
+ <div class="inner_cell">
467
+ <div class="input_area">
468
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">db_brush</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="s2">&quot;[]&quot;</span><span class="p">)</span>
469
+ </pre></div>
470
+
471
+ </div>
472
+ </div>
473
+ </div>
474
+
475
+ </div>
476
+
477
+
478
+
479
+ <div class="
480
+ cell border-box-sizing code_cell rendered">
481
+ <div class="input">
482
+
483
+ <div class="inner_cell">
484
+ <div class="input_area">
485
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">brushsel_date</span> <span class="o">=</span> <span class="n">BrushIntervalSelector</span><span class="p">(</span>
486
+ <span class="n">scale</span><span class="o">=</span><span class="n">dt_x_brush</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc3_brush</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;FireBrick&quot;</span>
487
+ <span class="p">)</span>
488
+ </pre></div>
489
+
490
+ </div>
491
+ </div>
492
+ </div>
493
+
494
+ </div>
495
+
496
+
497
+
498
+ <div class="
499
+ cell border-box-sizing code_cell rendered">
500
+ <div class="input">
501
+
502
+ <div class="inner_cell">
503
+ <div class="input_area">
504
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Now, we define a function that will be called when the selectors are interacted with - a callback</span>
505
+ <span class="k">def</span> <span class="nf">date_brush_change_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
506
+ <span class="n">db_brush</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">change</span><span class="o">.</span><span class="n">new</span><span class="p">)</span>
507
+ </pre></div>
508
+
509
+ </div>
510
+ </div>
511
+ </div>
512
+
513
+ </div>
514
+
515
+
516
+
517
+ <div class="
518
+ cell border-box-sizing code_cell rendered">
519
+ <div class="input">
520
+
521
+ <div class="inner_cell">
522
+ <div class="input_area">
523
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">lc3_brush</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">date_brush_change_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
524
+ </pre></div>
525
+
526
+ </div>
527
+ </div>
528
+ </div>
529
+
530
+ </div>
531
+
532
+
533
+
534
+ <div class="
535
+ cell border-box-sizing code_cell rendered">
536
+ <div class="input">
537
+
538
+ <div class="inner_cell">
539
+ <div class="input_area">
540
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">fig_brush_sel</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
541
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc3_brush</span><span class="p">],</span>
542
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">x_ax_brush</span><span class="p">,</span> <span class="n">x_ay_brush</span><span class="p">],</span>
543
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Brush Selector Selected Indices Example&quot;</span><span class="p">,</span>
544
+ <span class="n">interaction</span><span class="o">=</span><span class="n">brushsel_date</span><span class="p">,</span>
545
+ <span class="p">)</span>
546
+
547
+ <span class="n">VBox</span><span class="p">([</span><span class="n">db_brush</span><span class="p">,</span> <span class="n">fig_brush_sel</span><span class="p">])</span>
548
+ </pre></div>
549
+
550
+ </div>
551
+ </div>
552
+ </div>
553
+
554
+ </div>
555
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
556
+ <div class="text_cell_render border-box-sizing rendered_html">
557
+ <h1 id="Scatter-Chart-Selectors">Scatter Chart Selectors<a class="anchor-link" href="#Scatter-Chart-Selectors">&#182;</a></h1>
558
+ </div>
559
+ </div>
560
+ </div>
561
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
562
+ <div class="text_cell_render border-box-sizing rendered_html">
563
+ <h2 id="Brush-Selector">Brush Selector<a class="anchor-link" href="#Brush-Selector">&#182;</a></h2>
564
+ </div>
565
+ </div>
566
+ </div>
567
+
568
+
569
+
570
+ <div class="
571
+ cell border-box-sizing code_cell rendered">
572
+ <div class="input">
573
+
574
+ <div class="inner_cell">
575
+ <div class="input_area">
576
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">date_fmt</span> <span class="o">=</span> <span class="s2">&quot;%m-</span><span class="si">%d</span><span class="s2">-%Y&quot;</span>
577
+
578
+ <span class="n">sec2_data</span> <span class="o">=</span> <span class="n">price_data</span><span class="p">[</span><span class="n">symbol2</span><span class="p">]</span><span class="o">.</span><span class="n">values</span>
579
+ <span class="n">dates</span> <span class="o">=</span> <span class="n">price_data</span><span class="o">.</span><span class="n">index</span><span class="o">.</span><span class="n">values</span>
580
+ </pre></div>
581
+
582
+ </div>
583
+ </div>
584
+ </div>
585
+
586
+ </div>
587
+
588
+
589
+
590
+ <div class="
591
+ cell border-box-sizing code_cell rendered">
592
+ <div class="input">
593
+
594
+ <div class="inner_cell">
595
+ <div class="input_area">
596
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">sc_x</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
597
+ <span class="n">sc_y</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
598
+
599
+ <span class="n">scatt</span> <span class="o">=</span> <span class="n">Scatter</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">prices</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">sec2_data</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">sc_x</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">sc_y</span><span class="p">})</span>
600
+
601
+ <span class="n">sc_xax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="p">(</span><span class="n">symbol</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">sc_x</span><span class="p">)</span>
602
+ <span class="n">sc_yax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="p">(</span><span class="n">symbol2</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">sc_y</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">)</span>
603
+ </pre></div>
604
+
605
+ </div>
606
+ </div>
607
+ </div>
608
+
609
+ </div>
610
+
611
+
612
+
613
+ <div class="
614
+ cell border-box-sizing code_cell rendered">
615
+ <div class="input">
616
+
617
+ <div class="inner_cell">
618
+ <div class="input_area">
619
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">br_sel</span> <span class="o">=</span> <span class="n">BrushSelector</span><span class="p">(</span><span class="n">x_scale</span><span class="o">=</span><span class="n">sc_x</span><span class="p">,</span> <span class="n">y_scale</span><span class="o">=</span><span class="n">sc_y</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">scatt</span><span class="p">],</span> <span class="n">color</span><span class="o">=</span><span class="s2">&quot;red&quot;</span><span class="p">)</span>
620
+
621
+ <span class="n">db_scat_brush</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="s2">&quot;[]&quot;</span><span class="p">)</span>
622
+ </pre></div>
623
+
624
+ </div>
625
+ </div>
626
+ </div>
627
+
628
+ </div>
629
+
630
+
631
+
632
+ <div class="
633
+ cell border-box-sizing code_cell rendered">
634
+ <div class="input">
635
+
636
+ <div class="inner_cell">
637
+ <div class="input_area">
638
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## call back for the selector</span>
639
+ <span class="k">def</span> <span class="nf">brush_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
640
+ <span class="n">db_scat_brush</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">br_sel</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
641
+ </pre></div>
642
+
643
+ </div>
644
+ </div>
645
+ </div>
646
+
647
+ </div>
648
+
649
+
650
+
651
+ <div class="
652
+ cell border-box-sizing code_cell rendered">
653
+ <div class="input">
654
+
655
+ <div class="inner_cell">
656
+ <div class="input_area">
657
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">br_sel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">brush_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;brushing&quot;</span><span class="p">])</span>
658
+ </pre></div>
659
+
660
+ </div>
661
+ </div>
662
+ </div>
663
+
664
+ </div>
665
+
666
+
667
+
668
+ <div class="
669
+ cell border-box-sizing code_cell rendered">
670
+ <div class="input">
671
+
672
+ <div class="inner_cell">
673
+ <div class="input_area">
674
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">fig_scat_brush</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
675
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">scatt</span><span class="p">],</span>
676
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">sc_xax</span><span class="p">,</span> <span class="n">sc_yax</span><span class="p">],</span>
677
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Scatter Chart Brush Selector Example&quot;</span><span class="p">,</span>
678
+ <span class="n">interaction</span><span class="o">=</span><span class="n">br_sel</span><span class="p">,</span>
679
+ <span class="p">)</span>
680
+ </pre></div>
681
+
682
+ </div>
683
+ </div>
684
+ </div>
685
+
686
+ </div>
687
+
688
+
689
+
690
+ <div class="
691
+ cell border-box-sizing code_cell rendered">
692
+ <div class="input">
693
+
694
+ <div class="inner_cell">
695
+ <div class="input_area">
696
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">VBox</span><span class="p">([</span><span class="n">db_scat_brush</span><span class="p">,</span> <span class="n">fig_scat_brush</span><span class="p">])</span>
697
+ </pre></div>
698
+
699
+ </div>
700
+ </div>
701
+ </div>
702
+
703
+ </div>
704
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
705
+ <div class="text_cell_render border-box-sizing rendered_html">
706
+ <h2 id="Brush-Selector-with-Date-Values">Brush Selector with Date Values<a class="anchor-link" href="#Brush-Selector-with-Date-Values">&#182;</a></h2>
707
+ </div>
708
+ </div>
709
+ </div>
710
+
711
+
712
+
713
+ <div class="
714
+ cell border-box-sizing code_cell rendered">
715
+ <div class="input">
716
+
717
+ <div class="inner_cell">
718
+ <div class="input_area">
719
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">sc_brush_dt_x</span> <span class="o">=</span> <span class="n">DateScale</span><span class="p">(</span><span class="n">date_format</span><span class="o">=</span><span class="n">date_fmt</span><span class="p">)</span>
720
+ <span class="n">sc_brush_dt_y</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
721
+
722
+ <span class="n">scatt2</span> <span class="o">=</span> <span class="n">Scatter</span><span class="p">(</span>
723
+ <span class="n">x</span><span class="o">=</span><span class="n">dates_actual</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">sec2_data</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">sc_brush_dt_x</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">sc_brush_dt_y</span><span class="p">}</span>
724
+ <span class="p">)</span>
725
+ </pre></div>
726
+
727
+ </div>
728
+ </div>
729
+ </div>
730
+
731
+ </div>
732
+
733
+
734
+
735
+ <div class="
736
+ cell border-box-sizing code_cell rendered">
737
+ <div class="input">
738
+
739
+ <div class="inner_cell">
740
+ <div class="input_area">
741
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">br_sel_dt</span> <span class="o">=</span> <span class="n">BrushSelector</span><span class="p">(</span><span class="n">x_scale</span><span class="o">=</span><span class="n">sc_brush_dt_x</span><span class="p">,</span> <span class="n">y_scale</span><span class="o">=</span><span class="n">sc_brush_dt_y</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">scatt2</span><span class="p">])</span>
742
+ </pre></div>
743
+
744
+ </div>
745
+ </div>
746
+ </div>
747
+
748
+ </div>
749
+
750
+
751
+
752
+ <div class="
753
+ cell border-box-sizing code_cell rendered">
754
+ <div class="input">
755
+
756
+ <div class="inner_cell">
757
+ <div class="input_area">
758
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">db_brush_dt</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">br_sel_dt</span><span class="o">.</span><span class="n">selected</span><span class="p">))</span>
759
+ </pre></div>
760
+
761
+ </div>
762
+ </div>
763
+ </div>
764
+
765
+ </div>
766
+
767
+
768
+
769
+ <div class="
770
+ cell border-box-sizing code_cell rendered">
771
+ <div class="input">
772
+
773
+ <div class="inner_cell">
774
+ <div class="input_area">
775
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## call back for the selector</span>
776
+ <span class="k">def</span> <span class="nf">brush_dt_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
777
+ <span class="n">db_brush_dt</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">br_sel_dt</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
778
+ </pre></div>
779
+
780
+ </div>
781
+ </div>
782
+ </div>
783
+
784
+ </div>
785
+
786
+
787
+
788
+ <div class="
789
+ cell border-box-sizing code_cell rendered">
790
+ <div class="input">
791
+
792
+ <div class="inner_cell">
793
+ <div class="input_area">
794
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">br_sel_dt</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">brush_dt_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;brushing&quot;</span><span class="p">])</span>
795
+ </pre></div>
796
+
797
+ </div>
798
+ </div>
799
+ </div>
800
+
801
+ </div>
802
+
803
+
804
+
805
+ <div class="
806
+ cell border-box-sizing code_cell rendered">
807
+ <div class="input">
808
+
809
+ <div class="inner_cell">
810
+ <div class="input_area">
811
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">sc_xax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="p">(</span><span class="n">symbol</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">sc_brush_dt_x</span><span class="p">)</span>
812
+ <span class="n">sc_yax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="p">(</span><span class="n">symbol2</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">sc_brush_dt_y</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">)</span>
813
+ <span class="n">fig_brush_dt</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
814
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">scatt2</span><span class="p">],</span>
815
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">sc_xax</span><span class="p">,</span> <span class="n">sc_yax</span><span class="p">],</span>
816
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Brush Selector with Dates Example&quot;</span><span class="p">,</span>
817
+ <span class="n">interaction</span><span class="o">=</span><span class="n">br_sel_dt</span><span class="p">,</span>
818
+ <span class="p">)</span>
819
+ </pre></div>
820
+
821
+ </div>
822
+ </div>
823
+ </div>
824
+
825
+ </div>
826
+
827
+
828
+
829
+ <div class="
830
+ cell border-box-sizing code_cell rendered">
831
+ <div class="input">
832
+
833
+ <div class="inner_cell">
834
+ <div class="input_area">
835
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">VBox</span><span class="p">([</span><span class="n">db_brush_dt</span><span class="p">,</span> <span class="n">fig_brush_dt</span><span class="p">])</span>
836
+ </pre></div>
837
+
838
+ </div>
839
+ </div>
840
+ </div>
841
+
842
+ </div>
843
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
844
+ <div class="text_cell_render border-box-sizing rendered_html">
845
+ <h1 id="Histogram-Selectors">Histogram Selectors<a class="anchor-link" href="#Histogram-Selectors">&#182;</a></h1>
846
+ </div>
847
+ </div>
848
+ </div>
849
+
850
+
851
+
852
+ <div class="
853
+ cell border-box-sizing code_cell rendered">
854
+ <div class="input">
855
+
856
+ <div class="inner_cell">
857
+ <div class="input_area">
858
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## call back for selectors</span>
859
+ <span class="k">def</span> <span class="nf">interval_change_callback</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
860
+ <span class="n">db3</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
861
+
862
+
863
+ <span class="c1">## call back for the selector</span>
864
+ <span class="k">def</span> <span class="nf">brush_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
865
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">br_intsel</span><span class="o">.</span><span class="n">brushing</span><span class="p">:</span>
866
+ <span class="n">db3</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">br_intsel</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
867
+ </pre></div>
868
+
869
+ </div>
870
+ </div>
871
+ </div>
872
+
873
+ </div>
874
+
875
+
876
+
877
+ <div class="
878
+ cell border-box-sizing code_cell rendered">
879
+ <div class="input">
880
+
881
+ <div class="inner_cell">
882
+ <div class="input_area">
883
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">returns</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">prices</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="n">prices</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span>
884
+ <span class="n">hist_x</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
885
+ <span class="n">hist_y</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
886
+ <span class="n">hist</span> <span class="o">=</span> <span class="n">Hist</span><span class="p">(</span><span class="n">sample</span><span class="o">=</span><span class="n">returns</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;sample&quot;</span><span class="p">:</span> <span class="n">hist_x</span><span class="p">,</span> <span class="s2">&quot;count&quot;</span><span class="p">:</span> <span class="n">hist_y</span><span class="p">})</span>
887
+
888
+ <span class="n">br_intsel</span> <span class="o">=</span> <span class="n">BrushIntervalSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">hist_x</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">hist</span><span class="p">])</span>
889
+ <span class="n">br_intsel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">brush_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
890
+ <span class="n">br_intsel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">brush_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;brushing&quot;</span><span class="p">])</span>
891
+
892
+ <span class="n">db3</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">()</span>
893
+ <span class="n">db3</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">br_intsel</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
894
+
895
+ <span class="n">h_xax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span>
896
+ <span class="n">scale</span><span class="o">=</span><span class="n">hist_x</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Returns&quot;</span><span class="p">,</span> <span class="n">grids</span><span class="o">=</span><span class="s2">&quot;off&quot;</span><span class="p">,</span> <span class="n">set_ticks</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">tick_format</span><span class="o">=</span><span class="s2">&quot;0.2%&quot;</span>
897
+ <span class="p">)</span>
898
+ <span class="n">h_yax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">hist_y</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Freq&quot;</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">,</span> <span class="n">grid_lines</span><span class="o">=</span><span class="s2">&quot;none&quot;</span><span class="p">)</span>
899
+
900
+ <span class="n">fig_hist</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
901
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">hist</span><span class="p">],</span>
902
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">h_xax</span><span class="p">,</span> <span class="n">h_yax</span><span class="p">],</span>
903
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Histogram Selection Example&quot;</span><span class="p">,</span>
904
+ <span class="n">interaction</span><span class="o">=</span><span class="n">br_intsel</span><span class="p">,</span>
905
+ <span class="p">)</span>
906
+ <span class="n">VBox</span><span class="p">([</span><span class="n">db3</span><span class="p">,</span> <span class="n">fig_hist</span><span class="p">])</span>
907
+ </pre></div>
908
+
909
+ </div>
910
+ </div>
911
+ </div>
912
+
913
+ </div>
914
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
915
+ <div class="text_cell_render border-box-sizing rendered_html">
916
+ <h2 id="Multi-Selector">Multi Selector<a class="anchor-link" href="#Multi-Selector">&#182;</a></h2><ul>
917
+ <li>This selector provides the ability to have multiple brush selectors on the same graph.</li>
918
+ <li>The first brush works like a regular brush.</li>
919
+ <li><code>Ctrl + click</code> creates a new brush, which works like the regular brush.</li>
920
+ <li>The <code>active</code> brush has a Green border while all the <code>inactive</code> brushes have a Red border.</li>
921
+ <li><code>Shift + click</code> deactivates the current <code>active</code> brush. Now, click on any <code>inactive</code> brush to make it <code>active</code>.</li>
922
+ <li><code>Ctrl + Alt + Shift + click</code> clears and resets all the brushes.</li>
923
+ </ul>
924
+
925
+ </div>
926
+ </div>
927
+ </div>
928
+
929
+
930
+
931
+ <div class="
932
+ cell border-box-sizing code_cell rendered">
933
+ <div class="input">
934
+
935
+ <div class="inner_cell">
936
+ <div class="input_area">
937
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">multi_sel_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
938
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">multi_sel</span><span class="o">.</span><span class="n">brushing</span><span class="p">:</span>
939
+ <span class="n">db4</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">multi_sel</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
940
+ </pre></div>
941
+
942
+ </div>
943
+ </div>
944
+ </div>
945
+
946
+ </div>
947
+
948
+
949
+
950
+ <div class="
951
+ cell border-box-sizing code_cell rendered">
952
+ <div class="input">
953
+
954
+ <div class="inner_cell">
955
+ <div class="input_area">
956
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">line_x</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
957
+ <span class="n">line_y</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
958
+ <span class="n">line</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span>
959
+ <span class="n">x</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="n">y</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">randn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">line_x</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">line_y</span><span class="p">}</span>
960
+ <span class="p">)</span>
961
+
962
+ <span class="n">multi_sel</span> <span class="o">=</span> <span class="n">MultiSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">line_x</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">line</span><span class="p">])</span>
963
+ <span class="n">multi_sel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">multi_sel_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
964
+ <span class="n">multi_sel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">multi_sel_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;brushing&quot;</span><span class="p">])</span>
965
+
966
+ <span class="n">db4</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">()</span>
967
+ <span class="n">db4</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">multi_sel</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
968
+
969
+ <span class="n">h_xax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">line_x</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Returns&quot;</span><span class="p">,</span> <span class="n">grid_lines</span><span class="o">=</span><span class="s2">&quot;none&quot;</span><span class="p">)</span>
970
+ <span class="n">h_yax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">hist_y</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Freq&quot;</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">,</span> <span class="n">grid_lines</span><span class="o">=</span><span class="s2">&quot;none&quot;</span><span class="p">)</span>
971
+
972
+ <span class="n">fig_multi</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
973
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">line</span><span class="p">],</span>
974
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">h_xax</span><span class="p">,</span> <span class="n">h_yax</span><span class="p">],</span>
975
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Multi-Selector Example&quot;</span><span class="p">,</span>
976
+ <span class="n">interaction</span><span class="o">=</span><span class="n">multi_sel</span><span class="p">,</span>
977
+ <span class="p">)</span>
978
+ <span class="n">VBox</span><span class="p">([</span><span class="n">db4</span><span class="p">,</span> <span class="n">fig_multi</span><span class="p">])</span>
979
+ </pre></div>
980
+
981
+ </div>
982
+ </div>
983
+ </div>
984
+
985
+ </div>
986
+
987
+
988
+
989
+ <div class="
990
+ cell border-box-sizing code_cell rendered">
991
+ <div class="input">
992
+
993
+ <div class="inner_cell">
994
+ <div class="input_area">
995
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># changing the names of the intervals.</span>
996
+ <span class="n">multi_sel</span><span class="o">.</span><span class="n">names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&quot;int1&quot;</span><span class="p">,</span> <span class="s2">&quot;int2&quot;</span><span class="p">,</span> <span class="s2">&quot;int3&quot;</span><span class="p">]</span>
997
+ </pre></div>
998
+
999
+ </div>
1000
+ </div>
1001
+ </div>
1002
+
1003
+ </div>
1004
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
1005
+ <div class="text_cell_render border-box-sizing rendered_html">
1006
+ <h2 id="Multi-Selector-with-Date-X">Multi Selector with Date X<a class="anchor-link" href="#Multi-Selector-with-Date-X">&#182;</a></h2>
1007
+ </div>
1008
+ </div>
1009
+ </div>
1010
+
1011
+
1012
+
1013
+ <div class="
1014
+ cell border-box-sizing code_cell rendered">
1015
+ <div class="input">
1016
+
1017
+ <div class="inner_cell">
1018
+ <div class="input_area">
1019
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">multi_sel_dt_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
1020
+ <span class="k">if</span> <span class="ow">not</span> <span class="n">multi_sel_dt</span><span class="o">.</span><span class="n">brushing</span><span class="p">:</span>
1021
+ <span class="n">db_multi_dt</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">multi_sel_dt</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
1022
+ </pre></div>
1023
+
1024
+ </div>
1025
+ </div>
1026
+ </div>
1027
+
1028
+ </div>
1029
+
1030
+
1031
+
1032
+ <div class="
1033
+ cell border-box-sizing code_cell rendered">
1034
+ <div class="input">
1035
+
1036
+ <div class="inner_cell">
1037
+ <div class="input_area">
1038
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">line_dt_x</span> <span class="o">=</span> <span class="n">DateScale</span><span class="p">(</span><span class="nb">min</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">datetime64</span><span class="p">(</span><span class="n">py_dtime</span><span class="p">(</span><span class="mi">2007</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
1039
+ <span class="n">line_dt_y</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
1040
+ <span class="n">line_dt</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span>
1041
+ <span class="n">x</span><span class="o">=</span><span class="n">dates_actual</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">sec2_data</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">line_dt_x</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">line_dt_y</span><span class="p">},</span> <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;red&quot;</span><span class="p">]</span>
1042
+ <span class="p">)</span>
1043
+
1044
+ <span class="n">multi_sel_dt</span> <span class="o">=</span> <span class="n">MultiSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">line_dt_x</span><span class="p">)</span>
1045
+ <span class="n">multi_sel_dt</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">multi_sel_dt_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
1046
+ <span class="n">multi_sel_dt</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">multi_sel_dt_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;brushing&quot;</span><span class="p">])</span>
1047
+
1048
+ <span class="n">db_multi_dt</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">()</span>
1049
+ <span class="n">db_multi_dt</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">multi_sel_dt</span><span class="o">.</span><span class="n">selected</span><span class="p">)</span>
1050
+
1051
+ <span class="n">h_xax_dt</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">line_dt_x</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Returns&quot;</span><span class="p">,</span> <span class="n">grid_lines</span><span class="o">=</span><span class="s2">&quot;none&quot;</span><span class="p">)</span>
1052
+ <span class="n">h_yax_dt</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span>
1053
+ <span class="n">scale</span><span class="o">=</span><span class="n">line_dt_y</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Freq&quot;</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">,</span> <span class="n">grid_lines</span><span class="o">=</span><span class="s2">&quot;none&quot;</span>
1054
+ <span class="p">)</span>
1055
+
1056
+ <span class="n">fig_multi_dt</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
1057
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">line_dt</span><span class="p">],</span>
1058
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">h_xax_dt</span><span class="p">,</span> <span class="n">h_yax_dt</span><span class="p">],</span>
1059
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Multi-Selector with Date Example&quot;</span><span class="p">,</span>
1060
+ <span class="n">interaction</span><span class="o">=</span><span class="n">multi_sel_dt</span><span class="p">,</span>
1061
+ <span class="p">)</span>
1062
+ <span class="n">VBox</span><span class="p">([</span><span class="n">db_multi_dt</span><span class="p">,</span> <span class="n">fig_multi_dt</span><span class="p">])</span>
1063
+ </pre></div>
1064
+
1065
+ </div>
1066
+ </div>
1067
+ </div>
1068
+
1069
+ </div>
1070
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
1071
+ <div class="text_cell_render border-box-sizing rendered_html">
1072
+ <h2 id="Lasso-Selector">Lasso Selector<a class="anchor-link" href="#Lasso-Selector">&#182;</a></h2>
1073
+ </div>
1074
+ </div>
1075
+ </div>
1076
+
1077
+
1078
+
1079
+ <div class="
1080
+ cell border-box-sizing code_cell rendered">
1081
+ <div class="input">
1082
+
1083
+ <div class="inner_cell">
1084
+ <div class="input_area">
1085
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">lasso_sel</span> <span class="o">=</span> <span class="n">LassoSelector</span><span class="p">()</span>
1086
+ </pre></div>
1087
+
1088
+ </div>
1089
+ </div>
1090
+ </div>
1091
+
1092
+ </div>
1093
+
1094
+
1095
+
1096
+ <div class="
1097
+ cell border-box-sizing code_cell rendered">
1098
+ <div class="input">
1099
+
1100
+ <div class="inner_cell">
1101
+ <div class="input_area">
1102
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">xs</span><span class="p">,</span> <span class="n">ys</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">(),</span> <span class="n">LinearScale</span><span class="p">()</span>
1103
+ <span class="n">data</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">arange</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span>
1104
+ <span class="n">line_lasso</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">xs</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">ys</span><span class="p">})</span>
1105
+ <span class="n">scatter_lasso</span> <span class="o">=</span> <span class="n">Scatter</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">xs</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">ys</span><span class="p">},</span> <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;skyblue&quot;</span><span class="p">])</span>
1106
+ <span class="n">bar_lasso</span> <span class="o">=</span> <span class="n">Bars</span><span class="p">(</span><span class="n">x</span><span class="o">=</span><span class="n">data</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">data</span> <span class="o">/</span> <span class="mf">2.0</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">xs</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">ys</span><span class="p">})</span>
1107
+ <span class="n">xax_lasso</span><span class="p">,</span> <span class="n">yax_lasso</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">xs</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;X&quot;</span><span class="p">),</span> <span class="n">Axis</span><span class="p">(</span>
1108
+ <span class="n">scale</span><span class="o">=</span><span class="n">ys</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Y&quot;</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span>
1109
+ <span class="p">)</span>
1110
+ <span class="n">fig_lasso</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span>
1111
+ <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">scatter_lasso</span><span class="p">,</span> <span class="n">line_lasso</span><span class="p">,</span> <span class="n">bar_lasso</span><span class="p">],</span>
1112
+ <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">xax_lasso</span><span class="p">,</span> <span class="n">yax_lasso</span><span class="p">],</span>
1113
+ <span class="n">title</span><span class="o">=</span><span class="s2">&quot;Lasso Selector Example&quot;</span><span class="p">,</span>
1114
+ <span class="n">interaction</span><span class="o">=</span><span class="n">lasso_sel</span><span class="p">,</span>
1115
+ <span class="p">)</span>
1116
+ <span class="n">lasso_sel</span><span class="o">.</span><span class="n">marks</span> <span class="o">=</span> <span class="p">[</span><span class="n">scatter_lasso</span><span class="p">,</span> <span class="n">line_lasso</span><span class="p">]</span>
1117
+ <span class="n">fig_lasso</span>
1118
+ </pre></div>
1119
+
1120
+ </div>
1121
+ </div>
1122
+ </div>
1123
+
1124
+ </div>
1125
+
1126
+
1127
+
1128
+ <div class="
1129
+ cell border-box-sizing code_cell rendered">
1130
+ <div class="input">
1131
+
1132
+ <div class="inner_cell">
1133
+ <div class="input_area">
1134
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">scatter_lasso</span><span class="o">.</span><span class="n">selected</span><span class="p">,</span> <span class="n">line_lasso</span><span class="o">.</span><span class="n">selected</span>
1135
+ </pre></div>
1136
+
1137
+ </div>
1138
+ </div>
1139
+ </div>
1140
+
1141
+ </div>
1142
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
1143
+ <div class="text_cell_render border-box-sizing rendered_html">
1144
+ <h2 id="Pan-Zoom">Pan Zoom<a class="anchor-link" href="#Pan-Zoom">&#182;</a></h2>
1145
+ </div>
1146
+ </div>
1147
+ </div>
1148
+
1149
+
1150
+
1151
+ <div class="
1152
+ cell border-box-sizing code_cell rendered">
1153
+ <div class="input">
1154
+
1155
+ <div class="inner_cell">
1156
+ <div class="input_area">
1157
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">xs_pz</span> <span class="o">=</span> <span class="n">DateScale</span><span class="p">(</span><span class="nb">min</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">datetime64</span><span class="p">(</span><span class="n">py_dtime</span><span class="p">(</span><span class="mi">2007</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
1158
+ <span class="n">ys_pz</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
1159
+ <span class="n">line_pz</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span>
1160
+ <span class="n">x</span><span class="o">=</span><span class="n">dates_actual</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">sec2_data</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">xs_pz</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">ys_pz</span><span class="p">},</span> <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;red&quot;</span><span class="p">]</span>
1161
+ <span class="p">)</span>
1162
+
1163
+ <span class="n">panzoom</span> <span class="o">=</span> <span class="n">PanZoom</span><span class="p">(</span><span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="p">[</span><span class="n">xs_pz</span><span class="p">],</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="p">[</span><span class="n">ys_pz</span><span class="p">]})</span>
1164
+ <span class="n">xax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">xs_pz</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Date&quot;</span><span class="p">,</span> <span class="n">grids</span><span class="o">=</span><span class="s2">&quot;off&quot;</span><span class="p">)</span>
1165
+ <span class="n">yax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">ys_pz</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Price&quot;</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">,</span> <span class="n">grid_lines</span><span class="o">=</span><span class="s2">&quot;none&quot;</span><span class="p">)</span>
1166
+
1167
+ <span class="n">Figure</span><span class="p">(</span><span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">line_pz</span><span class="p">],</span> <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">xax</span><span class="p">,</span> <span class="n">yax</span><span class="p">],</span> <span class="n">interaction</span><span class="o">=</span><span class="n">panzoom</span><span class="p">)</span>
1168
+ </pre></div>
1169
+
1170
+ </div>
1171
+ </div>
1172
+ </div>
1173
+
1174
+ </div>
1175
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
1176
+ <div class="text_cell_render border-box-sizing rendered_html">
1177
+ <h2 id="Hand-Draw">Hand Draw<a class="anchor-link" href="#Hand-Draw">&#182;</a></h2>
1178
+ </div>
1179
+ </div>
1180
+ </div>
1181
+
1182
+
1183
+
1184
+ <div class="
1185
+ cell border-box-sizing code_cell rendered">
1186
+ <div class="input">
1187
+
1188
+ <div class="inner_cell">
1189
+ <div class="input_area">
1190
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">xs_hd</span> <span class="o">=</span> <span class="n">DateScale</span><span class="p">(</span><span class="nb">min</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">datetime64</span><span class="p">(</span><span class="n">py_dtime</span><span class="p">(</span><span class="mi">2007</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">)))</span>
1191
+ <span class="n">ys_hd</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
1192
+ <span class="n">line_hd</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span>
1193
+ <span class="n">x</span><span class="o">=</span><span class="n">dates_actual</span><span class="p">,</span> <span class="n">y</span><span class="o">=</span><span class="n">sec2_data</span><span class="p">,</span> <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">xs_hd</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">ys_hd</span><span class="p">},</span> <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;red&quot;</span><span class="p">]</span>
1194
+ <span class="p">)</span>
1195
+
1196
+ <span class="n">handdraw</span> <span class="o">=</span> <span class="n">HandDraw</span><span class="p">(</span><span class="n">lines</span><span class="o">=</span><span class="n">line_hd</span><span class="p">)</span>
1197
+ <span class="n">xax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">xs_hd</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Date&quot;</span><span class="p">,</span> <span class="n">grid_lines</span><span class="o">=</span><span class="s2">&quot;none&quot;</span><span class="p">)</span>
1198
+ <span class="n">yax</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">ys_hd</span><span class="p">,</span> <span class="n">label</span><span class="o">=</span><span class="s2">&quot;Price&quot;</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">,</span> <span class="n">grid_lines</span><span class="o">=</span><span class="s2">&quot;none&quot;</span><span class="p">)</span>
1199
+
1200
+ <span class="n">Figure</span><span class="p">(</span><span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">line_hd</span><span class="p">],</span> <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">xax</span><span class="p">,</span> <span class="n">yax</span><span class="p">],</span> <span class="n">interaction</span><span class="o">=</span><span class="n">handdraw</span><span class="p">)</span>
1201
+ </pre></div>
1202
+
1203
+ </div>
1204
+ </div>
1205
+ </div>
1206
+
1207
+ </div>
1208
+ <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
1209
+ <div class="text_cell_render border-box-sizing rendered_html">
1210
+ <h1 id="Unified-Figure-with-All-Interactions">Unified Figure with All Interactions<a class="anchor-link" href="#Unified-Figure-with-All-Interactions">&#182;</a></h1>
1211
+ </div>
1212
+ </div>
1213
+ </div>
1214
+
1215
+
1216
+
1217
+ <div class="
1218
+ cell border-box-sizing code_cell rendered">
1219
+ <div class="input">
1220
+
1221
+ <div class="inner_cell">
1222
+ <div class="input_area">
1223
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="n">dt_x</span> <span class="o">=</span> <span class="n">DateScale</span><span class="p">(</span><span class="n">date_format</span><span class="o">=</span><span class="n">date_fmt</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="n">py_dtime</span><span class="p">(</span><span class="mi">2007</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
1224
+ <span class="n">lc1_x</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
1225
+ <span class="n">lc2_y</span> <span class="o">=</span> <span class="n">LinearScale</span><span class="p">()</span>
1226
+
1227
+ <span class="n">lc2</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span>
1228
+ <span class="n">x</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">10.0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">prices</span><span class="p">)),</span>
1229
+ <span class="n">y</span><span class="o">=</span><span class="n">prices</span> <span class="o">*</span> <span class="mf">0.25</span><span class="p">,</span>
1230
+ <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">lc1_x</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">lc2_y</span><span class="p">},</span>
1231
+ <span class="n">display_legend</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
1232
+ <span class="n">labels</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;Security 1&quot;</span><span class="p">],</span>
1233
+ <span class="p">)</span>
1234
+
1235
+ <span class="n">lc3</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span>
1236
+ <span class="n">x</span><span class="o">=</span><span class="n">dates_actual</span><span class="p">,</span>
1237
+ <span class="n">y</span><span class="o">=</span><span class="n">sec2_data</span><span class="p">,</span>
1238
+ <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">dt_x</span><span class="p">,</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">lc2_y</span><span class="p">},</span>
1239
+ <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;red&quot;</span><span class="p">],</span>
1240
+ <span class="n">display_legend</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
1241
+ <span class="n">labels</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;Security 2&quot;</span><span class="p">],</span>
1242
+ <span class="p">)</span>
1243
+
1244
+ <span class="n">lc4</span> <span class="o">=</span> <span class="n">Lines</span><span class="p">(</span>
1245
+ <span class="n">x</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">10.0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">prices</span><span class="p">)),</span>
1246
+ <span class="n">y</span><span class="o">=</span><span class="n">sec2_data</span> <span class="o">*</span> <span class="mf">0.75</span><span class="p">,</span>
1247
+ <span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="n">LinearScale</span><span class="p">(</span><span class="nb">min</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="nb">max</span><span class="o">=</span><span class="mi">10</span><span class="p">),</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="n">lc2_y</span><span class="p">},</span>
1248
+ <span class="n">colors</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;green&quot;</span><span class="p">],</span>
1249
+ <span class="n">display_legend</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span>
1250
+ <span class="n">labels</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;Security 2 squared&quot;</span><span class="p">],</span>
1251
+ <span class="p">)</span>
1252
+
1253
+ <span class="n">x_ax1</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="s2">&quot;Date&quot;</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="n">dt_x</span><span class="p">)</span>
1254
+ <span class="n">x_ax2</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="s2">&quot;Time&quot;</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="n">lc1_x</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="s2">&quot;top&quot;</span><span class="p">,</span> <span class="n">grid_lines</span><span class="o">=</span><span class="s2">&quot;none&quot;</span><span class="p">)</span>
1255
+ <span class="n">x_ay2</span> <span class="o">=</span> <span class="n">Axis</span><span class="p">(</span><span class="n">label</span><span class="o">=</span><span class="p">(</span><span class="n">symbol</span> <span class="o">+</span> <span class="s2">&quot; Price&quot;</span><span class="p">),</span> <span class="n">scale</span><span class="o">=</span><span class="n">lc2_y</span><span class="p">,</span> <span class="n">orientation</span><span class="o">=</span><span class="s2">&quot;vertical&quot;</span><span class="p">)</span>
1256
+
1257
+
1258
+ <span class="n">fig</span> <span class="o">=</span> <span class="n">Figure</span><span class="p">(</span><span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc2</span><span class="p">,</span> <span class="n">lc3</span><span class="p">,</span> <span class="n">lc4</span><span class="p">],</span> <span class="n">axes</span><span class="o">=</span><span class="p">[</span><span class="n">x_ax1</span><span class="p">,</span> <span class="n">x_ax2</span><span class="p">,</span> <span class="n">x_ay2</span><span class="p">])</span>
1259
+ </pre></div>
1260
+
1261
+ </div>
1262
+ </div>
1263
+ </div>
1264
+
1265
+ </div>
1266
+
1267
+
1268
+
1269
+ <div class="
1270
+ cell border-box-sizing code_cell rendered">
1271
+ <div class="input">
1272
+
1273
+ <div class="inner_cell">
1274
+ <div class="input_area">
1275
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## declaring the interactions</span>
1276
+ <span class="n">multi_sel</span> <span class="o">=</span> <span class="n">MultiSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">dt_x</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc2</span><span class="p">,</span> <span class="n">lc3</span><span class="p">])</span>
1277
+ <span class="n">br_intsel</span> <span class="o">=</span> <span class="n">BrushIntervalSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">lc1_x</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc2</span><span class="p">,</span> <span class="n">lc3</span><span class="p">])</span>
1278
+ <span class="n">index_sel</span> <span class="o">=</span> <span class="n">IndexSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">dt_x</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc2</span><span class="p">,</span> <span class="n">lc3</span><span class="p">])</span>
1279
+ <span class="n">int_sel</span> <span class="o">=</span> <span class="n">FastIntervalSelector</span><span class="p">(</span><span class="n">scale</span><span class="o">=</span><span class="n">dt_x</span><span class="p">,</span> <span class="n">marks</span><span class="o">=</span><span class="p">[</span><span class="n">lc3</span><span class="p">,</span> <span class="n">lc2</span><span class="p">])</span>
1280
+
1281
+ <span class="n">hd</span> <span class="o">=</span> <span class="n">HandDraw</span><span class="p">(</span><span class="n">lines</span><span class="o">=</span><span class="n">lc2</span><span class="p">)</span>
1282
+ <span class="n">hd2</span> <span class="o">=</span> <span class="n">HandDraw</span><span class="p">(</span><span class="n">lines</span><span class="o">=</span><span class="n">lc3</span><span class="p">)</span>
1283
+ <span class="n">pz</span> <span class="o">=</span> <span class="n">PanZoom</span><span class="p">(</span><span class="n">scales</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;x&quot;</span><span class="p">:</span> <span class="p">[</span><span class="n">dt_x</span><span class="p">],</span> <span class="s2">&quot;y&quot;</span><span class="p">:</span> <span class="p">[</span><span class="n">lc2_y</span><span class="p">]})</span>
1284
+
1285
+ <span class="n">deb</span> <span class="o">=</span> <span class="n">HTML</span><span class="p">()</span>
1286
+ <span class="n">deb</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="s2">&quot;[]&quot;</span>
1287
+ </pre></div>
1288
+
1289
+ </div>
1290
+ </div>
1291
+ </div>
1292
+
1293
+ </div>
1294
+
1295
+
1296
+
1297
+ <div class="
1298
+ cell border-box-sizing code_cell rendered">
1299
+ <div class="input">
1300
+
1301
+ <div class="inner_cell">
1302
+ <div class="input_area">
1303
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1">## Call back handler for the interactions</span>
1304
+ <span class="k">def</span> <span class="nf">test_callback</span><span class="p">(</span><span class="n">change</span><span class="p">):</span>
1305
+ <span class="n">deb</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">change</span><span class="o">.</span><span class="n">new</span><span class="p">)</span>
1306
+
1307
+
1308
+ <span class="n">multi_sel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">test_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
1309
+ <span class="n">br_intsel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">test_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
1310
+ <span class="n">index_sel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">test_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
1311
+ <span class="n">int_sel</span><span class="o">.</span><span class="n">observe</span><span class="p">(</span><span class="n">test_callback</span><span class="p">,</span> <span class="n">names</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;selected&quot;</span><span class="p">])</span>
1312
+ </pre></div>
1313
+
1314
+ </div>
1315
+ </div>
1316
+ </div>
1317
+
1318
+ </div>
1319
+
1320
+
1321
+
1322
+ <div class="
1323
+ cell border-box-sizing code_cell rendered">
1324
+ <div class="input">
1325
+
1326
+ <div class="inner_cell">
1327
+ <div class="input_area">
1328
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">collections</span> <span class="kn">import</span> <span class="n">OrderedDict</span>
1329
+
1330
+ <span class="n">selection_interacts</span> <span class="o">=</span> <span class="n">ToggleButtons</span><span class="p">(</span>
1331
+ <span class="n">options</span><span class="o">=</span><span class="n">OrderedDict</span><span class="p">(</span>
1332
+ <span class="p">[</span>
1333
+ <span class="p">(</span><span class="s2">&quot;HandDraw1&quot;</span><span class="p">,</span> <span class="n">hd</span><span class="p">),</span>
1334
+ <span class="p">(</span><span class="s2">&quot;HandDraw2&quot;</span><span class="p">,</span> <span class="n">hd2</span><span class="p">),</span>
1335
+ <span class="p">(</span><span class="s2">&quot;PanZoom&quot;</span><span class="p">,</span> <span class="n">pz</span><span class="p">),</span>
1336
+ <span class="p">(</span><span class="s2">&quot;FastIntervalSelector&quot;</span><span class="p">,</span> <span class="n">int_sel</span><span class="p">),</span>
1337
+ <span class="p">(</span><span class="s2">&quot;IndexSelector&quot;</span><span class="p">,</span> <span class="n">index_sel</span><span class="p">),</span>
1338
+ <span class="p">(</span><span class="s2">&quot;BrushIntervalSelector&quot;</span><span class="p">,</span> <span class="n">br_intsel</span><span class="p">),</span>
1339
+ <span class="p">(</span><span class="s2">&quot;MultiSelector&quot;</span><span class="p">,</span> <span class="n">multi_sel</span><span class="p">),</span>
1340
+ <span class="p">(</span><span class="s2">&quot;None&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">),</span>
1341
+ <span class="p">]</span>
1342
+ <span class="p">)</span>
1343
+ <span class="p">)</span>
1344
+
1345
+ <span class="n">link</span><span class="p">((</span><span class="n">selection_interacts</span><span class="p">,</span> <span class="s2">&quot;value&quot;</span><span class="p">),</span> <span class="p">(</span><span class="n">fig</span><span class="p">,</span> <span class="s2">&quot;interaction&quot;</span><span class="p">))</span>
1346
+ <span class="n">VBox</span><span class="p">([</span><span class="n">deb</span><span class="p">,</span> <span class="n">fig</span><span class="p">,</span> <span class="n">selection_interacts</span><span class="p">],</span> <span class="n">align_self</span><span class="o">=</span><span class="s2">&quot;stretch&quot;</span><span class="p">)</span>
1347
+ </pre></div>
1348
+
1349
+ </div>
1350
+ </div>
1351
+ </div>
1352
+
1353
+ </div>
1354
+
1355
+
1356
+
1357
+ <div class="
1358
+ cell border-box-sizing code_cell rendered">
1359
+ <div class="input">
1360
+
1361
+ <div class="inner_cell">
1362
+ <div class="input_area">
1363
+ <div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># Set the scales of lc4 to the ones of lc2 and check if panzoom pans the two.</span>
1364
+ <span class="n">lc4</span><span class="o">.</span><span class="n">scales</span> <span class="o">=</span> <span class="n">lc2</span><span class="o">.</span><span class="n">scales</span>
1365
+ </pre></div>
1366
+
1367
+ </div>
1368
+ </div>
1369
+ </div>
1370
+
1371
+ </div>
1372
+