├── tests ├── __init__.py ├── examples │ └── __init__.py ├── plugins │ ├── __init__.py │ └── constants.py └── integration │ ├── __init__.py │ ├── annotations │ ├── __init__.py │ └── screenshots │ │ ├── base__test_band__test_band.png │ │ ├── base__test_arrow__test_arrow.png │ │ ├── base__test_label__test_label.png │ │ ├── base__test_whisker__test_whisker.png │ │ ├── base__test_label_set__test_label_set.png │ │ ├── base__test_legend__test_legend_powered_by_source.png │ │ ├── base__test_color_bar__test_color_bar_with_scale_alpha.png │ │ ├── base__test_color_bar__test_color_bar_placement_and_render.png │ │ └── base__test_title__test_the_default_titles_settings_and_ensure_outside_any_axes.png │ ├── interaction │ ├── __init__.py │ └── screenshots │ │ ├── base__test_hover__test_hover_changes_color.png │ │ ├── base__test_datatable__test_data_table_selected_highlighting.png │ │ └── base__test_selection__test_line_rendering_with_selected_points.png │ ├── README.md │ └── plotting │ └── screenshots │ ├── base__test_plot_fill_properties__test_no_border_or_background_fill.png │ ├── base__test_data_table_preselection__test_data_table_preselection_python.png │ ├── base__test_rect_glyph_with_log_axis__test_rect_rendering_with_log_axis.png │ └── base__test_visible_property__test_visible_property_hides_things_correctly.png ├── bokeh ├── tests │ ├── __init__.py │ └── test_main_module.py ├── core │ ├── tests │ │ └── __init__.py │ ├── property │ │ ├── __init__.py │ │ └── tests │ │ │ └── __init__.py │ └── _templates │ │ ├── script_tag.html │ │ ├── plot_div.html │ │ └── notebook_div.html ├── server │ ├── static │ │ └── .keepdir │ ├── tests │ │ └── __init__.py │ ├── views │ │ └── __init__.py │ └── .gitignore ├── sphinxext │ ├── __init__.py │ └── _templates │ │ ├── collapsible_code_block_epilogue.html │ │ ├── prop_detail.rst │ │ ├── collapsible_code_block_prologue.html │ │ ├── options_detail.rst │ │ ├── gallery_page.rst │ │ ├── palette_detail.html │ │ ├── model_detail.rst │ │ ├── jinja_detail.rst │ │ └── plot_page.rst ├── util │ ├── tests │ │ └── __init__.py │ └── _plot_arg_helpers.py ├── command │ └── tests │ │ ├── __init__.py │ │ └── test_command_package.py ├── models │ ├── tests │ │ ├── __init__.py │ │ └── utils │ │ │ └── __init__.py │ └── widgets │ │ ├── icons.py │ │ └── __init__.py ├── plotting │ └── tests │ │ └── __init__.py ├── protocol │ ├── tests │ │ └── __init__.py │ └── messages │ │ └── tests │ │ ├── __init__.py │ │ ├── test_ack.py │ │ ├── test_error.py │ │ ├── test_ok.py │ │ ├── test_working.py │ │ ├── test_server_info_req.py │ │ └── test_server_info_reply.py ├── application │ ├── tests │ │ └── __init__.py │ └── handlers │ │ ├── tests │ │ └── __init__.py │ │ └── __init__.py ├── .coveragerc ├── sampledata │ ├── commits.txt.gz │ ├── icons │ │ ├── ie_32x32.png │ │ ├── chrome_32x32.png │ │ ├── opera_32x32.png │ │ ├── safari_32x32.png │ │ └── firefox_32x32.png │ ├── sea_surface_temperature.csv.gz │ ├── US_Regions_State_Boundaries.csv.gz │ ├── les_mis.py │ ├── olympics2014.py │ ├── movies_data.py │ ├── mtb.py │ ├── sprint.py │ ├── us_cities.py │ └── unemployment1948.py ├── __main__.py ├── client │ └── __init__.py └── themes │ └── __init__.py ├── scripts ├── __init__.py ├── .gitignore └── ci │ ├── test:js │ ├── test:quality │ ├── install:js │ ├── install:unit │ ├── test:docs │ ├── install:docs │ ├── install:quality │ ├── test:unit │ ├── test │ └── install:examples ├── examples ├── models │ ├── __init__.py │ ├── file │ │ ├── __init__.py │ │ ├── custom.less │ │ └── popup_helper.coffee │ ├── .gitignore │ └── server │ │ └── __init__.py ├── .gitignore ├── custom │ ├── gears │ │ └── __init__.py │ ├── .gitignore │ └── font-awesome │ │ ├── .gitignore │ │ └── font-awesome.py ├── plotting │ ├── __init__.py │ ├── file │ │ ├── __init__.py │ │ ├── .gitignore │ │ └── eclipse_data │ │ │ ├── upath17.dbf │ │ │ ├── upath17.shp │ │ │ └── upath17.shx │ ├── notebook │ │ ├── .gitignore │ │ └── README.md │ └── server │ │ ├── .gitignore │ │ ├── __init__.py │ │ └── README.md ├── embed │ ├── .gitignore │ └── simple │ │ └── README.md ├── howto │ ├── .gitignore │ ├── server_embed │ │ └── theme.yaml │ └── README.md ├── webgl │ └── .gitignore └── app │ ├── stocks │ └── .gitignore │ ├── simple_hdf5 │ ├── .gitignore │ └── create_hdf5.py │ ├── pivot │ └── downloads │ │ └── .gitignore │ ├── ohlc │ ├── theme.yaml │ └── README.md │ ├── spectrogram │ └── server_lifecycle.py │ ├── clustering │ └── theme.yaml │ ├── movies │ └── genres.txt │ └── weather │ └── README.md ├── bokehjs ├── examples │ ├── .gitignore │ ├── tap │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── burtin │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── charts │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── donut │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── hover │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── linked │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── stocks │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── anscombe │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── legends │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── categorical │ │ ├── .gitignore │ │ └── tsconfig.json │ ├── electron │ │ ├── .gitignore │ │ ├── README.md │ │ └── index.html │ └── examples.yaml ├── gulp │ ├── index.ts │ ├── tasks │ │ ├── help.ts │ │ ├── index.ts │ │ ├── default.ts │ │ ├── build.ts │ │ ├── watch.ts │ │ └── clean.ts │ └── utils.ts ├── src │ ├── coffee │ │ ├── api │ │ │ ├── main.ts │ │ │ ├── models.ts │ │ │ ├── typings │ │ │ │ ├── utils.d.ts │ │ │ │ ├── models │ │ │ │ │ ├── transforms.d.ts │ │ │ │ │ └── images.d.ts │ │ │ │ ├── selected.d.ts │ │ │ │ ├── views.d.ts │ │ │ │ └── types.d.ts │ │ │ └── linalg.ts │ │ ├── models │ │ │ ├── glyphs │ │ │ │ └── webgl │ │ │ │ │ └── main.ts │ │ │ ├── grids │ │ │ │ └── index.ts │ │ │ ├── callbacks │ │ │ │ └── index.ts │ │ │ ├── expressions │ │ │ │ ├── index.ts │ │ │ │ └── stack.coffee │ │ │ ├── canvas │ │ │ │ └── index.ts │ │ │ ├── axes │ │ │ │ ├── continuous_axis.coffee │ │ │ │ └── index.ts │ │ │ ├── graphs │ │ │ │ ├── index.ts │ │ │ │ └── layout_provider.coffee │ │ │ ├── widgets │ │ │ │ ├── abstract_icon.coffee │ │ │ │ ├── main.ts │ │ │ │ ├── tables │ │ │ │ │ ├── main.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── common.ts │ │ │ │ ├── password_input.coffee │ │ │ │ └── pretext.coffee │ │ │ ├── tickers │ │ │ │ ├── basic_ticker.coffee │ │ │ │ └── fixed_ticker.coffee │ │ │ ├── formatters │ │ │ │ ├── tick_formatter.coffee │ │ │ │ └── categorical_tick_formatter.coffee │ │ │ ├── renderers │ │ │ │ ├── index.ts │ │ │ │ └── guide_renderer.coffee │ │ │ ├── scales │ │ │ │ ├── index.ts │ │ │ │ └── categorical_scale.coffee │ │ │ ├── ranges │ │ │ │ ├── index.ts │ │ │ │ └── data_range.coffee │ │ │ ├── layouts │ │ │ │ ├── index.ts │ │ │ │ ├── row.coffee │ │ │ │ └── column.coffee │ │ │ ├── tools │ │ │ │ ├── gestures │ │ │ │ │ └── gesture_tool.coffee │ │ │ │ ├── actions │ │ │ │ │ └── save_tool.coffee │ │ │ │ ├── inspectors │ │ │ │ │ └── inspect_tool.coffee │ │ │ │ └── on_off_button.coffee │ │ │ ├── filters │ │ │ │ └── index.coffee │ │ │ ├── mappers │ │ │ │ └── index.ts │ │ │ ├── plots │ │ │ │ └── index.ts │ │ │ ├── sources │ │ │ │ ├── remote_data_source.coffee │ │ │ │ └── index.ts │ │ │ ├── tiles │ │ │ │ ├── tms_tile_source.coffee │ │ │ │ ├── wmts_tile_source.coffee │ │ │ │ ├── quadkey_tile_source.coffee │ │ │ │ └── image_pool.coffee │ │ │ └── transforms │ │ │ │ ├── index.ts │ │ │ │ ├── dodge.coffee │ │ │ │ └── transform.coffee │ │ ├── version.ts │ │ ├── node.d.ts │ │ ├── core │ │ │ ├── settings.ts │ │ │ └── util │ │ │ │ └── selection.coffee │ │ ├── index.coffee │ │ └── main.ts │ └── less │ │ ├── widgets │ │ ├── pikaday.less │ │ └── bootstrap.less │ │ ├── bokeh-tables.less │ │ ├── bokeh-widgets.less │ │ ├── main.less │ │ └── canvas.less ├── test │ ├── models │ │ ├── axes │ │ │ └── index.coffee │ │ ├── expressions │ │ │ └── index.coffee │ │ ├── renderers │ │ │ └── index.coffee │ │ ├── tools │ │ │ ├── inspectors │ │ │ │ └── index.coffee │ │ │ ├── actions │ │ │ │ └── index.coffee │ │ │ ├── gestures │ │ │ │ └── index.coffee │ │ │ └── index.coffee │ │ ├── plots │ │ │ └── index.coffee │ │ ├── callbacks │ │ │ ├── index.coffee │ │ │ └── openurl.coffee │ │ ├── canvas │ │ │ └── index.coffee │ │ ├── tiles │ │ │ └── index.coffee │ │ ├── graphs │ │ │ └── index.coffee │ │ ├── ranges │ │ │ └── index.coffee │ │ ├── scales │ │ │ └── index.coffee │ │ ├── glyphs │ │ │ └── index.coffee │ │ ├── sources │ │ │ └── index.coffee │ │ ├── annotations │ │ │ └── index.coffee │ │ ├── formatters │ │ │ └── index.coffee │ │ ├── widgets │ │ │ └── index.coffee │ │ ├── layouts │ │ │ ├── index.coffee │ │ │ ├── row.coffee │ │ │ └── column.coffee │ │ ├── mappers │ │ │ └── index.coffee │ │ ├── filters │ │ │ └── index.coffee │ │ ├── transforms │ │ │ └── index.coffee │ │ └── tickers │ │ │ └── index.coffee │ ├── core │ │ ├── layout │ │ │ └── index.coffee │ │ ├── fixtures │ │ │ └── object.coffee │ │ ├── index.ts │ │ └── util │ │ │ ├── index.coffee │ │ │ └── svg_colors.coffee │ └── unit.coffee ├── ts-node │ └── register.js ├── .vscode │ └── settings.json ├── gulpfile.js ├── .npmignore ├── CONTRIBUTING.md ├── CHANGELOG.md └── .gitignore ├── .gitattributes ├── conftest.py ├── sphinx ├── .gitignore ├── source │ ├── all_versions.txt │ ├── _images │ │ ├── iris.png │ │ ├── animated.gif │ │ ├── butt_cap.png │ │ ├── objects.png │ │ ├── scatter.png │ │ ├── travisci.png │ │ ├── bargrouped.png │ │ ├── barstacked.png │ │ ├── bevel_join.png │ │ ├── dashboard.png │ │ ├── ds_sample.png │ │ ├── gallery │ │ │ ├── dot.png │ │ │ ├── image.png │ │ │ ├── iris.png │ │ │ ├── line.png │ │ │ ├── rect.png │ │ │ ├── texas.png │ │ │ ├── anscombe.png │ │ │ ├── boxplot.png │ │ │ ├── brewer.png │ │ │ ├── burtin.png │ │ │ ├── elements.png │ │ │ ├── jitter.png │ │ │ ├── legend.png │ │ │ ├── les_mis.png │ │ │ ├── logaxis.png │ │ │ ├── lorenz.png │ │ │ ├── markers.png │ │ │ ├── palettes.png │ │ │ ├── periodic.png │ │ │ ├── quiver.png │ │ │ ├── slider.png │ │ │ ├── stocks.png │ │ │ ├── histogram.png │ │ │ ├── image_rgba.png │ │ │ ├── iris_splom.png │ │ │ ├── streamline.png │ │ │ ├── candlestick.png │ │ │ ├── categorical.png │ │ │ ├── color_scatter.png │ │ │ ├── color_sliders.png │ │ │ ├── correlation.png │ │ │ ├── ggplot_line.png │ │ │ ├── ggplot_step.png │ │ │ ├── glyph_wedge.png │ │ │ ├── unemployment.png │ │ │ ├── box_annotation.png │ │ │ ├── ggplot_density.png │ │ │ ├── seaborn_violin.png │ │ │ └── seaborn_sinerror.png │ │ ├── histogram.png │ │ ├── hover_basic.png │ │ ├── hv_sample.png │ │ ├── icons │ │ │ ├── Help.png │ │ │ ├── Hover.png │ │ │ ├── Pan.png │ │ │ ├── Redo.png │ │ │ ├── Reset.png │ │ │ ├── Save.png │ │ │ ├── Tap.png │ │ │ ├── Undo.png │ │ │ ├── XPan.png │ │ │ ├── YPan.png │ │ │ ├── BoxZoom.png │ │ │ ├── ZoomIn.png │ │ │ ├── ZoomOut.png │ │ │ ├── BoxSelect.png │ │ │ ├── Crosshair.png │ │ │ ├── WheelPan.png │ │ │ ├── WheelZoom.png │ │ │ ├── LassoSelect.png │ │ │ └── PolygonSelect.png │ │ ├── miter_join.png │ │ ├── round_cap.png │ │ ├── round_join.png │ │ ├── square_cap.png │ │ ├── tutorial1.png │ │ ├── bokeh_import.png │ │ ├── bokeh_server.png │ │ ├── bokeh_server.pxm │ │ ├── burtin_novel.png │ │ ├── stocks_applet.png │ │ ├── thumbs │ │ │ ├── iris_t.png │ │ │ ├── boxplot_t.png │ │ │ ├── burtin_t.png │ │ │ ├── hover_t.png │ │ │ ├── image_t.png │ │ │ ├── les_mis_t.png │ │ │ ├── lines_t.png │ │ │ ├── lorenz_t.png │ │ │ ├── quiver_t.png │ │ │ ├── scatter_t.png │ │ │ ├── splom_t.png │ │ │ ├── stacked_t.png │ │ │ ├── stocks_t.png │ │ │ ├── anscombe_t.png │ │ │ ├── elements_t.png │ │ │ ├── histogram_t.png │ │ │ ├── olympics_t.png │ │ │ ├── periodic_t.png │ │ │ ├── candlestick_t.png │ │ │ ├── categorical_t.png │ │ │ ├── choropleth_t.png │ │ │ ├── image_rgba_t.png │ │ │ ├── mandelbrot_t.png │ │ │ ├── map_overlay_t.png │ │ │ ├── streamline_t.png │ │ │ └── unemployment_t.png │ │ ├── unemployment.png │ │ ├── bokeh_iris_html.png │ │ ├── bokehjs_models.png │ │ ├── bokehjs_plotting.png │ │ ├── notebook_comms1.png │ │ ├── notebook_comms2.png │ │ ├── notebook_comms3.png │ │ ├── notebook_comms4.png │ │ ├── notebook_comms5.png │ │ ├── notebook_inline.png │ │ ├── notebook_vector.png │ │ ├── sliders_applet.png │ │ ├── bokeh_app_sliders.png │ │ ├── bokeh_simple_test.png │ │ ├── bokehjs_bar_charts.png │ │ ├── bokehjs_pie_charts.png │ │ ├── notebook_interactors.png │ │ ├── bokeh_simple_test_notebook.png │ │ └── bokeh_simple_test_zeppelin.png │ ├── docs │ │ ├── reference │ │ │ ├── core │ │ │ │ ├── property.rst │ │ │ │ ├── query.rst │ │ │ │ ├── state.rst │ │ │ │ ├── templates.rst │ │ │ │ ├── has_props.rst │ │ │ │ ├── property_mixins.rst │ │ │ │ ├── property │ │ │ │ │ ├── bases.rst │ │ │ │ │ ├── override.rst │ │ │ │ │ ├── containers.rst │ │ │ │ │ ├── descriptor_factory.rst │ │ │ │ │ └── descriptors.rst │ │ │ │ ├── json_encoder.rst │ │ │ │ └── enums.rst │ │ │ ├── application │ │ │ │ ├── handlers.rst │ │ │ │ ├── application.rst │ │ │ │ └── handlers │ │ │ │ │ ├── code.rst │ │ │ │ │ ├── script.rst │ │ │ │ │ ├── handler.rst │ │ │ │ │ ├── function.rst │ │ │ │ │ ├── notebook.rst │ │ │ │ │ ├── directory.rst │ │ │ │ │ ├── code_runner.rst │ │ │ │ │ └── server_lifecylce.rst │ │ │ ├── io.rst │ │ │ ├── util.rst │ │ │ ├── embed.rst │ │ │ ├── events.rst │ │ │ ├── driving.rst │ │ │ ├── layouts.rst │ │ │ ├── document.rst │ │ │ ├── palettes.rst │ │ │ ├── settings.rst │ │ │ ├── resources.rst │ │ │ ├── transform.rst │ │ │ ├── sampledata.rst │ │ │ ├── server │ │ │ │ ├── urls.rst │ │ │ │ ├── util.rst │ │ │ │ ├── server.rst │ │ │ │ ├── session.rst │ │ │ │ ├── tornado.rst │ │ │ │ ├── callbacks.rst │ │ │ │ ├── connection.rst │ │ │ │ ├── protocol_hander.rst │ │ │ │ └── application_context.rst │ │ │ ├── command │ │ │ │ ├── util.rst │ │ │ │ ├── subcommands │ │ │ │ │ ├── png.rst │ │ │ │ │ ├── svg.rst │ │ │ │ │ ├── html.rst │ │ │ │ │ ├── info.rst │ │ │ │ │ ├── json.rst │ │ │ │ │ ├── serve.rst │ │ │ │ │ ├── secret.rst │ │ │ │ │ ├── static.rst │ │ │ │ │ ├── sampledata.rst │ │ │ │ │ └── file_output.rst │ │ │ │ ├── subcommands.rst │ │ │ │ ├── bootstrap.rst │ │ │ │ └── subcommand.rst │ │ │ ├── tile_providers.rst │ │ │ ├── models │ │ │ │ ├── axes.rst │ │ │ │ ├── grids.rst │ │ │ │ ├── plots.rst │ │ │ │ ├── tiles.rst │ │ │ │ ├── tools.rst │ │ │ │ ├── graphs.rst │ │ │ │ ├── images.rst │ │ │ │ ├── ranges.rst │ │ │ │ ├── filters.rst │ │ │ │ ├── layouts.rst │ │ │ │ ├── mappers.rst │ │ │ │ ├── scales.rst │ │ │ │ ├── sources.rst │ │ │ │ ├── tickers.rst │ │ │ │ ├── callbacks.rst │ │ │ │ ├── map_plots.rst │ │ │ │ ├── renderers.rst │ │ │ │ ├── formatters.rst │ │ │ │ ├── markers │ │ │ │ │ ├── x.rst │ │ │ │ │ ├── cross.rst │ │ │ │ │ ├── circle.rst │ │ │ │ │ ├── square.rst │ │ │ │ │ ├── diamond.rst │ │ │ │ │ ├── asterisk.rst │ │ │ │ │ ├── circle_x.rst │ │ │ │ │ ├── square_x.rst │ │ │ │ │ ├── triangle.rst │ │ │ │ │ ├── circle_cross.rst │ │ │ │ │ ├── square_cross.rst │ │ │ │ │ ├── diamond_cross.rst │ │ │ │ │ └── inverted_triangle.rst │ │ │ │ ├── transforms.rst │ │ │ │ ├── annotations.rst │ │ │ │ ├── arrow_heads.rst │ │ │ │ ├── expressions.rst │ │ │ │ ├── glyphs │ │ │ │ │ ├── arc.rst │ │ │ │ │ ├── ray.rst │ │ │ │ │ ├── hbar.rst │ │ │ │ │ ├── line.rst │ │ │ │ │ ├── oval.rst │ │ │ │ │ ├── quad.rst │ │ │ │ │ ├── rect.rst │ │ │ │ │ ├── text.rst │ │ │ │ │ ├── vbar.rst │ │ │ │ │ ├── image.rst │ │ │ │ │ ├── patch.rst │ │ │ │ │ ├── wedge.rst │ │ │ │ │ ├── bezier.rst │ │ │ │ │ ├── annulus.rst │ │ │ │ │ ├── ellipse.rst │ │ │ │ │ ├── patches.rst │ │ │ │ │ ├── segment.rst │ │ │ │ │ ├── image_url.rst │ │ │ │ │ ├── quadratic.rst │ │ │ │ │ ├── image_rgba.rst │ │ │ │ │ ├── multi_line.rst │ │ │ │ │ └── annular_wedge.rst │ │ │ │ ├── widgets.icons.rst │ │ │ │ ├── widgets.groups.rst │ │ │ │ ├── widgets.inputs.rst │ │ │ │ ├── widgets.panels.rst │ │ │ │ ├── widgets.tables.rst │ │ │ │ ├── widgets.widget.rst │ │ │ │ ├── widgets.buttons.rst │ │ │ │ ├── widgets.markups.rst │ │ │ │ ├── widgets.sliders.rst │ │ │ │ ├── glyphs.rst │ │ │ │ └── markers.rst │ │ │ ├── core.rst │ │ │ ├── application.rst │ │ │ ├── plotting.rst │ │ │ ├── command.rst │ │ │ ├── themes.rst │ │ │ ├── client.rst │ │ │ └── 0_bokeh.rst │ │ ├── includes │ │ │ ├── fill_props.txt │ │ │ └── colors.txt │ │ ├── releases │ │ │ ├── 0.5.0.rst │ │ │ ├── 0.3.0.rst │ │ │ ├── 0.4.1.rst │ │ │ ├── 0.5.2.rst │ │ │ ├── 0.4.2.rst │ │ │ ├── 0.6.1.rst │ │ │ ├── 0.5.1.rst │ │ │ ├── 0.4.4.rst │ │ │ ├── 0.2.0.rst │ │ │ ├── 0.8.1.rst │ │ │ └── 0.6.0.rst │ │ └── user_guide │ │ │ ├── examples │ │ │ ├── plotting_arcs.py │ │ │ ├── plotting_title_basic.py │ │ │ ├── plotting_annulus.py │ │ │ ├── plotting_ray.py │ │ │ ├── plotting_segments.py │ │ │ ├── plotting_wedge.py │ │ │ ├── styling_bounds.py │ │ │ ├── plotting_hbar.py │ │ │ ├── styling_grid_bounds.py │ │ │ ├── plotting_title_location.py │ │ │ ├── plotting_vbar.py │ │ │ ├── interaction_button.py │ │ │ ├── plotting_line_single.py │ │ │ ├── styling_fixed_ticker.py │ │ │ ├── interaction_toggle_button.py │ │ │ ├── plotting_title_toolbar.py │ │ │ ├── interaction_slider.py │ │ │ ├── plotting_annular_wedge.py │ │ │ ├── interaction_textinput.py │ │ │ ├── plotting_rectangles.py │ │ │ ├── styling_dimensions.py │ │ │ ├── styling_min_border.py │ │ │ ├── interaction_select.py │ │ │ ├── plotting_patch_single.py │ │ │ ├── plotting_ellipses.py │ │ │ ├── plotting_line_missing_points.py │ │ │ ├── plotting_ovals.py │ │ │ ├── styling_background_fill.py │ │ │ ├── interaction_radio_group.py │ │ │ ├── plotting_patch_multiple.py │ │ │ ├── plotting_line_multiple.py │ │ │ ├── styling_plot_outline_line_color.py │ │ │ ├── plotting_rectangles_rotated.py │ │ │ ├── plotting_patch_missing_points.py │ │ │ ├── tools_position_toolbar_clash.py │ │ │ ├── interaction_checkbox_group.py │ │ │ ├── styling_title.py │ │ │ ├── styling_tick_label_orientation.py │ │ │ ├── interaction_radio_button_group.py │ │ │ ├── plotting_categorical_axis.py │ │ │ ├── plotting_multiple_glyphs.py │ │ │ ├── styling_minor_grid_lines.py │ │ │ ├── plotting_scatter_circle.py │ │ │ ├── plotting_scatter_square.py │ │ │ ├── tools_position_toolbar.py │ │ │ ├── styling_glyph_properties.py │ │ │ ├── interaction_checkbox_button_group.py │ │ │ ├── interaction_dropdown_menu.py │ │ │ ├── concepts_plotting.py │ │ │ ├── plotting_log_scale_axis.py │ │ │ ├── interaction_multiselect.py │ │ │ ├── plotting_figure_range.py │ │ │ ├── styling_numerical_tick_formatter.py │ │ │ ├── styling_printf_tick_formatter.py │ │ │ ├── plotting_title_additional.py │ │ │ ├── styling_func_tick_formatter.py │ │ │ ├── styling_grid_lines.py │ │ │ └── styling_labels.py │ │ │ ├── source_examples │ │ │ └── interaction_range_slider.py │ │ │ └── extensions_gallery │ │ │ ├── tool.rst │ │ │ └── latex.rst │ └── bokeh_theme │ │ ├── static │ │ └── images │ │ │ ├── logo.png │ │ │ └── favicon.ico │ │ ├── theme.conf │ │ └── includes │ │ ├── searchbox.html │ │ └── ga.html └── draw.io │ └── README.md ├── secrets.tar.enc ├── .dockerignore ├── conda.recipe ├── run_test.py ├── build.sh └── bld.bat ├── docker-tools ├── bash.sh ├── pytest.sh ├── npm-install.sh ├── gulp.sh ├── base.sh ├── quality.sh ├── Dockerfile-py2 └── Dockerfile-py3 ├── MAINTAINERS ├── requirements.txt └── .github └── PULL_REQUEST_TEMPLATE.md /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /scripts/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/core/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/server/static/.keepdir: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/sphinxext/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/util/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/models/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/examples/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/plugins/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/command/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/core/property/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/models/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/plotting/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/protocol/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/server/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/server/views/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/.gitignore: -------------------------------------------------------------------------------- 1 | .tests 2 | -------------------------------------------------------------------------------- /examples/custom/gears/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/models/file/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/plotting/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/integration/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/application/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/core/property/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/models/tests/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/server/.gitignore: -------------------------------------------------------------------------------- 1 | static/* 2 | -------------------------------------------------------------------------------- /examples/custom/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /examples/embed/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /examples/howto/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /examples/models/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /examples/models/server/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/plotting/file/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/plotting/notebook/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/plotting/server/.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/plotting/server/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /examples/webgl/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /scripts/.gitignore: -------------------------------------------------------------------------------- 1 | *testlog.txt 2 | -------------------------------------------------------------------------------- /bokeh/protocol/messages/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/protocol/messages/tests/test_ack.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/protocol/messages/tests/test_error.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/protocol/messages/tests/test_ok.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokehjs/examples/.gitignore: -------------------------------------------------------------------------------- 1 | .tests/ 2 | -------------------------------------------------------------------------------- /bokehjs/examples/tap/.gitignore: -------------------------------------------------------------------------------- 1 | tap.js 2 | -------------------------------------------------------------------------------- /bokehjs/gulp/index.ts: -------------------------------------------------------------------------------- 1 | import "./tasks" 2 | -------------------------------------------------------------------------------- /examples/app/stocks/.gitignore: -------------------------------------------------------------------------------- 1 | daily 2 | -------------------------------------------------------------------------------- /tests/integration/annotations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/integration/interaction/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/application/handlers/tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokeh/protocol/messages/tests/test_working.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokehjs/examples/burtin/.gitignore: -------------------------------------------------------------------------------- 1 | burtin.js 2 | -------------------------------------------------------------------------------- /bokehjs/examples/charts/.gitignore: -------------------------------------------------------------------------------- 1 | charts.js 2 | -------------------------------------------------------------------------------- /bokehjs/examples/donut/.gitignore: -------------------------------------------------------------------------------- 1 | donut.js 2 | -------------------------------------------------------------------------------- /bokehjs/examples/hover/.gitignore: -------------------------------------------------------------------------------- 1 | hover.js 2 | -------------------------------------------------------------------------------- /bokehjs/examples/linked/.gitignore: -------------------------------------------------------------------------------- 1 | linked.js 2 | -------------------------------------------------------------------------------- /bokehjs/examples/stocks/.gitignore: -------------------------------------------------------------------------------- 1 | stocks.js 2 | -------------------------------------------------------------------------------- /examples/plotting/file/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | bokeh/_version.py export-subst 2 | -------------------------------------------------------------------------------- /bokeh/protocol/messages/tests/test_server_info_req.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokehjs/examples/anscombe/.gitignore: -------------------------------------------------------------------------------- 1 | anscombe.js 2 | -------------------------------------------------------------------------------- /bokehjs/examples/legends/.gitignore: -------------------------------------------------------------------------------- 1 | legends.js 2 | -------------------------------------------------------------------------------- /bokeh/protocol/messages/tests/test_server_info_reply.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bokehjs/examples/categorical/.gitignore: -------------------------------------------------------------------------------- 1 | categorical.js 2 | -------------------------------------------------------------------------------- /bokehjs/examples/electron/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/api/main.ts: -------------------------------------------------------------------------------- 1 | export * from "./index" 2 | -------------------------------------------------------------------------------- /bokehjs/test/models/axes/index.coffee: -------------------------------------------------------------------------------- 1 | require "./axis" 2 | -------------------------------------------------------------------------------- /bokehjs/ts-node/register.js: -------------------------------------------------------------------------------- 1 | require("./").register() 2 | -------------------------------------------------------------------------------- /examples/app/simple_hdf5/.gitignore: -------------------------------------------------------------------------------- 1 | demo_data.hdf5 2 | -------------------------------------------------------------------------------- /examples/custom/font-awesome/.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | -------------------------------------------------------------------------------- /conftest.py: -------------------------------------------------------------------------------- 1 | pytest_plugins = "tests.plugins.implicit_mark" 2 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/api/models.ts: -------------------------------------------------------------------------------- 1 | export * from "../models/index" 2 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/glyphs/webgl/main.ts: -------------------------------------------------------------------------------- 1 | import "./index" 2 | -------------------------------------------------------------------------------- /bokehjs/test/models/expressions/index.coffee: -------------------------------------------------------------------------------- 1 | require "./stack" 2 | -------------------------------------------------------------------------------- /sphinx/.gitignore: -------------------------------------------------------------------------------- 1 | _build 2 | source/docs/gallery/* 3 | *.html 4 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/grids/index.ts: -------------------------------------------------------------------------------- 1 | export {Grid} from "./grid" 2 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/version.ts: -------------------------------------------------------------------------------- 1 | export const version = '0.12.8dev1' 2 | -------------------------------------------------------------------------------- /bokehjs/test/models/renderers/index.coffee: -------------------------------------------------------------------------------- 1 | require "./glyph_renderer" 2 | -------------------------------------------------------------------------------- /bokehjs/test/models/tools/inspectors/index.coffee: -------------------------------------------------------------------------------- 1 | require "./crosshair_tool" 2 | -------------------------------------------------------------------------------- /examples/models/file/custom.less: -------------------------------------------------------------------------------- 1 | .bk-my-row { 2 | border-style: dashed; 3 | } 4 | -------------------------------------------------------------------------------- /bokeh/sphinxext/_templates/collapsible_code_block_epilogue.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /bokehjs/test/models/plots/index.coffee: -------------------------------------------------------------------------------- 1 | require "./plot" 2 | require "./plot_canvas" 3 | -------------------------------------------------------------------------------- /secrets.tar.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/secrets.tar.enc -------------------------------------------------------------------------------- /bokehjs/test/models/callbacks/index.coffee: -------------------------------------------------------------------------------- 1 | require "./customjs" 2 | require "./openurl" 3 | -------------------------------------------------------------------------------- /tests/integration/README.md: -------------------------------------------------------------------------------- 1 | To run integration tests 2 | 3 | $ py.test -m integration 4 | -------------------------------------------------------------------------------- /.dockerignore: -------------------------------------------------------------------------------- 1 | **/.git 2 | **/*.pyc 3 | **/*.pyo 4 | bokehjs/node_modules/* 5 | bokehjs/build/* 6 | -------------------------------------------------------------------------------- /bokehjs/test/core/layout/index.coffee: -------------------------------------------------------------------------------- 1 | require "./layout_canvas" 2 | require "./side_panel" 3 | -------------------------------------------------------------------------------- /bokehjs/test/models/canvas/index.coffee: -------------------------------------------------------------------------------- 1 | require "./canvas" 2 | require "./cartesian_frame" 3 | -------------------------------------------------------------------------------- /conda.recipe/run_test.py: -------------------------------------------------------------------------------- 1 | import bokeh 2 | print('bokeh.__version__: %s' % bokeh.__version__) 3 | -------------------------------------------------------------------------------- /examples/models/file/popup_helper.coffee: -------------------------------------------------------------------------------- 1 | export popup = (message) -> window.alert(message) 2 | -------------------------------------------------------------------------------- /sphinx/source/all_versions.txt: -------------------------------------------------------------------------------- 1 | 0.10.0 2 | 0.11.0 3 | 0.12.4 4 | 0.12.5 5 | 0.12.6 6 | 0.12.7 7 | -------------------------------------------------------------------------------- /bokeh/.coveragerc: -------------------------------------------------------------------------------- 1 | [run] 2 | omit = *tests/*, *sphinxext/*, *compat/*, *sampledata/*, */_version.py 3 | -------------------------------------------------------------------------------- /bokehjs/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "./node_modules/typescript/lib" 3 | } 4 | -------------------------------------------------------------------------------- /docker-tools/bash.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | COMMAND="bash" 4 | 5 | source "$(dirname $0)/base.sh" 6 | -------------------------------------------------------------------------------- /bokehjs/test/models/tiles/index.coffee: -------------------------------------------------------------------------------- 1 | require "./tile_renderer" 2 | require "./dynamic_image_renderer" 3 | -------------------------------------------------------------------------------- /bokehjs/test/models/tools/actions/index.coffee: -------------------------------------------------------------------------------- 1 | require "./zoom_in_tool" 2 | require "./zoom_out_tool" 3 | -------------------------------------------------------------------------------- /bokehjs/gulpfile.js: -------------------------------------------------------------------------------- 1 | require("./ts-node").register({project: "./gulp/tsconfig.json"}); 2 | require("./gulp"); 3 | -------------------------------------------------------------------------------- /bokehjs/test/models/tools/gestures/index.coffee: -------------------------------------------------------------------------------- 1 | require "./wheel_pan_tool" 2 | require "./wheel_zoom_tool" 3 | -------------------------------------------------------------------------------- /bokeh/sampledata/commits.txt.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/bokeh/sampledata/commits.txt.gz -------------------------------------------------------------------------------- /bokehjs/.npmignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | *~ 3 | *.sw[opn] 4 | *.bak 5 | *#* 6 | *.#* 7 | *.DS_Store 8 | npm-debug.log 9 | -------------------------------------------------------------------------------- /bokehjs/test/models/graphs/index.coffee: -------------------------------------------------------------------------------- 1 | require "./graph_hit_test_policy" 2 | require "./static_layout_provider" 3 | -------------------------------------------------------------------------------- /sphinx/source/_images/iris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/iris.png -------------------------------------------------------------------------------- /bokehjs/examples/examples.yaml: -------------------------------------------------------------------------------- 1 | - path: "*" 2 | type: js 3 | skip: ["electron", "donut"] 4 | no_diff: ["stocks"] 5 | -------------------------------------------------------------------------------- /bokehjs/test/models/ranges/index.coffee: -------------------------------------------------------------------------------- 1 | require "./data_range1d" 2 | require "./factor_range" 3 | require "./range1d" 4 | -------------------------------------------------------------------------------- /docker-tools/pytest.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | COMMAND="cd /bokeh && pytest $1" 4 | 5 | source "$(dirname $0)/base.sh" 6 | -------------------------------------------------------------------------------- /scripts/ci/test:js: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | py.test -s -m js 7 | -------------------------------------------------------------------------------- /sphinx/source/_images/animated.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/animated.gif -------------------------------------------------------------------------------- /sphinx/source/_images/butt_cap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/butt_cap.png -------------------------------------------------------------------------------- /sphinx/source/_images/objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/objects.png -------------------------------------------------------------------------------- /sphinx/source/_images/scatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/scatter.png -------------------------------------------------------------------------------- /sphinx/source/_images/travisci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/travisci.png -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/property.rst: -------------------------------------------------------------------------------- 1 | .. toctree:: 2 | :maxdepth: 2 3 | :glob: 4 | 5 | property/* 6 | -------------------------------------------------------------------------------- /bokeh/sampledata/icons/ie_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/bokeh/sampledata/icons/ie_32x32.png -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/callbacks/index.ts: -------------------------------------------------------------------------------- 1 | export {CustomJS} from "./customjs" 2 | export {OpenURL} from "./open_url" 3 | -------------------------------------------------------------------------------- /bokehjs/test/models/scales/index.coffee: -------------------------------------------------------------------------------- 1 | require "./categorical_scale" 2 | require "./linear_scale" 3 | require "./log_scale" 4 | -------------------------------------------------------------------------------- /examples/app/pivot/downloads/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /scripts/ci/test:quality: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | py.test -m quality 7 | -------------------------------------------------------------------------------- /sphinx/source/_images/bargrouped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bargrouped.png -------------------------------------------------------------------------------- /sphinx/source/_images/barstacked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/barstacked.png -------------------------------------------------------------------------------- /sphinx/source/_images/bevel_join.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bevel_join.png -------------------------------------------------------------------------------- /sphinx/source/_images/dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/dashboard.png -------------------------------------------------------------------------------- /sphinx/source/_images/ds_sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/ds_sample.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/dot.png -------------------------------------------------------------------------------- /sphinx/source/_images/histogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/histogram.png -------------------------------------------------------------------------------- /sphinx/source/_images/hover_basic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/hover_basic.png -------------------------------------------------------------------------------- /sphinx/source/_images/hv_sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/hv_sample.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/Help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/Help.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/Hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/Hover.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/Pan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/Pan.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/Redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/Redo.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/Reset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/Reset.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/Save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/Save.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/Tap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/Tap.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/Undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/Undo.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/XPan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/XPan.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/YPan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/YPan.png -------------------------------------------------------------------------------- /sphinx/source/_images/miter_join.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/miter_join.png -------------------------------------------------------------------------------- /sphinx/source/_images/round_cap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/round_cap.png -------------------------------------------------------------------------------- /sphinx/source/_images/round_join.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/round_join.png -------------------------------------------------------------------------------- /sphinx/source/_images/square_cap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/square_cap.png -------------------------------------------------------------------------------- /sphinx/source/_images/tutorial1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/tutorial1.png -------------------------------------------------------------------------------- /bokeh/sampledata/icons/chrome_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/bokeh/sampledata/icons/chrome_32x32.png -------------------------------------------------------------------------------- /bokeh/sampledata/icons/opera_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/bokeh/sampledata/icons/opera_32x32.png -------------------------------------------------------------------------------- /bokeh/sampledata/icons/safari_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/bokeh/sampledata/icons/safari_32x32.png -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/expressions/index.ts: -------------------------------------------------------------------------------- 1 | export {Expression} from "./expression" 2 | export {Stack} from "./stack" 3 | -------------------------------------------------------------------------------- /sphinx/source/_images/bokeh_import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokeh_import.png -------------------------------------------------------------------------------- /sphinx/source/_images/bokeh_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokeh_server.png -------------------------------------------------------------------------------- /sphinx/source/_images/bokeh_server.pxm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokeh_server.pxm -------------------------------------------------------------------------------- /sphinx/source/_images/burtin_novel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/burtin_novel.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/image.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/iris.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/iris.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/line.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/rect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/rect.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/texas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/texas.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/BoxZoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/BoxZoom.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/ZoomIn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/ZoomIn.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/ZoomOut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/ZoomOut.png -------------------------------------------------------------------------------- /sphinx/source/_images/stocks_applet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/stocks_applet.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/iris_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/iris_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/unemployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/unemployment.png -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/handlers.rst: -------------------------------------------------------------------------------- 1 | .. toctree:: 2 | :maxdepth: 2 3 | :glob: 4 | 5 | handlers/* 6 | -------------------------------------------------------------------------------- /bokeh/sampledata/icons/firefox_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/bokeh/sampledata/icons/firefox_32x32.png -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/canvas/index.ts: -------------------------------------------------------------------------------- 1 | export {Canvas} from "./canvas" 2 | export {CartesianFrame} from "./cartesian_frame" 3 | -------------------------------------------------------------------------------- /bokehjs/src/less/widgets/pikaday.less: -------------------------------------------------------------------------------- 1 | @pikaday: "../../../node_modules/pikaday"; 2 | 3 | @import (less) "@{pikaday}/css/pikaday.css"; 4 | -------------------------------------------------------------------------------- /bokehjs/test/models/glyphs/index.coffee: -------------------------------------------------------------------------------- 1 | require "./image" 2 | require "./image_rgba" 3 | require "./image_url" 4 | require "./rect" 5 | -------------------------------------------------------------------------------- /bokehjs/test/models/sources/index.coffee: -------------------------------------------------------------------------------- 1 | require "./cds_view" 2 | require "./column_data_source" 3 | require "./geojson_data_source" 4 | -------------------------------------------------------------------------------- /docker-tools/npm-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | COMMAND="cd /bokeh/bokehjs && npm install" 4 | 5 | source "$(dirname $0)/base.sh" 6 | -------------------------------------------------------------------------------- /sphinx/source/_images/bokeh_iris_html.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokeh_iris_html.png -------------------------------------------------------------------------------- /sphinx/source/_images/bokehjs_models.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokehjs_models.png -------------------------------------------------------------------------------- /sphinx/source/_images/bokehjs_plotting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokehjs_plotting.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/anscombe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/anscombe.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/boxplot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/boxplot.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/brewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/brewer.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/burtin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/burtin.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/elements.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/elements.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/jitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/jitter.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/legend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/legend.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/les_mis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/les_mis.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/logaxis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/logaxis.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/lorenz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/lorenz.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/markers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/markers.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/palettes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/palettes.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/periodic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/periodic.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/quiver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/quiver.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/slider.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/stocks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/stocks.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/BoxSelect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/BoxSelect.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/Crosshair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/Crosshair.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/WheelPan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/WheelPan.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/WheelZoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/WheelZoom.png -------------------------------------------------------------------------------- /sphinx/source/_images/notebook_comms1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/notebook_comms1.png -------------------------------------------------------------------------------- /sphinx/source/_images/notebook_comms2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/notebook_comms2.png -------------------------------------------------------------------------------- /sphinx/source/_images/notebook_comms3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/notebook_comms3.png -------------------------------------------------------------------------------- /sphinx/source/_images/notebook_comms4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/notebook_comms4.png -------------------------------------------------------------------------------- /sphinx/source/_images/notebook_comms5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/notebook_comms5.png -------------------------------------------------------------------------------- /sphinx/source/_images/notebook_inline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/notebook_inline.png -------------------------------------------------------------------------------- /sphinx/source/_images/notebook_vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/notebook_vector.png -------------------------------------------------------------------------------- /sphinx/source/_images/sliders_applet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/sliders_applet.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/boxplot_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/boxplot_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/burtin_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/burtin_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/hover_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/hover_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/image_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/image_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/les_mis_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/les_mis_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/lines_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/lines_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/lorenz_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/lorenz_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/quiver_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/quiver_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/scatter_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/scatter_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/splom_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/splom_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/stacked_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/stacked_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/stocks_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/stocks_t.png -------------------------------------------------------------------------------- /sphinx/source/docs/reference/io.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.io: 2 | 3 | bokeh.io 4 | ======== 5 | 6 | .. automodule:: bokeh.io 7 | :members: 8 | -------------------------------------------------------------------------------- /bokehjs/src/less/bokeh-tables.less: -------------------------------------------------------------------------------- 1 | .bk-root { 2 | @import "./widgets/slickgrid.less"; 3 | @import "./widgets/data_table.less"; 4 | } 5 | -------------------------------------------------------------------------------- /sphinx/source/_images/bokeh_app_sliders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokeh_app_sliders.png -------------------------------------------------------------------------------- /sphinx/source/_images/bokeh_simple_test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokeh_simple_test.png -------------------------------------------------------------------------------- /sphinx/source/_images/bokehjs_bar_charts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokehjs_bar_charts.png -------------------------------------------------------------------------------- /sphinx/source/_images/bokehjs_pie_charts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokehjs_pie_charts.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/histogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/histogram.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/image_rgba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/image_rgba.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/iris_splom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/iris_splom.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/streamline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/streamline.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/LassoSelect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/LassoSelect.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/anscombe_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/anscombe_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/elements_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/elements_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/histogram_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/histogram_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/olympics_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/olympics_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/periodic_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/periodic_t.png -------------------------------------------------------------------------------- /bokeh/sampledata/sea_surface_temperature.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/bokeh/sampledata/sea_surface_temperature.csv.gz -------------------------------------------------------------------------------- /bokehjs/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Please consult https://bokeh.pydata.org/docs/contributing.html for more 2 | information about contributing to BokehJS. 3 | -------------------------------------------------------------------------------- /bokehjs/gulp/tasks/help.ts: -------------------------------------------------------------------------------- 1 | import * as gulp from "gulp" 2 | import * as task_list from "gulp-task-listing" 3 | 4 | gulp.task("help", task_list) 5 | -------------------------------------------------------------------------------- /bokehjs/test/models/annotations/index.coffee: -------------------------------------------------------------------------------- 1 | require "./annotation" 2 | require "./color_bar" 3 | require "./legend" 4 | require "./legend_item" 5 | -------------------------------------------------------------------------------- /examples/plotting/file/eclipse_data/upath17.dbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/examples/plotting/file/eclipse_data/upath17.dbf -------------------------------------------------------------------------------- /examples/plotting/file/eclipse_data/upath17.shp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/examples/plotting/file/eclipse_data/upath17.shp -------------------------------------------------------------------------------- /examples/plotting/file/eclipse_data/upath17.shx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/examples/plotting/file/eclipse_data/upath17.shx -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/candlestick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/candlestick.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/categorical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/categorical.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/color_scatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/color_scatter.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/color_sliders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/color_sliders.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/correlation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/correlation.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/ggplot_line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/ggplot_line.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/ggplot_step.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/ggplot_step.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/glyph_wedge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/glyph_wedge.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/unemployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/unemployment.png -------------------------------------------------------------------------------- /sphinx/source/_images/icons/PolygonSelect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/icons/PolygonSelect.png -------------------------------------------------------------------------------- /sphinx/source/_images/notebook_interactors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/notebook_interactors.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/candlestick_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/candlestick_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/categorical_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/categorical_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/choropleth_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/choropleth_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/image_rgba_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/image_rgba_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/mandelbrot_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/mandelbrot_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/map_overlay_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/map_overlay_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/streamline_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/streamline_t.png -------------------------------------------------------------------------------- /sphinx/source/_images/thumbs/unemployment_t.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/thumbs/unemployment_t.png -------------------------------------------------------------------------------- /sphinx/source/docs/reference/util.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.util: 2 | 3 | bokeh.util 4 | ========== 5 | 6 | .. automodule:: bokeh.util 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/box_annotation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/box_annotation.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/ggplot_density.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/ggplot_density.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/seaborn_violin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/seaborn_violin.png -------------------------------------------------------------------------------- /sphinx/source/bokeh_theme/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/bokeh_theme/static/images/logo.png -------------------------------------------------------------------------------- /sphinx/source/docs/reference/embed.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.embed: 2 | 3 | bokeh.embed 4 | =========== 5 | 6 | .. automodule:: bokeh.embed 7 | :members: 8 | -------------------------------------------------------------------------------- /bokeh/sampledata/US_Regions_State_Boundaries.csv.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/bokeh/sampledata/US_Regions_State_Boundaries.csv.gz -------------------------------------------------------------------------------- /bokehjs/test/models/formatters/index.coffee: -------------------------------------------------------------------------------- 1 | require "./func_tick_formatter" 2 | require "./numeral_tick_formatter" 3 | require "./mercator_tick_formatter" 4 | -------------------------------------------------------------------------------- /sphinx/source/_images/bokeh_simple_test_notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokeh_simple_test_notebook.png -------------------------------------------------------------------------------- /sphinx/source/_images/bokeh_simple_test_zeppelin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/bokeh_simple_test_zeppelin.png -------------------------------------------------------------------------------- /sphinx/source/_images/gallery/seaborn_sinerror.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/_images/gallery/seaborn_sinerror.png -------------------------------------------------------------------------------- /sphinx/source/bokeh_theme/static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/sphinx/source/bokeh_theme/static/images/favicon.ico -------------------------------------------------------------------------------- /sphinx/source/docs/reference/events.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.events: 2 | 3 | bokeh.events 4 | ============ 5 | 6 | .. automodule:: bokeh.events 7 | :members: 8 | -------------------------------------------------------------------------------- /MAINTAINERS: -------------------------------------------------------------------------------- 1 | # This is the list of core developers who can make releases 2 | bryanv@anaconda.com 3 | lcanavan@anaconda.com 4 | mateusz.paprocki@anaconda.com 5 | -------------------------------------------------------------------------------- /bokehjs/test/models/widgets/index.coffee: -------------------------------------------------------------------------------- 1 | require "./button" 2 | require "./data_table" 3 | require "./paragraph" 4 | require "./tabs" 5 | require "./widget" 6 | -------------------------------------------------------------------------------- /sphinx/source/bokeh_theme/theme.conf: -------------------------------------------------------------------------------- 1 | [theme] 2 | inherit = basic 3 | 4 | [options] 5 | js = js/main.js 6 | css = css/main.css 7 | favicon = images/favicon.ico 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/driving.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.driving: 2 | 3 | bokeh.driving 4 | ============= 5 | 6 | .. automodule:: bokeh.driving 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/layouts.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.layouts: 2 | 3 | bokeh.layouts 4 | ============= 5 | 6 | .. automodule:: bokeh.layouts 7 | :members: 8 | -------------------------------------------------------------------------------- /bokehjs/examples/electron/README.md: -------------------------------------------------------------------------------- 1 | # bokehjs-electron-quick-start 2 | 3 | ```bash 4 | # Install dependencies and run the app 5 | npm install && npm start 6 | ``` 7 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/axes/continuous_axis.coffee: -------------------------------------------------------------------------------- 1 | import {Axis} from "./axis" 2 | 3 | export class ContinuousAxis extends Axis 4 | type: 'ContinuousAxis' 5 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/graphs/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./graph_hit_test_policy" 2 | export * from "./layout_provider" 3 | export * from "./static_layout_provider" 4 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/widgets/abstract_icon.coffee: -------------------------------------------------------------------------------- 1 | import {Widget} from "./widget" 2 | 3 | export class AbstractIcon extends Widget 4 | type: "AbstractIcon" 5 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/document.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.document: 2 | 3 | bokeh.document 4 | ============== 5 | 6 | .. automodule:: bokeh.document 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/palettes.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.palettes: 2 | 3 | bokeh.palettes 4 | ============== 5 | 6 | .. automodule:: bokeh.palettes 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/settings.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.settings: 2 | 3 | bokeh.settings 4 | ============== 5 | 6 | .. automodule:: bokeh.settings 7 | :members: 8 | -------------------------------------------------------------------------------- /bokehjs/examples/tap/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "tap.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/resources.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.resources: 2 | 3 | bokeh.resources 4 | =============== 5 | 6 | .. automodule:: bokeh.resources 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/transform.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.transform: 2 | 3 | bokeh.transform 4 | =============== 5 | 6 | .. automodule:: bokeh.transform 7 | :members: 8 | -------------------------------------------------------------------------------- /bokehjs/examples/burtin/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "burtin.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /bokehjs/examples/charts/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "charts.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /bokehjs/examples/donut/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "donut.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /bokehjs/examples/hover/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "hover.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /bokehjs/examples/legends/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "legends.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /bokehjs/examples/linked/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "linked.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /bokehjs/examples/stocks/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "stocks.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/api/typings/utils.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace Bokeh { 2 | export interface Class { 3 | new (...args: any[]): T; 4 | prototype: T; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/query.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.query: 2 | 3 | bokeh.core.query 4 | ---------------- 5 | 6 | .. automodule:: bokeh.core.query 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/state.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.state: 2 | 3 | bokeh.core.state 4 | ---------------- 5 | 6 | .. automodule:: bokeh.core.state 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/templates.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.templates: 2 | 3 | bokeh.core.templates 4 | -------------------- 5 | 6 | .. automodule:: bokeh.core.templates 7 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/sampledata.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.sampledata: 2 | 3 | bokeh.sampledata 4 | ================ 5 | 6 | .. automodule:: bokeh.sampledata 7 | :members: 8 | -------------------------------------------------------------------------------- /bokehjs/examples/anscombe/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "anscombe.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/widgets/main.ts: -------------------------------------------------------------------------------- 1 | import * as Widgets from "./index" 2 | export {Widgets} 3 | 4 | import {register_models} from "../../base" 5 | register_models(Widgets) 6 | -------------------------------------------------------------------------------- /bokehjs/test/models/layouts/index.coffee: -------------------------------------------------------------------------------- 1 | require "./box" 2 | require "./column" 3 | require "./layout_dom" 4 | require "./row" 5 | require "./spacer" 6 | require "./widget_box" 7 | -------------------------------------------------------------------------------- /bokehjs/test/models/mappers/index.coffee: -------------------------------------------------------------------------------- 1 | require "./categorical_color_mapper" 2 | require "./color_mapper" 3 | require "./linear_color_mapper" 4 | require "./log_color_mapper" 5 | -------------------------------------------------------------------------------- /docker-tools/gulp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | COMMAND="export PATH=\$PATH:/bokeh/bokehjs/node_modules/.bin && cd /bokeh/bokehjs && gulp $1" 4 | 5 | source "$(dirname $0)/base.sh" 6 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/server/urls.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.server.urls: 2 | 3 | bokeh.server.urls 4 | ----------------- 5 | 6 | .. automodule:: bokeh.server.urls 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/server/util.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.server.util: 2 | 3 | bokeh.server.util 4 | ----------------- 5 | 6 | .. automodule:: bokeh.server.util 7 | :members: 8 | -------------------------------------------------------------------------------- /bokehjs/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | BokehJS is a subproject of Bokeh. Please consult the CHANGELOG at 2 | 3 | https://github.com/bokeh/bokeh/blob/master/CHANGELOG 4 | 5 | for full information. 6 | -------------------------------------------------------------------------------- /bokehjs/examples/categorical/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "files": [ 4 | "../../src/coffee/api/typings.d.ts", 5 | "categorical.ts" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /bokehjs/test/models/filters/index.coffee: -------------------------------------------------------------------------------- 1 | require "./boolean_filter" 2 | require "./customjs_filter" 3 | require "./filter" 4 | require "./group_filter" 5 | require "./index_filter" 6 | -------------------------------------------------------------------------------- /scripts/ci/install:js: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | # install NPM dependencies 7 | pushd bokehjs 8 | npm install 9 | popd 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/includes/fill_props.txt: -------------------------------------------------------------------------------- 1 | ``fill_color`` 2 | color to use to fill paths with 3 | 4 | ``fill_alpha`` 5 | floating point between 0 (transparent) and 1 (opaque) 6 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/util.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.util: 2 | 3 | bokeh.command.util 4 | ------------------ 5 | 6 | .. automodule:: bokeh.command.util 7 | :members: 8 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tickers/basic_ticker.coffee: -------------------------------------------------------------------------------- 1 | import {AdaptiveTicker} from "./adaptive_ticker" 2 | 3 | export class BasicTicker extends AdaptiveTicker 4 | type: 'BasicTicker' 5 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/widgets/tables/main.ts: -------------------------------------------------------------------------------- 1 | import * as Tables from "./index" 2 | export {Tables} 3 | 4 | import {register_models} from "../../../base" 5 | register_models(Tables) 6 | -------------------------------------------------------------------------------- /bokehjs/test/models/transforms/index.coffee: -------------------------------------------------------------------------------- 1 | require "./customjs_transform" 2 | require "./dodge" 3 | require "./linear_interpolator" 4 | require "./step_interpolator" 5 | require "./jitter" 6 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/png.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.png: 2 | 3 | png 4 | ~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.png 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/svg.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.svg: 2 | 3 | svg 4 | ~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.svg 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/server/server.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.server.server: 2 | 3 | bokeh.server.server 4 | ------------------- 5 | 6 | .. automodule:: bokeh.server.server 7 | :members: 8 | -------------------------------------------------------------------------------- /bokehjs/test/models/tools/index.coffee: -------------------------------------------------------------------------------- 1 | require "./actions" 2 | require "./inspectors" 3 | require "./gestures" 4 | require "./toolbar" 5 | require "./toolbar_base" 6 | require "./toolbar_box" 7 | -------------------------------------------------------------------------------- /scripts/ci/install:unit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | # install NPM dependencies 7 | pushd bokehjs 8 | npm install phantomjs 9 | popd 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands.rst: -------------------------------------------------------------------------------- 1 | bokeh.command.subcommands 2 | ------------------------- 3 | 4 | .. toctree:: 5 | :maxdepth: 3 6 | :glob: 7 | 8 | subcommands/* 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/html.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.html: 2 | 3 | html 4 | ~~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.html 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/info.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.info: 2 | 3 | info 4 | ~~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.info 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/json.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.json: 2 | 3 | json 4 | ~~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.json 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/server/session.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.server.session: 2 | 3 | bokeh.server.session 4 | -------------------- 5 | 6 | .. automodule:: bokeh.server.session 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/server/tornado.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.server.tornado: 2 | 3 | bokeh.server.tornado 4 | -------------------- 5 | 6 | .. automodule:: bokeh.server.tornado 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/tile_providers.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.tile_providers: 2 | 3 | bokeh.tile_providers 4 | ==================== 5 | 6 | .. automodule:: bokeh.tile_providers 7 | :members: 8 | -------------------------------------------------------------------------------- /tests/integration/annotations/screenshots/base__test_band__test_band.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/annotations/screenshots/base__test_band__test_band.png -------------------------------------------------------------------------------- /tests/plugins/constants.py: -------------------------------------------------------------------------------- 1 | import os 2 | from .utils import get_version_from_git 3 | 4 | job_id = os.environ.get("TRAVIS_JOB_ID", "local") 5 | 6 | __version__ = get_version_from_git('HEAD') 7 | -------------------------------------------------------------------------------- /bokehjs/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /node_modules 3 | /coverage 4 | .coverrun 5 | *~ 6 | *.sw[opn] 7 | *.bak 8 | *#* 9 | *.#* 10 | *.DS_Store 11 | npm-debug.log 12 | /test/.generated_defaults/ 13 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/api/typings/models/transforms.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace Bokeh { 2 | export interface Transform extends Model, ITransform {} 3 | export interface ITransform extends IModel {} 4 | } 5 | -------------------------------------------------------------------------------- /docker-tools/base.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BOKEHROOT="$( cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd )" 4 | docker run -it -v ${BOKEHROOT}:/bokeh "bokeh-dev:py${PYTHON:-3}" /bin/sh -c "${COMMAND}" 5 | -------------------------------------------------------------------------------- /docker-tools/quality.sh: -------------------------------------------------------------------------------- 1 | BOKEHROOT="$( cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd )" 2 | docker run -it -v $BOKEHROOT:/bokeh "bokeh-dev:py${PYTHON:-3}" /bin/sh -c "cd /bokeh && pytest -m quality" 3 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/serve.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.serve: 2 | 3 | serve 4 | ~~~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.serve 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/axes.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.axes: 2 | 3 | bokeh.models.axes 4 | ----------------- 5 | 6 | .. automodule:: bokeh.models.axes 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /tests/integration/annotations/screenshots/base__test_arrow__test_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/annotations/screenshots/base__test_arrow__test_arrow.png -------------------------------------------------------------------------------- /tests/integration/annotations/screenshots/base__test_label__test_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/annotations/screenshots/base__test_label__test_label.png -------------------------------------------------------------------------------- /bokeh/sphinxext/_templates/prop_detail.rst: -------------------------------------------------------------------------------- 1 | .. attribute:: {{ name }} 2 | :module: {{ module }} 3 | 4 | *property type:* {{ type_info }} 5 | 6 | {% if doc %}{{ doc|indent(4) }}{% endif %} 7 | -------------------------------------------------------------------------------- /examples/app/ohlc/theme.yaml: -------------------------------------------------------------------------------- 1 | attrs: 2 | Figure: 3 | background_fill_color: "#eeeeee" 4 | plot_width: 1200 5 | toolbar_location: "left" 6 | min_border_bottom: 0 7 | min_border_top: 0 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/secret.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.secret: 2 | 3 | secret 4 | ~~~~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.secret 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/static.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.static: 2 | 3 | static 4 | ~~~~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.static 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/grids.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.grids: 2 | 3 | bokeh.models.grids 4 | ------------------ 5 | 6 | .. automodule:: bokeh.models.grids 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/plots.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models_plots: 2 | 3 | bokeh.models.plots 4 | ------------------ 5 | 6 | .. automodule:: bokeh.models.plots 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/tiles.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.tiles: 2 | 3 | bokeh.models.tiles 4 | ------------------ 5 | 6 | .. automodule:: bokeh.models.tiles 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/tools.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.tools: 2 | 3 | bokeh.models.tools 4 | ------------------ 5 | 6 | .. automodule:: bokeh.models.tools 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/server/callbacks.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.server.callbacks: 2 | 3 | bokeh.server.callbacks 4 | ---------------------- 5 | 6 | .. automodule:: bokeh.server.callbacks 7 | :members: 8 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/formatters/tick_formatter.coffee: -------------------------------------------------------------------------------- 1 | import {Model} from "../../model" 2 | 3 | export class TickFormatter extends Model 4 | type: 'TickFormatter' 5 | 6 | doFormat: (ticks, axis) -> 7 | -------------------------------------------------------------------------------- /bokehjs/src/less/bokeh-widgets.less: -------------------------------------------------------------------------------- 1 | .bk-root { 2 | @import "widgets/nouislider.less"; 3 | @import "widgets/bootstrap.less"; 4 | @import "widgets/pikaday.less"; 5 | @import "widgets/widgets.less"; 6 | } 7 | -------------------------------------------------------------------------------- /scripts/ci/test:docs: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | cd sphinx 7 | 8 | export GOOGLE_API_KEY=${GOOGLE_API_KEY:-"unset"} 9 | make SPHINXOPTS=-v all 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/bootstrap.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.bootstrap: 2 | 3 | bokeh.command.bootstrap 4 | ----------------------- 5 | 6 | .. automodule:: bokeh.command.bootstrap 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/graphs.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.graphs: 2 | 3 | bokeh.models.graphs 4 | ------------------- 5 | 6 | .. automodule:: bokeh.models.graphs 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/images.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.images: 2 | 3 | bokeh.models.images 4 | ------------------- 5 | 6 | .. automodule:: bokeh.models.images 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/ranges.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.ranges: 2 | 3 | bokeh.models.ranges 4 | ------------------- 5 | 6 | .. automodule:: bokeh.models.ranges 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/server/connection.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.server.connection: 2 | 3 | bokeh.server.connection 4 | ----------------------- 5 | 6 | .. automodule:: bokeh.server.connection 7 | :members: 8 | -------------------------------------------------------------------------------- /tests/integration/annotations/screenshots/base__test_whisker__test_whisker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/annotations/screenshots/base__test_whisker__test_whisker.png -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommand.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommand: 2 | 3 | bokeh.command.subcommand 4 | ------------------------ 5 | 6 | .. automodule:: bokeh.command.subcommand 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/has_props.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.has_props: 2 | 3 | bokeh.core.has_props 4 | -------------------- 5 | 6 | .. automodule:: bokeh.core.has_props 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/filters.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.filters: 2 | 3 | bokeh.models.filters 4 | -------------------- 5 | 6 | .. automodule:: bokeh.models.filters 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/layouts.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.layouts: 2 | 3 | bokeh.models.layouts 4 | -------------------- 5 | 6 | .. automodule:: bokeh.models.layouts 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/mappers.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.mappers: 2 | 3 | bokeh.models.mappers 4 | -------------------- 5 | 6 | .. automodule:: bokeh.models.mappers 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/scales.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.scales: 2 | 3 | bokeh.models.scales 4 | -------------------- 5 | 6 | .. automodule:: bokeh.models.scales 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/sources.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.sources: 2 | 3 | bokeh.models.sources 4 | -------------------- 5 | 6 | .. automodule:: bokeh.models.sources 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/tickers.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.tickers: 2 | 3 | bokeh.models.tickers 4 | -------------------- 5 | 6 | .. automodule:: bokeh.models.tickers 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /tests/integration/annotations/screenshots/base__test_label_set__test_label_set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/annotations/screenshots/base__test_label_set__test_label_set.png -------------------------------------------------------------------------------- /bokeh/sphinxext/_templates/collapsible_code_block_prologue.html: -------------------------------------------------------------------------------- 1 |
2 | {{ heading }} 3 |
4 | -------------------------------------------------------------------------------- /bokeh/sphinxext/_templates/options_detail.rst: -------------------------------------------------------------------------------- 1 | Keyword Args: 2 | 3 | {% for opt in opts %} 4 | {{ opt['name'] }} ({{ opt['type'] }}) : {{ opt['doc']|indent(8) }} (default: {{ opt['default']}}) 5 | 6 | {% endfor %} 7 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core: 2 | 3 | bokeh.core 4 | ========== 5 | 6 | .. automodule:: bokeh.core 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | :glob: 11 | 12 | core/* 13 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/api/linalg.ts: -------------------------------------------------------------------------------- 1 | export * from "../core/util/object" 2 | export * from "../core/util/array" 3 | export * from "../core/util/string" 4 | export * from "../core/util/types" 5 | export * from "../core/util/eq" 6 | -------------------------------------------------------------------------------- /scripts/ci/install:docs: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | # install Bokeh sample data needed by examples 7 | python -c 'import bokeh; bokeh.sampledata.download(progress=False)' 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/sampledata.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.sampledata: 2 | 3 | sampledata 4 | ~~~~~~~~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.sampledata 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/property_mixins.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.property_mixins: 2 | 3 | bokeh.core.property_mixins 4 | -------------------------- 5 | 6 | .. automodule:: bokeh.core.property_mixins 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/callbacks.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.callbacks: 2 | 3 | bokeh.models.callbacks 4 | ---------------------- 5 | 6 | .. automodule:: bokeh.models.callbacks 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/map_plots.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.map_plots: 2 | 3 | bokeh.models.map_plots 4 | ---------------------- 5 | 6 | .. automodule:: bokeh.models.map_plots 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/renderers.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.renderers: 2 | 3 | bokeh.models.renderers 4 | ---------------------- 5 | 6 | .. automodule:: bokeh.models.renderers 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command/subcommands/file_output.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command.subcommands.file_output: 2 | 3 | file_output 4 | ~~~~~~~~~~~ 5 | 6 | .. automodule:: bokeh.command.subcommands.file_output 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/formatters.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.formatters: 2 | 3 | bokeh.models.formatters 4 | ----------------------- 5 | 6 | .. automodule:: bokeh.models.formatters 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/x.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.X: 2 | 3 | bokeh.models.markers.X 4 | ---------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.X 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/transforms.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.transforms: 2 | 3 | bokeh.models.transforms 4 | ----------------------- 5 | 6 | .. automodule:: bokeh.models.transforms 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /tests/integration/interaction/screenshots/base__test_hover__test_hover_changes_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/interaction/screenshots/base__test_hover__test_hover_changes_color.png -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/widgets/common.ts: -------------------------------------------------------------------------------- 1 | import {Signal} from "core/signaling" 2 | 3 | export const clear_menus = new Signal({}, "clear_menus") 4 | document.addEventListener("click", () => clear_menus.emit(undefined)) 5 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/annotations.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.annotations: 2 | 3 | bokeh.models.annotations 4 | ------------------------ 5 | 6 | .. automodule:: bokeh.models.annotations 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/arrow_heads.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.arrow_heads: 2 | 3 | bokeh.models.arrow_heads 4 | ------------------------ 5 | 6 | .. automodule:: bokeh.models.arrow_heads 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/expressions.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.expressions: 2 | 3 | bokeh.models.expressions 4 | ------------------------ 5 | 6 | .. automodule:: bokeh.models.expressions 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/arc.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Arc: 2 | 3 | bokeh.models.glyphs.Arc 4 | ----------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Arc 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/ray.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Ray: 2 | 3 | bokeh.models.glyphs.Ray 4 | ----------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Ray 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /bokeh/__main__.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from bokeh.command.bootstrap import main as _main 4 | 5 | def main(): 6 | # Main entry point (see setup.py) 7 | _main(sys.argv) 8 | 9 | if __name__ == "__main__": 10 | main() 11 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/renderers/index.ts: -------------------------------------------------------------------------------- 1 | export {GlyphRenderer} from "./glyph_renderer" 2 | export {GraphRenderer} from "./graph_renderer" 3 | export {GuideRenderer} from "./guide_renderer" 4 | export {Renderer} from "./renderer" 5 | -------------------------------------------------------------------------------- /bokehjs/test/core/fixtures/object.coffee: -------------------------------------------------------------------------------- 1 | utils = require "../../utils" 2 | {HasProps} = utils.require "core/has_props" 3 | 4 | class TestObject extends HasProps 5 | type: 'TestObject' 6 | 7 | module.exports = 8 | Model: TestObject 9 | -------------------------------------------------------------------------------- /scripts/ci/install:quality: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | # install Bokeh sample data needed by -OO module scan test 7 | python -c 'import bokeh; bokeh.sampledata.download(progress=False)' 8 | -------------------------------------------------------------------------------- /sphinx/draw.io/README.md: -------------------------------------------------------------------------------- 1 | The XML files in this directory are the source files for the corresponding 2 | SVG files in the ``source/_images`` directory. They were created with, and 3 | can be edited using the free draw.io online service. 4 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/application.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application.application: 2 | 3 | bokeh.application.application 4 | ----------------------------- 5 | 6 | .. automodule:: bokeh.application.application 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/hbar.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.HBar: 2 | 3 | bokeh.models.glyphs.HBar 4 | ------------------------ 5 | 6 | .. autoclass:: bokeh.models.glyphs.HBar 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/line.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Line: 2 | 3 | bokeh.models.glyphs.Line 4 | ------------------------ 5 | 6 | .. autoclass:: bokeh.models.glyphs.Line 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/oval.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Oval: 2 | 3 | bokeh.models.glyphs.Oval 4 | ------------------------ 5 | 6 | .. autoclass:: bokeh.models.glyphs.Oval 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/quad.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Quad: 2 | 3 | bokeh.models.glyphs.Quad 4 | ------------------------ 5 | 6 | .. autoclass:: bokeh.models.glyphs.Quad 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/rect.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Rect: 2 | 3 | bokeh.models.glyphs.Rect 4 | ------------------------ 5 | 6 | .. autoclass:: bokeh.models.glyphs.Rect 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/text.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Text: 2 | 3 | bokeh.models.glyphs.Text 4 | ------------------------ 5 | 6 | .. autoclass:: bokeh.models.glyphs.Text 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/vbar.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.VBar: 2 | 3 | bokeh.models.glyphs.VBar 4 | ------------------------ 5 | 6 | .. autoclass:: bokeh.models.glyphs.VBar 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/server/protocol_hander.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.server.protocol_handler: 2 | 3 | bokeh.server.protocol_handler 4 | ----------------------------- 5 | 6 | .. automodule:: bokeh.server.protocol_handler 7 | :members: 8 | -------------------------------------------------------------------------------- /tests/integration/annotations/screenshots/base__test_legend__test_legend_powered_by_source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/annotations/screenshots/base__test_legend__test_legend_powered_by_source.png -------------------------------------------------------------------------------- /bokeh/client/__init__.py: -------------------------------------------------------------------------------- 1 | ''' Provides client API for connecting to a Bokeh server 2 | 3 | ''' 4 | from __future__ import absolute_import 5 | 6 | from .session import ClientSession, pull_session, push_session, show_session, DEFAULT_SESSION_ID 7 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/scales/index.ts: -------------------------------------------------------------------------------- 1 | export {CategoricalScale} from "./categorical_scale" 2 | export {LinearScale} from "./linear_scale" 3 | export {LogScale} from "./log_scale" 4 | export {Scale} from "./scale" 5 | -------------------------------------------------------------------------------- /bokehjs/test/unit.coffee: -------------------------------------------------------------------------------- 1 | # if adding or removing tests, remember to update 2 | # 3 | # gulp/tasks/test.coffee 4 | 5 | require "./client" 6 | require "./core" 7 | require "./document" 8 | require "./model" 9 | require "./models" 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/image.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Image: 2 | 3 | bokeh.models.glyphs.Image 4 | ------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Image 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/patch.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Patch: 2 | 3 | bokeh.models.glyphs.Patch 4 | ------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Patch 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/wedge.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Wedge: 2 | 3 | bokeh.models.glyphs.Wedge 4 | ------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Wedge 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/widgets.icons.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.widgets.icons: 2 | 3 | bokeh.models.widgets.icons 4 | -------------------------- 5 | 6 | .. automodule:: bokeh.models.widgets.icons 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.5.0.rst: -------------------------------------------------------------------------------- 1 | 0.5.0 (Jul 2014) 2 | ================ 3 | 4 | * Widgets 5 | * Initial AR integration 6 | * bokeh.charts (scatter, bar, histogram) 7 | * improved embedding API 8 | * minor ticks, plot frame, and log axes 9 | -------------------------------------------------------------------------------- /bokeh/themes/__init__.py: -------------------------------------------------------------------------------- 1 | ''' Provides API for loading themes 2 | 3 | ''' 4 | from __future__ import absolute_import 5 | 6 | from os.path import join 7 | 8 | from .theme import Theme 9 | 10 | default = Theme(json={}) 11 | 12 | del join 13 | -------------------------------------------------------------------------------- /bokehjs/gulp/utils.ts: -------------------------------------------------------------------------------- 1 | import * as gulp from "gulp" 2 | 3 | export function buildWatchTask(name: string, paths: string[], tasks?: string[]) { 4 | gulp.task(`${name}:watch`, [name], () => { 5 | gulp.watch(paths, tasks || [name]) 6 | }) 7 | } 8 | -------------------------------------------------------------------------------- /examples/app/spectrogram/server_lifecycle.py: -------------------------------------------------------------------------------- 1 | from threading import Thread 2 | 3 | import audio 4 | 5 | def on_server_loaded(server_context): 6 | t = Thread(target=audio.update_audio_data, args=()) 7 | t.setDaemon(True) 8 | t.start() 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/handlers/code.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application.handlers.code: 2 | 3 | bokeh.application.handlers.code 4 | ------------------------------- 5 | 6 | .. automodule:: bokeh.application.handlers.code 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/bezier.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Bezier: 2 | 3 | bokeh.models.glyphs.Bezier 4 | -------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Bezier 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/cross.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.Cross: 2 | 3 | bokeh.models.markers.Cross 4 | -------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.Cross 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/widgets.groups.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.widgets.groups: 2 | 3 | bokeh.models.widgets.groups 4 | --------------------------- 5 | 6 | .. automodule:: bokeh.models.widgets.groups 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/widgets.inputs.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.widgets.inputs: 2 | 3 | bokeh.models.widgets.inputs 4 | --------------------------- 5 | 6 | .. automodule:: bokeh.models.widgets.inputs 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/widgets.panels.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.widgets.panels: 2 | 3 | bokeh.models.widgets.panels 4 | --------------------------- 5 | 6 | .. automodule:: bokeh.models.widgets.panels 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/widgets.tables.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.widgets.tables: 2 | 3 | bokeh.models.widgets.tables 4 | --------------------------- 5 | 6 | .. automodule:: bokeh.models.widgets.tables 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/widgets.widget.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.widgets.widget: 2 | 3 | bokeh.models.widgets.widget 4 | --------------------------- 5 | 6 | .. automodule:: bokeh.models.widgets.widget 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.3.0.rst: -------------------------------------------------------------------------------- 1 | 0.3.0 (Nov 2013) 2 | ================ 3 | 4 | * refactor bokehjs to use grunt for coffee build 5 | * merge bokeh and bokehjs repositories 6 | * various bug fixes 7 | * additional and improved examples and docs 8 | -------------------------------------------------------------------------------- /tests/integration/annotations/screenshots/base__test_color_bar__test_color_bar_with_scale_alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/annotations/screenshots/base__test_color_bar__test_color_bar_with_scale_alpha.png -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/annulus.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Annulus: 2 | 3 | bokeh.models.glyphs.Annulus 4 | --------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Annulus 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/ellipse.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Ellipse: 2 | 3 | bokeh.models.glyphs.Ellipse 4 | --------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Ellipse 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/patches.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Patches: 2 | 3 | bokeh.models.glyphs.Patches 4 | --------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Patches 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/segment.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Segment: 2 | 3 | bokeh.models.glyphs.Segment 4 | --------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Segment 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/circle.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.Circle: 2 | 3 | bokeh.models.markers.Circle 4 | --------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.Circle 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/square.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.Square: 2 | 3 | bokeh.models.markers.Square 4 | --------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.Square 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/widgets.buttons.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.widgets.buttons: 2 | 3 | bokeh.models.widgets.buttons 4 | ---------------------------- 5 | 6 | .. automodule:: bokeh.models.widgets.buttons 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/widgets.markups.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.widgets.markups: 2 | 3 | bokeh.models.widgets.markups 4 | ---------------------------- 5 | 6 | .. automodule:: bokeh.models.widgets.markups 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/widgets.sliders.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.widgets.sliders: 2 | 3 | bokeh.models.widgets.sliders 4 | ---------------------------- 5 | 6 | .. automodule:: bokeh.models.widgets.sliders 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/server/application_context.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.server.application_context: 2 | 3 | bokeh.server.application_context 4 | -------------------------------- 5 | 6 | .. automodule:: bokeh.server.application_context 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.4.1.rst: -------------------------------------------------------------------------------- 1 | 0.4.1 (Feb 2014) 2 | ================ 3 | 4 | * Improved MPL interface, LineCollection plus examples 5 | * Scala interface 6 | * Categorical axes and ranges 7 | * Hover tool 8 | * Improved pan/zoom tool interactions 9 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/ranges/index.ts: -------------------------------------------------------------------------------- 1 | export {DataRange} from "./data_range" 2 | export {DataRange1d} from "./data_range1d" 3 | export {FactorRange} from "./factor_range" 4 | export {Range} from "./range" 5 | export {Range1d} from "./range1d" 6 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/node.d.ts: -------------------------------------------------------------------------------- 1 | declare module "fs" { 2 | export function existsSync(path: string): boolean 3 | } 4 | 5 | declare module "path" { 6 | export function join(...paths: string[]): string 7 | export function dirname(p: string): string 8 | } 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application: 2 | 3 | bokeh.application 4 | ================= 5 | 6 | .. automodule:: bokeh.application 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | :glob: 11 | 12 | application/* 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/handlers/script.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application.handlers.script: 2 | 3 | bokeh.application.handlers.script 4 | --------------------------------- 5 | 6 | .. automodule:: bokeh.application.handlers.script 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs: 2 | 3 | bokeh.models.glyphs 4 | ------------------- 5 | 6 | .. automodule:: bokeh.models.glyphs 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | :glob: 11 | 12 | glyphs/* 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/diamond.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.Diamond: 2 | 3 | bokeh.models.markers.Diamond 4 | ---------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.Diamond 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_arcs.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show 2 | 3 | p = figure(plot_width=400, plot_height=400) 4 | p.arc(x=[1, 2, 3], y=[1, 2, 3], radius=0.1, start_angle=0.4, end_angle=4.8, color="navy") 5 | 6 | show(p) 7 | -------------------------------------------------------------------------------- /tests/integration/annotations/screenshots/base__test_color_bar__test_color_bar_placement_and_render.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/annotations/screenshots/base__test_color_bar__test_color_bar_placement_and_render.png -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/widgets/tables/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./cell_editors" 2 | export * from "./cell_formatters" 3 | 4 | export {DataTable} from "./data_table" 5 | export {TableColumn} from "./table_column" 6 | export {TableWidget} from "./table_widget" 7 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/handlers/handler.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application.handlers.handler: 2 | 3 | bokeh.application.handlers.handler 4 | ---------------------------------- 5 | 6 | .. automodule:: bokeh.application.handlers.handler 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/image_url.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.ImageURL: 2 | 3 | bokeh.models.glyphs.ImageURL 4 | ---------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.ImageURL 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/quadratic.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.Quadratic: 2 | 3 | bokeh.models.glyphs.Quadratic 4 | ----------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.Quadratic 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/asterisk.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.Asterisk: 2 | 3 | bokeh.models.markers.Asterisk 4 | ----------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.Asterisk 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/circle_x.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.CircleX: 2 | 3 | bokeh.models.markers.CircleX 4 | ---------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.CircleX 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/square_x.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.SquareX: 2 | 3 | bokeh.models.markers.SquareX 4 | ---------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.SquareX 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/triangle.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.Triangle: 2 | 3 | bokeh.models.markers.Triangle 4 | ----------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.Triangle 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /tests/integration/interaction/screenshots/base__test_datatable__test_data_table_selected_highlighting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/interaction/screenshots/base__test_datatable__test_data_table_selected_highlighting.png -------------------------------------------------------------------------------- /conda.recipe/build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | $PYTHON setup.py --quiet install --install-js --single-version-externally-managed --record=record.txt 4 | 5 | mkdir $PREFIX/Examples 6 | cp -r examples $PREFIX/Examples/bokeh 7 | 8 | cd $PREFIX 9 | echo $PREFIX 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/handlers/function.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application.handlers.function: 2 | 3 | bokeh.application.handlers.function 4 | ----------------------------------- 5 | 6 | .. automodule:: bokeh.application.handlers.function 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/handlers/notebook.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application.handlers.notebook: 2 | 3 | bokeh.application.handlers.notebook 4 | ----------------------------------- 5 | 6 | .. automodule:: bokeh.application.handlers.notebook 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/image_rgba.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.ImageRGBA: 2 | 3 | bokeh.models.glyphs.ImageRGBA 4 | ----------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.ImageRGBA 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/multi_line.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.MultiLine: 2 | 3 | bokeh.models.glyphs.MultiLine 4 | ----------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.MultiLine 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers: 2 | 3 | bokeh.models.markers 4 | -------------------- 5 | 6 | .. automodule:: bokeh.models.markers 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | :glob: 11 | 12 | markers/* 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/plotting.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.plotting: 2 | 3 | bokeh.plotting 4 | ============== 5 | 6 | .. autofunction:: bokeh.plotting.figure.figure 7 | 8 | .. autoclass:: bokeh.plotting.figure.Figure 9 | :members: 10 | :undoc-members: 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_title_basic.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show, output_file 2 | 3 | p = figure(title="Basic Title", plot_width=300, plot_height=300) 4 | p.circle([1,2], [3,4]) 5 | 6 | output_file("title.html") 7 | 8 | show(p) 9 | -------------------------------------------------------------------------------- /tests/integration/interaction/screenshots/base__test_selection__test_line_rendering_with_selected_points.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/interaction/screenshots/base__test_selection__test_line_rendering_with_selected_points.png -------------------------------------------------------------------------------- /tests/integration/plotting/screenshots/base__test_plot_fill_properties__test_no_border_or_background_fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/plotting/screenshots/base__test_plot_fill_properties__test_no_border_or_background_fill.png -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/layouts/index.ts: -------------------------------------------------------------------------------- 1 | export {Box} from "./box" 2 | export {Column} from "./column" 3 | export {LayoutDOM} from "./layout_dom" 4 | export {Row} from "./row" 5 | export {Spacer} from "./spacer" 6 | export {WidgetBox} from "./widget_box" 7 | -------------------------------------------------------------------------------- /scripts/ci/test:unit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | py.test -m 'unit' \ 7 | --rerun=5 \ 8 | --cov=bokeh \ 9 | --cov-config=bokeh/.coveragerc 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/handlers/directory.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application.handlers.directory: 2 | 3 | bokeh.application.handlers.directory 4 | ------------------------------------ 5 | 6 | .. automodule:: bokeh.application.handlers.directory 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/command.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.command: 2 | 3 | bokeh.command 4 | ============= 5 | 6 | Navigate the tree on the left for information about each subcommand. 7 | 8 | .. toctree:: 9 | :maxdepth: 3 10 | :glob: 11 | 12 | command/* 13 | -------------------------------------------------------------------------------- /bokeh/core/_templates/script_tag.html: -------------------------------------------------------------------------------- 1 | {# 2 | Renders a `` 11 | -------------------------------------------------------------------------------- /bokehjs/test/core/index.ts: -------------------------------------------------------------------------------- 1 | import "./signaling" 2 | import "./enums" 3 | import "./has_props" 4 | import "./layout" 5 | import "./logging" 6 | import "./properties" 7 | import "./property_mixins" 8 | import "./util" 9 | import "./selector" 10 | import "./ui_events" 11 | -------------------------------------------------------------------------------- /bokehjs/test/core/util/index.coffee: -------------------------------------------------------------------------------- 1 | require "./array" 2 | require "./bbox" 3 | require "./color" 4 | require "./math" 5 | require "./object" 6 | require "./refs" 7 | require "./serialization" 8 | require "./svg_colors" 9 | require "./templating" 10 | require "./zoom" 11 | -------------------------------------------------------------------------------- /tests/integration/plotting/screenshots/base__test_data_table_preselection__test_data_table_preselection_python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/plotting/screenshots/base__test_data_table_preselection__test_data_table_preselection_python.png -------------------------------------------------------------------------------- /tests/integration/plotting/screenshots/base__test_rect_glyph_with_log_axis__test_rect_rendering_with_log_axis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/plotting/screenshots/base__test_rect_glyph_with_log_axis__test_rect_rendering_with_log_axis.png -------------------------------------------------------------------------------- /bokeh/util/_plot_arg_helpers.py: -------------------------------------------------------------------------------- 1 | def _convert_responsive(responsive): 2 | if responsive is True: 3 | return 'scale_width' 4 | if responsive is False: 5 | return'fixed' 6 | raise ValueError("'responsive' may only be True or False, passed %r" % responsive) 7 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/formatters/categorical_tick_formatter.coffee: -------------------------------------------------------------------------------- 1 | import {TickFormatter} from "./tick_formatter" 2 | 3 | export class CategoricalTickFormatter extends TickFormatter 4 | type: 'CategoricalTickFormatter' 5 | 6 | doFormat: (ticks, axis) -> 7 | return ticks 8 | -------------------------------------------------------------------------------- /conda.recipe/bld.bat: -------------------------------------------------------------------------------- 1 | python setup.py --quiet install --build-js --single-version-externally-managed --record=record.txt 2 | if errorlevel 1 exit 1 3 | 4 | mkdir %PREFIX%\Examples 5 | if errorlevel 1 exit 1 6 | 7 | copy /Y examples %PREFIX%\Examples\bokeh 8 | if errorlevel 1 exit 1 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/handlers/code_runner.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application.handlers.code_runner: 2 | 3 | bokeh.application.handlers.code_runner 4 | -------------------------------------- 5 | 6 | .. automodule:: bokeh.application.handlers.code_runner 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/glyphs/annular_wedge.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.glyphs.AnnularWedge: 2 | 3 | bokeh.models.glyphs.AnnularWedge 4 | -------------------------------- 5 | 6 | .. autoclass:: bokeh.models.glyphs.AnnularWedge 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/circle_cross.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.CircleCross: 2 | 3 | bokeh.models.markers.CircleCross 4 | -------------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.CircleCross 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/square_cross.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.SquareCross: 2 | 3 | bokeh.models.markers.SquareCross 4 | -------------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.SquareCross 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /tests/integration/plotting/screenshots/base__test_visible_property__test_visible_property_hides_things_correctly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/plotting/screenshots/base__test_visible_property__test_visible_property_hides_things_correctly.png -------------------------------------------------------------------------------- /bokeh/sphinxext/_templates/gallery_page.rst: -------------------------------------------------------------------------------- 1 | {% for name in names %} 2 | * |{{ name }}| 3 | {% endfor %} 4 | 5 | {% for name in names %} 6 | .. |{{ name }}| image:: /_images/gallery/{{ name }}.png 7 | :target: gallery/{{ name }}.html 8 | :class: gallery 9 | {% endfor %} 10 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/core/settings.ts: -------------------------------------------------------------------------------- 1 | export class Settings { 2 | private _dev = false 3 | 4 | set dev(dev: boolean) { 5 | this._dev = dev 6 | } 7 | 8 | get dev(): boolean { 9 | return this._dev 10 | } 11 | } 12 | 13 | export const settings = new Settings() 14 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tools/gestures/gesture_tool.coffee: -------------------------------------------------------------------------------- 1 | import {ButtonTool, ButtonToolView} from "../button_tool" 2 | 3 | export class GestureToolView extends ButtonToolView 4 | 5 | export class GestureTool extends ButtonTool 6 | 7 | event_type: null 8 | default_order: null 9 | -------------------------------------------------------------------------------- /bokehjs/test/models/tickers/index.coffee: -------------------------------------------------------------------------------- 1 | require "./adaptive_ticker" 2 | require "./categorical_ticker" 3 | require "./composite_ticker" 4 | require "./continuous_ticker" 5 | require "./fixed_ticker" 6 | require "./log_ticker" 7 | require "./single_interval_ticker" 8 | require "./ticker" 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/diamond_cross.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.DiamondCross: 2 | 3 | bokeh.models.markers.DiamondCross 4 | --------------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.DiamondCross 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.5.2.rst: -------------------------------------------------------------------------------- 1 | 0.5.2 (Aug 2014) 2 | ================ 3 | 4 | * New Layout system 5 | * Improved automate testing infrastructure 6 | * AR testing, server-side downsample fixes and ISO Contours 7 | * New "dashboard-like" example: examples/app/applet/stock_example.py 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_annulus.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show 2 | 3 | p = figure(plot_width=400, plot_height=400) 4 | p.annulus(x=[1, 2, 3], y=[1, 2, 3], inner_radius=0.1, outer_radius=0.25, 5 | color="orange", alpha=0.6) 6 | 7 | show(p) 8 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/filters/index.coffee: -------------------------------------------------------------------------------- 1 | export {BooleanFilter} from "./boolean_filter" 2 | export {CustomJSFilter} from "./customjs_filter" 3 | export {Filter} from "./filter" 4 | export {GroupFilter} from "./group_filter" 5 | export {IndexFilter} from "./index_filter" 6 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/mappers/index.ts: -------------------------------------------------------------------------------- 1 | export {CategoricalColorMapper} from "./categorical_color_mapper" 2 | export {ColorMapper} from "./color_mapper" 3 | export {LinearColorMapper} from "./linear_color_mapper" 4 | export {LogColorMapper} from "./log_color_mapper" 5 | -------------------------------------------------------------------------------- /examples/app/clustering/theme.yaml: -------------------------------------------------------------------------------- 1 | attrs: 2 | Figure: 3 | plot_width: 400 4 | plot_height: 400 5 | background_fill_color: 'lightgrey' 6 | background_fill_alpha: 0.2 7 | 8 | Grid: 9 | grid_line_color: null 10 | 11 | Title: 12 | text_font_size: '10pt' 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/property/bases.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.property.bases: 2 | 3 | bokeh.core.property.bases 4 | ------------------------- 5 | 6 | .. automodule:: bokeh.core.property.bases 7 | :members: 8 | :special-members: 9 | :exclude-members: __weakref__ 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_ray.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show 2 | 3 | p = figure(plot_width=400, plot_height=400) 4 | p.ray(x=[1, 2, 3], y=[1, 2, 3], length=45, angle=[30, 45, 60], 5 | angle_units="deg", color="#FB8072", line_width=2) 6 | 7 | show(p) 8 | -------------------------------------------------------------------------------- /bokehjs/src/less/main.less: -------------------------------------------------------------------------------- 1 | .bk-plot:after, .bk-canvas-wrapper:after { 2 | content: " "; 3 | height: 0; 4 | display: block; 5 | clear: both; 6 | } 7 | 8 | .bk-shading { 9 | position: absolute; 10 | display: block; 11 | border: 1px dashed green; 12 | z-index: 100; 13 | } 14 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_segments.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show 2 | 3 | p = figure(plot_width=400, plot_height=400) 4 | p.segment(x0=[1, 2, 3], y0=[1, 2, 3], x1=[1.2, 2.4, 3.1], 5 | y1=[1.2, 2.5, 3.7], color="#F4A582", line_width=3) 6 | 7 | show(p) 8 | -------------------------------------------------------------------------------- /tests/integration/annotations/screenshots/base__test_title__test_the_default_titles_settings_and_ensure_outside_any_axes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DataXujing/bokeh/master/tests/integration/annotations/screenshots/base__test_title__test_the_default_titles_settings_and_ensure_outside_any_axes.png -------------------------------------------------------------------------------- /bokehjs/gulp/tasks/index.ts: -------------------------------------------------------------------------------- 1 | import "./build" 2 | import "./clean" 3 | import "./compiler" 4 | import "./default" 5 | import "./defaults" 6 | import "./examples" 7 | import "./help" 8 | import "./install" 9 | import "./scripts" 10 | import "./styles" 11 | import "./test" 12 | import "./watch" 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.4.2.rst: -------------------------------------------------------------------------------- 1 | 0.4.2 (Mar 2014) 2 | ================ 3 | 4 | * Improved MPL interface, PolyCollection plus examples 5 | * Extensive tutorial with exercises and solutions 6 | * %bokeh magic for IPython notebook 7 | * InMemory storage backend for bokeh-server (usable without Redis) 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.6.1.rst: -------------------------------------------------------------------------------- 1 | 0.6.1 (Sep 2014) 2 | ================ 3 | 4 | * Toolbar enhancements 5 | * bokeh-server fixes 6 | * Improved documentation 7 | * Button widgets 8 | * Google map support in the Python side 9 | * Code cleanup in the JS side and examples 10 | * New examples 11 | -------------------------------------------------------------------------------- /bokeh/command/tests/test_command_package.py: -------------------------------------------------------------------------------- 1 | import bokeh.command as command 2 | 3 | def test_doc(): 4 | import bokeh.command.subcommands as sc 5 | assert len(command.__doc__.split("\n")) == 5 + 3*len(sc.all) 6 | for x in sc.all: 7 | assert (x.name + "\n " + x.help) in command.__doc__ 8 | -------------------------------------------------------------------------------- /bokeh/sphinxext/_templates/palette_detail.html: -------------------------------------------------------------------------------- 1 | 2 | {%- for color in palette -%} 3 | 4 | {%- endfor -%} 5 | 6 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/ranges/data_range.coffee: -------------------------------------------------------------------------------- 1 | import {Range} from "./range" 2 | import * as p from "core/properties" 3 | 4 | export class DataRange extends Range 5 | type: 'DataRange' 6 | 7 | @define { 8 | names: [ p.Array, [] ] 9 | renderers: [ p.Array, [] ] 10 | } 11 | -------------------------------------------------------------------------------- /bokehjs/test/models/layouts/row.coffee: -------------------------------------------------------------------------------- 1 | {expect} = require "chai" 2 | utils = require "../../utils" 3 | 4 | {Row} = utils.require("models/layouts/row") 5 | 6 | describe "Row", -> 7 | 8 | it "should have _horizontal set to true", -> 9 | r = new Row() 10 | expect(r._horizontal).to.be.true 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/application/handlers/server_lifecylce.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.application.handlers.server_lifecycle: 2 | 3 | bokeh.application.handlers.server_lifecycle 4 | ------------------------------------------- 5 | 6 | .. automodule:: bokeh.application.handlers.server_lifecycle 7 | :members: 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/property/override.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.property.override: 2 | 3 | bokeh.core.property.override 4 | ---------------------------- 5 | 6 | .. automodule:: bokeh.core.property.override 7 | :members: 8 | :special-members: 9 | :exclude-members: __weakref__ 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/models/markers/inverted_triangle.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.models.markers.InvertedTriangle: 2 | 3 | bokeh.models.markers.InvertedTriangle 4 | ------------------------------------- 5 | 6 | .. autoclass:: bokeh.models.markers.InvertedTriangle 7 | :members: 8 | :inherited-members: 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_wedge.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show 2 | 3 | p = figure(plot_width=400, plot_height=400) 4 | p.wedge(x=[1, 2, 3], y=[1, 2, 3], radius=0.2, start_angle=0.4, end_angle=4.8, 5 | color="firebrick", alpha=0.6, direction="clock") 6 | 7 | show(p) 8 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_bounds.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("bounds.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 7 | 8 | p.xaxis.bounds = (2, 4) 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /examples/app/movies/genres.txt: -------------------------------------------------------------------------------- 1 | All 2 | Action 3 | Adventure 4 | Animation 5 | Biography 6 | Comedy 7 | Crime 8 | Documentary 9 | Drama 10 | Family 11 | Fantasy 12 | History 13 | Horror 14 | Music 15 | Musical 16 | Mystery 17 | Romance 18 | Sci-Fi 19 | Short 20 | Sport 21 | Thriller 22 | War 23 | Western 24 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/json_encoder.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.json_encoder: 2 | 3 | bokeh.core.json_encoder 4 | ----------------------- 5 | 6 | .. automodule:: bokeh.core.json_encoder 7 | 8 | .. autofunction:: serialize_json 9 | 10 | .. autoclass:: BokehJSONEncoder 11 | :members: 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/themes.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.themes: 2 | 3 | bokeh.themes 4 | ============ 5 | 6 | .. automodule:: bokeh.themes 7 | :members: 8 | 9 | .. _bokeh.themes.theme: 10 | 11 | bokeh.themes.theme 12 | ------------------ 13 | 14 | .. automodule:: bokeh.themes.theme 15 | :members: 16 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_hbar.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show, output_file 2 | 3 | output_file('hbar.html') 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.hbar(y=[1, 2, 3], height=0.5, left=0, 7 | right=[1.2, 2.5, 3.7], color="navy") 8 | 9 | show(p) 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_grid_bounds.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("bounds.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 7 | 8 | p.grid.bounds = (2, 4) 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /bokeh/sampledata/les_mis.py: -------------------------------------------------------------------------------- 1 | ''' 2 | This module provides the co-occurences of characters in Les Miserables as JSON data. 3 | 4 | ''' 5 | from __future__ import absolute_import 6 | 7 | import json 8 | from os.path import dirname, join 9 | 10 | data = json.load(open(join(dirname(__file__), 'les_mis.json'))) 11 | -------------------------------------------------------------------------------- /bokeh/sampledata/olympics2014.py: -------------------------------------------------------------------------------- 1 | ''' 2 | This module provides the medal counts by country for the 2014 olympics. 3 | 4 | ''' 5 | from __future__ import absolute_import 6 | 7 | import json 8 | from os.path import dirname, join 9 | 10 | data = json.load(open(join(dirname(__file__), 'olympics2014.json'))) 11 | -------------------------------------------------------------------------------- /bokehjs/test/core/util/svg_colors.coffee: -------------------------------------------------------------------------------- 1 | {expect} = require "chai" 2 | utils = require "../../utils" 3 | 4 | svg_colors = utils.require "core/util/svg_colors" 5 | 6 | describe "svg_color module", -> 7 | 8 | it "should have size = 147", -> 9 | expect(Object.keys(svg_colors).length).to.be.equal 147 10 | -------------------------------------------------------------------------------- /examples/embed/simple/README.md: -------------------------------------------------------------------------------- 1 | This example demonstrates embedding a standalone Bokeh document 2 | into a simple Flask application, with a basic HTML web form. 3 | 4 | To view the example, run: 5 | 6 | python simple.py 7 | 8 | in this directory, and navigate to: 9 | 10 | http://localhost:5000 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/client.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.client: 2 | 3 | bokeh.client 4 | ============ 5 | 6 | .. automodule:: bokeh.client 7 | :members: 8 | 9 | .. _bokeh.client.session: 10 | 11 | bokeh.client.session 12 | -------------------- 13 | 14 | .. automodule:: bokeh.client.session 15 | :members: 16 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/property/containers.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.property.containers: 2 | 3 | bokeh.core.property.containers 4 | ------------------------------ 5 | 6 | .. automodule:: bokeh.core.property.containers 7 | :members: 8 | :special-members: 9 | :exclude-members: __weakref__ 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.5.1.rst: -------------------------------------------------------------------------------- 1 | 0.5.1 (Jul 2014) 2 | ================ 3 | 4 | * Hover activated by default 5 | * Boxplot in bokeh.charts 6 | * Better messages when you forgot to start the bokeh-server 7 | * Fixed some packaging bugs 8 | * Fixed NBviewer rendering 9 | * Fixed some Unicodeencodeerror 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_title_location.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show, output_file 2 | 3 | p = figure(title="Left Title", title_location="left", 4 | plot_width=300, plot_height=300) 5 | p.circle([1,2], [3,4]) 6 | 7 | output_file("title.html") 8 | 9 | show(p) 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_vbar.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show, output_file 2 | 3 | output_file('vbar.html') 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.vbar(x=[1, 2, 3], width=0.5, bottom=0, 7 | top=[1.2, 2.5, 3.7], color="firebrick") 8 | 9 | show(p) 10 | -------------------------------------------------------------------------------- /bokeh/sphinxext/_templates/model_detail.rst: -------------------------------------------------------------------------------- 1 | .. autoclass:: {{ module_name }}.{{ name }} 2 | :members: 3 | :undoc-members: 4 | :show-inheritance: 5 | 6 | .. _{{ name }}.json: 7 | 8 | .. collapsible-code-block:: javascript 9 | :heading: JSON Prototype 10 | 11 | {{ model_json|indent(4) }} 12 | -------------------------------------------------------------------------------- /bokehjs/gulp/tasks/default.ts: -------------------------------------------------------------------------------- 1 | import * as gulp from "gulp" 2 | import * as gutil from "gulp-util" 3 | import * as runSequence from "run-sequence" 4 | 5 | gulp.task("default", (cb: (arg?: any) => void) => { 6 | gutil.log("Building BokehJS for developer mode ...") 7 | runSequence("build", "install", "watch", cb) 8 | }) 9 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/plots/index.ts: -------------------------------------------------------------------------------- 1 | export {MapOptions} from "./gmap_plot" 2 | export {GMapOptions} from "./gmap_plot" 3 | export {GMapPlot} from "./gmap_plot" 4 | export {GMapPlotCanvas} from "./gmap_plot_canvas" 5 | export {Plot} from "./plot" 6 | export {PlotCanvas} from "./plot_canvas" 7 | -------------------------------------------------------------------------------- /examples/howto/server_embed/theme.yaml: -------------------------------------------------------------------------------- 1 | attrs: 2 | Figure: 3 | background_fill_color: "#DDDDDD" 4 | outline_line_color: white 5 | toolbar_location: above 6 | height: 500 7 | width: 800 8 | Grid: 9 | grid_line_dash: [6, 4] 10 | grid_line_color: white 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_button.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import Button 4 | 5 | output_file("button.html") 6 | 7 | button = Button(label="Foo", button_type="success") 8 | 9 | show(widgetbox(button)) 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_line_single.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("line.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | 7 | # add a line renderer 8 | p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2) 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_fixed_ticker.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("fixed_ticks.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 7 | 8 | p.xaxis.ticker = [2, 3.5, 4] 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /bokehjs/test/models/layouts/column.coffee: -------------------------------------------------------------------------------- 1 | {expect} = require "chai" 2 | utils = require "../../utils" 3 | 4 | {Column} = utils.require("models/layouts/column") 5 | 6 | describe "Column", -> 7 | 8 | it "should have _horizontal set to false", -> 9 | c = new Column() 10 | expect(c._horizontal).to.be.false 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_toggle_button.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import Toggle 4 | 5 | output_file("toggle.html") 6 | 7 | toggle = Toggle(label="Foo", button_type="success") 8 | 9 | show(widgetbox(toggle)) 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_title_toolbar.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show, output_file 2 | 3 | p = figure(title="Top Title with Toolbar", toolbar_location="above", 4 | plot_width=600, plot_height=300) 5 | p.circle([1,2], [3,4]) 6 | 7 | output_file("title.html") 8 | 9 | show(p) 10 | -------------------------------------------------------------------------------- /bokeh/sphinxext/_templates/jinja_detail.rst: -------------------------------------------------------------------------------- 1 | .. data:: {{ name }} 2 | :module: {{ module }} 3 | :annotation: = {{ objrepr }} 4 | 5 | {% if doc %}{{ doc|indent(4) }}{% endif %} 6 | 7 | .. collapsible-code-block:: jinja 8 | :heading: Template: {{ filename }} 9 | 10 | {{ template_text|indent(8) }} 11 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/axes/index.ts: -------------------------------------------------------------------------------- 1 | export {Axis} from "./axis" 2 | export {CategoricalAxis} from "./categorical_axis" 3 | export {ContinuousAxis} from "./continuous_axis" 4 | export {DatetimeAxis} from "./datetime_axis" 5 | export {LinearAxis} from "./linear_axis" 6 | export {LogAxis} from "./log_axis" 7 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_slider.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import Slider 4 | 5 | output_file("slider.html") 6 | 7 | slider = Slider(start=0, end=10, value=1, step=.1, title="Stuff") 8 | 9 | show(widgetbox(slider)) 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_annular_wedge.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show 2 | 3 | p = figure(plot_width=400, plot_height=400) 4 | p.annular_wedge(x=[1, 2, 3], y=[1, 2, 3], inner_radius=0.1, outer_radius=0.25, 5 | start_angle=0.4, end_angle=4.8, color="green", alpha=0.6) 6 | 7 | show(p) 8 | -------------------------------------------------------------------------------- /bokeh/models/widgets/icons.py: -------------------------------------------------------------------------------- 1 | ''' Various kinds of icon widgets. 2 | 3 | ''' 4 | from __future__ import absolute_import 5 | 6 | from ...core.has_props import abstract 7 | 8 | from .widget import Widget 9 | 10 | @abstract 11 | class AbstractIcon(Widget): 12 | ''' An abstract base class for icon widgets. 13 | 14 | ''' 15 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.4.4.rst: -------------------------------------------------------------------------------- 1 | 0.4.4 (Apr 2014) 2 | ================ 3 | 4 | * Improved MPL interface, subplots, styling plus more examples 5 | * TravisCI testing integration 6 | * Tool enhancements, constrained pan/zoom, more hover glyphs 7 | * Server remote data and downsampling examples 8 | * Initial work for Bokeh "app" concept 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_textinput.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import TextInput 4 | 5 | output_file("text_input.html") 6 | 7 | text_input = TextInput(value="default", title="Label:") 8 | 9 | show(widgetbox(text_input)) 10 | -------------------------------------------------------------------------------- /examples/app/weather/README.md: -------------------------------------------------------------------------------- 1 | This example shows the daily record, average, and actual temperatures for three 2 | cities (Austin, Boston, Seattle) in 2015. The default view includes a discrete 3 | graph of the temperatures, but a smoothed representation can be selected. 4 | 5 | To run the script, execute: 6 | 7 | bokeh serve --show weather/ 8 | -------------------------------------------------------------------------------- /scripts/ci/test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | if [[ ! -z "${TRAVIS_TAG}" ]]; then 7 | echo 8 | echo "SKIPPING TEST STAGE SCRIPT --- This is a build for release tag ${TRAVIS_TAG}" 9 | echo 10 | exit 0 11 | fi 12 | 13 | bokeh info 14 | 15 | bash "scripts/ci/test:${GROUP}" 16 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/0_bokeh.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh: 2 | 3 | bokeh 4 | ===== 5 | 6 | The ``bokeh`` module itself contains a few useful functions and attributes: 7 | 8 | .. attribute:: __version__ 9 | :annotation: = currently installed version of Bokeh 10 | 11 | .. autofunction:: bokeh.license 12 | 13 | .. autofunction:: bokeh.test 14 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_rectangles.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, show, output_file 2 | 3 | output_file('rectangles.html') 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.quad(top=[2, 3, 4], bottom=[1, 2, 3], left=[1, 2, 3], 7 | right=[1.2, 2.5, 3.7], color="#B3DE69") 8 | 9 | show(p) 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_dimensions.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("dimensions.html") 4 | 5 | # create a new plot with specific dimensions 6 | p = figure(plot_width=700) 7 | p.plot_height = 300 8 | 9 | p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=10) 10 | 11 | show(p) 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_min_border.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("border.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.border_fill_color = "whitesmoke" 7 | p.min_border_left = 80 8 | 9 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 10 | 11 | show(p) 12 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/layouts/row.coffee: -------------------------------------------------------------------------------- 1 | import {Box, BoxView} from "./box" 2 | 3 | export class RowView extends BoxView 4 | className: "bk-grid-row" 5 | 6 | export class Row extends Box 7 | type: 'Row' 8 | default_view: RowView 9 | 10 | constructor: (attrs, options) -> 11 | super(attrs, options) 12 | @_horizontal = true 13 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/scales/categorical_scale.coffee: -------------------------------------------------------------------------------- 1 | import {LinearScale} from "./linear_scale" 2 | 3 | export class CategoricalScale extends LinearScale 4 | type: "CategoricalScale" 5 | 6 | compute: (x) -> 7 | return super(@source_range.synthetic(x)) 8 | 9 | v_compute: (xs) -> 10 | return super(@source_range.v_synthetic(xs)) 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/property/descriptor_factory.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.property.descriptor_factory: 2 | 3 | bokeh.core.property.descriptor_factory 4 | -------------------------------------- 5 | 6 | .. automodule:: bokeh.core.property.descriptor_factory 7 | :members: 8 | :special-members: 9 | :exclude-members: __weakref__ 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_select.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import Select 4 | 5 | output_file("select.html") 6 | 7 | select = Select(title="Option:", value="foo", options=["foo", "bar", "baz", "quux"]) 8 | 9 | show(widgetbox(select)) 10 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/renderers/guide_renderer.coffee: -------------------------------------------------------------------------------- 1 | import {Renderer} from "./renderer" 2 | import * as p from "core/properties" 3 | 4 | export class GuideRenderer extends Renderer 5 | type: 'GuideRenderer' 6 | 7 | @define { 8 | plot: [ p.Instance ] 9 | } 10 | 11 | @override { 12 | level: 'overlay' 13 | } 14 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/enums.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.enums: 2 | 3 | bokeh.core.enums 4 | ---------------- 5 | 6 | .. enumeration is excluded below so that it can be explicitly 7 | .. included earlier in the module docstring 8 | 9 | .. automodule:: bokeh.core.enums 10 | :members: 11 | :undoc-members: 12 | :exclude-members: enumeration 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/reference/core/property/descriptors.rst: -------------------------------------------------------------------------------- 1 | .. _bokeh.core.property.descriptors: 2 | 3 | 4 | bokeh.core.property.descriptors 5 | ------------------------------- 6 | 7 | .. automodule:: bokeh.core.property.descriptors 8 | :members: 9 | :member-order: bysource 10 | :special-members: 11 | :exclude-members: __weakref__ 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_patch_single.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("patch.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | 7 | # add a patch renderer with an alpha an line width 8 | p.patch([1, 2, 3, 4, 5], [6, 7, 8, 7, 3], alpha=0.5, line_width=2) 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/api/typings/models/images.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace Bokeh { 2 | export var ImageSource: { new(attributes?: IImageSource, options?: ModelOpts): ImageSource }; 3 | export interface ImageSource extends Model, IImageSource {} 4 | export interface IImageSource extends IModel { 5 | url?: string; 6 | extra_url_vars?: Map; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.2.0.rst: -------------------------------------------------------------------------------- 1 | 0.2.0 (Oct 2013) 2 | ================ 3 | 4 | * bokeh.plotting interface for schematized plotting, that wraps the low-level interface 5 | * Performance improvements in BokehJS 6 | * Fixed rendering glitches for HiDPI/Retina displays 7 | * Greatly improved Python interface architecture 8 | * Many more examples, much improved docs 9 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/layouts/column.coffee: -------------------------------------------------------------------------------- 1 | import {Box, BoxView} from "./box" 2 | 3 | export class ColumnView extends BoxView 4 | className: "bk-grid-column" 5 | 6 | export class Column extends Box 7 | type: 'Column' 8 | default_view: ColumnView 9 | 10 | constructor: (attrs, options) -> 11 | super(attrs, options) 12 | @_horizontal = false 13 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/widgets/password_input.coffee: -------------------------------------------------------------------------------- 1 | import {TextInput, TextInputView} from "./text_input" 2 | 3 | export class PasswordInputView extends TextInputView 4 | render: () -> 5 | super() 6 | @inputEl.type = "password" 7 | 8 | export class PasswordInput extends TextInput 9 | type: "PasswordInput" 10 | default_view: PasswordInputView 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_ellipses.py: -------------------------------------------------------------------------------- 1 | from math import pi 2 | from bokeh.plotting import figure, show, output_file 3 | 4 | output_file('ellipses.html') 5 | 6 | p = figure(plot_width=400, plot_height=400) 7 | p.ellipse(x=[1, 2, 3], y=[1, 2, 3], width=[0.2, 0.3, 0.1], height=0.3, 8 | angle=pi/3, color="#CAB2D6") 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_line_missing_points.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("line.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | 7 | # add a line renderer with a NaN 8 | nan = float('nan') 9 | p.line([1, 2, 3, nan, 4, 5], [6, 7, 2, 4, 4, 5], line_width=2) 10 | 11 | show(p) 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_ovals.py: -------------------------------------------------------------------------------- 1 | from math import pi 2 | from bokeh.plotting import figure, show, output_file 3 | 4 | output_file('ovals.html') 5 | 6 | p = figure(plot_width=400, plot_height=400) 7 | p.oval(x=[1, 2, 3], y=[1, 2, 3], width=0.2, height=40, color="#CAB2D6", 8 | angle=pi/3, height_units="screen") 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_background_fill.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("background.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.background_fill_color = "beige" 7 | p.background_fill_alpha = 0.5 8 | 9 | p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=10) 10 | 11 | show(p) 12 | -------------------------------------------------------------------------------- /bokehjs/gulp/tasks/build.ts: -------------------------------------------------------------------------------- 1 | import * as gulp from "gulp" 2 | import * as runSequence from "run-sequence" 3 | 4 | gulp.task("build", [], (cb: (arg?: any) => void) => { 5 | runSequence(["scripts", "styles", "compiler:build"], cb) 6 | }) 7 | 8 | gulp.task("dev-build", [], (cb: (arg?: any) => void) => { 9 | runSequence(["scripts:build", "styles:build"], cb) 10 | }) 11 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/core/util/selection.coffee: -------------------------------------------------------------------------------- 1 | export get_indices = (data_source) -> 2 | selected = data_source.selected 3 | 4 | if selected['0d'].glyph 5 | selected['0d'].indices 6 | else if selected['1d'].indices.length > 0 7 | selected['1d'].indices 8 | else if selected['2d'].indices.length > 0 9 | selected['2d'].indices 10 | else 11 | [] 12 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/sources/remote_data_source.coffee: -------------------------------------------------------------------------------- 1 | import {ColumnDataSource} from "./column_data_source" 2 | import * as p from "core/properties" 3 | 4 | export class RemoteDataSource extends ColumnDataSource 5 | type: 'RemoteDataSource' 6 | 7 | @define { 8 | data_url: [ p.String ] 9 | polling_interval: [ p.Number ] 10 | } 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_radio_group.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import RadioGroup 4 | 5 | output_file("radio_group.html") 6 | 7 | radio_group = RadioGroup( 8 | labels=["Option 1", "Option 2", "Option 3"], active=0) 9 | 10 | show(widgetbox(radio_group)) 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_patch_multiple.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("patch.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | 7 | p.patches([[1, 3, 2], [3, 4, 6, 6]], [[2, 1, 4], [4, 7, 8, 5]], 8 | color=["firebrick", "navy"], alpha=[0.8, 0.3], line_width=2) 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/source_examples/interaction_range_slider.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import RangeSlider 4 | 5 | output_file("range_slider.html") 6 | 7 | range_slider = RangeSlider(start=0, end=10, value=(1,9), step=.1, title="Stuff") 8 | 9 | show(widgetbox(range_slider)) 10 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tiles/tms_tile_source.coffee: -------------------------------------------------------------------------------- 1 | import {MercatorTileSource} from './mercator_tile_source' 2 | 3 | export class TMSTileSource extends MercatorTileSource 4 | type: 'TMSTileSource' 5 | 6 | get_image_url: (x, y, z) -> 7 | image_url = @string_lookup_replace(@url, @extra_url_vars) 8 | return image_url.replace("{X}", x).replace('{Y}', y).replace("{Z}", z) 9 | -------------------------------------------------------------------------------- /scripts/ci/install:examples: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e # exit on error 4 | set -x # echo commands 5 | 6 | # install NPM dependencies and build JS examples 7 | pushd bokehjs 8 | npm install 9 | node_modules/.bin/gulp examples --no-build 10 | popd 11 | 12 | # install Bokeh sample data needed by examples 13 | python -c 'import bokeh; bokeh.sampledata.download(progress=False)' 14 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_line_multiple.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("patch.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | 7 | p.multi_line([[1, 3, 2], [3, 4, 6, 6]], [[2, 1, 4], [4, 7, 8, 5]], 8 | color=["firebrick", "navy"], alpha=[0.8, 0.3], line_width=4) 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /bokeh/application/handlers/__init__.py: -------------------------------------------------------------------------------- 1 | ''' Provides different ways for Bokeh applications to modify Bokeh 2 | Documents when sessions are created. 3 | 4 | ''' 5 | from __future__ import absolute_import 6 | 7 | from .handler import * 8 | from .function import * 9 | from .notebook import * 10 | from .script import * 11 | from .server_lifecycle import * 12 | from .directory import * 13 | -------------------------------------------------------------------------------- /bokeh/models/widgets/__init__.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | # This file is excluded from flake8 checking in setup.cfg 4 | 5 | from .buttons import * 6 | from .groups import * 7 | from .icons import * 8 | from .inputs import * 9 | from .markups import * 10 | from .panels import * 11 | from .sliders import * 12 | from .tables import * 13 | from .widget import * 14 | -------------------------------------------------------------------------------- /bokeh/sphinxext/_templates/plot_page.rst: -------------------------------------------------------------------------------- 1 | :orphan: 2 | 3 | .. index:: 4 | single: examples; {{ filename }} 5 | 6 | {{ filename }} 7 | {{ '-' * filename|length }} 8 | 9 | {% if docstring %} 10 | {{ docstring }} 11 | {% endif %} 12 | 13 | .. raw:: html 14 | 15 | {{ script|indent(4) }} 16 | 17 | ---- 18 | 19 | .. code-block:: python 20 | 21 | {{ source|indent(4) }} 22 | -------------------------------------------------------------------------------- /bokeh/tests/test_main_module.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import subprocess 3 | import bokeh 4 | 5 | 6 | def test_main_module(): 7 | """ Test the __main__.py that allow doing "python -m bokeh" 8 | """ 9 | cmd = [sys.executable, '-m', 'bokeh', '--version'] 10 | v = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode().strip() 11 | assert v == bokeh.__version__ 12 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/graphs/layout_provider.coffee: -------------------------------------------------------------------------------- 1 | import {Model} from "../../model" 2 | 3 | export class LayoutProvider extends Model 4 | 5 | get_node_coordinates: (graph_source) -> 6 | # this is implemented by base classes 7 | return [[], []] 8 | 9 | get_edge_coordinates: (graph_source) -> 10 | # this is implemented by base classes 11 | return [[], []] 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.8.1.rst: -------------------------------------------------------------------------------- 1 | 0.8.1 (Feb 2015) 2 | ================ 3 | 4 | This quick release was focused on stability, bug fixes and improved documentation. 5 | 6 | * Fixed HoverTool 7 | * Fixed Abstract rendering implementation and docs 8 | * Fixed chart gallery and docs 9 | * Removed leftovers from the old plotting API implementation 10 | * Some other minor docs fixes 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_plot_outline_line_color.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("outline.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.outline_line_width = 7 7 | p.outline_line_alpha = 0.3 8 | p.outline_line_color = "navy" 9 | 10 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 11 | 12 | show(p) 13 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tools/actions/save_tool.coffee: -------------------------------------------------------------------------------- 1 | import {ActionTool, ActionToolView} from "./action_tool" 2 | 3 | export class SaveToolView extends ActionToolView 4 | 5 | doit: () -> @plot_view.save("bokeh_plot") 6 | 7 | export class SaveTool extends ActionTool 8 | default_view: SaveToolView 9 | type: "SaveTool" 10 | tool_name: "Save" 11 | icon: "bk-tool-icon-save" 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_rectangles_rotated.py: -------------------------------------------------------------------------------- 1 | from math import pi 2 | from bokeh.plotting import figure, show, output_file 3 | 4 | output_file('rectangles_rotated.html') 5 | 6 | p = figure(plot_width=400, plot_height=400) 7 | p.rect(x=[1, 2, 3], y=[1, 2, 3], width=0.2, height=40, color="#CAB2D6", 8 | angle=pi/3, height_units="screen") 9 | 10 | show(p) 11 | -------------------------------------------------------------------------------- /bokeh/core/_templates/plot_div.html: -------------------------------------------------------------------------------- 1 | {# 2 | Renders a basic plot div, that can be used in conjunction with PLOT_JS. 3 | 4 | :param elementid: a unique identifier for the ``
`` a PLOT_JS 5 | template should be configured with the same ``elementid`` 6 | :type elementid: str 7 | 8 | #} 9 |
10 |
11 |
12 | -------------------------------------------------------------------------------- /bokehjs/gulp/tasks/watch.ts: -------------------------------------------------------------------------------- 1 | import * as gulp from "gulp" 2 | import * as runSequence from "run-sequence" 3 | import * as paths from "../paths" 4 | 5 | gulp.task("watch", () => { 6 | gulp.watch(`${paths.coffee.watchSources}`, () => { 7 | runSequence("scripts:build") 8 | }) 9 | gulp.watch(`${paths.less.watchSources}`, () => { 10 | runSequence("styles:build") 11 | }) 12 | }) 13 | -------------------------------------------------------------------------------- /examples/plotting/notebook/README.md: -------------------------------------------------------------------------------- 1 | The examples in this directory illustrate the use of Bokeh inside the Jupyter 2 | notebook. To view the examples here, first execute 'jupyter notebook' in this 3 | directory. A web browser should automatically open up to the Jupyter Dashboard 4 | at localhost:8888 (or you may navigate there manually). Click on any of the 5 | notebooks listed to open and explore. 6 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_patch_missing_points.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("patch.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | 7 | # add a patch renderer with a NaN value 8 | nan = float('nan') 9 | p.patch([1, 2, 3, nan, 4, 5, 6], [6, 7, 5, nan, 7, 3, 6], alpha=0.5, line_width=2) 10 | 11 | show(p) 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/tools_position_toolbar_clash.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("toolbar.html") 4 | 5 | # create a new plot with the toolbar below 6 | p = figure(plot_width=400, plot_height=400, 7 | title=None, toolbar_location="below") 8 | 9 | p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=10) 10 | 11 | show(p) 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_checkbox_group.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import CheckboxGroup 4 | 5 | output_file("checkbox_group.html") 6 | 7 | checkbox_group = CheckboxGroup( 8 | labels=["Option 1", "Option 2", "Option 3"], active=[0, 1]) 9 | 10 | show(widgetbox(checkbox_group)) 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_title.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("title.html") 4 | 5 | p = figure(plot_width=400, plot_height=400, title="Some Title") 6 | p.title.text_color = "olive" 7 | p.title.text_font = "times" 8 | p.title.text_font_style = "italic" 9 | 10 | p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=10) 11 | 12 | show(p) 13 | -------------------------------------------------------------------------------- /bokeh/sampledata/movies_data.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from os.path import dirname, join, isfile, expanduser 4 | 5 | path1 = join(dirname(__file__), 'movies.db') 6 | path2 = expanduser('~/.bokeh/data/movies.db') 7 | movie_path = path1 if isfile(path1) else path2 8 | 9 | if not isfile(movie_path): 10 | raise RuntimeError('Use bokeh.sampledata.download to get the movies data.') 11 | -------------------------------------------------------------------------------- /bokeh/sampledata/mtb.py: -------------------------------------------------------------------------------- 1 | ''' 2 | 3 | ''' 4 | from __future__ import absolute_import 5 | 6 | from bokeh.util.dependencies import import_required 7 | pd = import_required('pandas', 8 | 'mtb sample data requires Pandas (http://pandas.pydata.org) to be installed') 9 | 10 | from os.path import dirname, join 11 | 12 | obiszow_mtb_xcm = pd.read_csv(join(dirname(__file__), 'obiszow_mtb_xcm.csv')) 13 | -------------------------------------------------------------------------------- /sphinx/source/bokeh_theme/includes/searchbox.html: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_tick_label_orientation.py: -------------------------------------------------------------------------------- 1 | from math import pi 2 | from bokeh.plotting import figure, output_file, show 3 | 4 | output_file("gridlines.html") 5 | 6 | p = figure(plot_width=400, plot_height=400) 7 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 8 | 9 | p.xaxis.major_label_orientation = pi/4 10 | p.yaxis.major_label_orientation = "vertical" 11 | 12 | show(p) 13 | -------------------------------------------------------------------------------- /bokeh/sampledata/sprint.py: -------------------------------------------------------------------------------- 1 | from __future__ import absolute_import 2 | 3 | from bokeh.util.dependencies import import_required 4 | pd = import_required('pandas', 5 | 'sprint sample data requires Pandas (http://pandas.pydata.org) to be installed') 6 | 7 | from os.path import dirname, join 8 | 9 | sprint = pd.read_csv(join(dirname(__file__), 'sprint.csv'), skipinitialspace=True, escapechar="\\") 10 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/transforms/index.ts: -------------------------------------------------------------------------------- 1 | export {CustomJSTransform} from "./customjs_transform" 2 | export {Dodge} from "./dodge" 3 | export {Interpolator} from "./interpolator" 4 | export {Jitter} from "./jitter" 5 | export {LinearInterpolator} from "./linear_interpolator" 6 | export {StepInterpolator} from "./step_interpolator" 7 | export {Transform} from "./transform" 8 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # This will first install the library located at the file path and then 2 | # move on to its abstract dependencies (listed in install_requires), 3 | # combining them with its --index option (the PyPi location) and 4 | # turning them into concrete dependencies and installing them. 5 | # Reference: https://caremad.io/blog/setup-vs-requirement/ 6 | --index-url https://pypi.python.org/simple/ 7 | 8 | -e . 9 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_radio_button_group.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import RadioButtonGroup 4 | 5 | output_file("radio_button_group.html") 6 | 7 | radio_button_group = RadioButtonGroup( 8 | labels=["Option 1", "Option 2", "Option 3"], active=0) 9 | 10 | show(widgetbox(radio_button_group)) 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_categorical_axis.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | factors = ["a", "b", "c", "d", "e", "f", "g", "h"] 4 | x = [50, 40, 65, 10, 25, 37, 80, 60] 5 | 6 | output_file("categorical.html") 7 | 8 | p = figure(y_range=factors) 9 | 10 | p.circle(x, factors, size=15, fill_color="orange", line_color="green", line_width=3) 11 | 12 | show(p) 13 | -------------------------------------------------------------------------------- /bokeh/core/_templates/notebook_div.html: -------------------------------------------------------------------------------- 1 | {# 2 | Renders a ``div`` to display a Bokeh model into a Jupyter Notebook. 3 | 4 | :param plot_script: typically the output of PLOT_SCRIPT 5 | :type plot_script: str 6 | 7 | :param plot_div: typically the output of PLOT_DIV 8 | :type plot_div: str 9 | 10 | #} 11 | {{ plot_div|indent(4) }} 12 | 15 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_multiple_glyphs.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | x = [1, 2, 3, 4, 5] 4 | y = [6, 7, 8, 7, 3] 5 | 6 | output_file("multiple.html") 7 | 8 | p = figure(plot_width=400, plot_height=400) 9 | 10 | # add both a line and circles on the same plot 11 | p.line(x, y, line_width=2) 12 | p.circle(x, y, fill_color="white", size=8) 13 | 14 | show(p) 15 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_minor_grid_lines.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("minorgridlines.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 7 | 8 | # change just some things about the y-grid 9 | p.ygrid.minor_grid_line_color = 'navy' 10 | p.ygrid.minor_grid_line_alpha = 0.1 11 | 12 | show(p) 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/extensions_gallery/tool.rst: -------------------------------------------------------------------------------- 1 | .. _userguide_extensions_examples_tool: 2 | 3 | A New Custom Tool 4 | ----------------- 5 | 6 | This example shows a custom `GestureTool` subclass that can be used to sketch 7 | on the plot canvas by dragging a mouse (or finger on a touch device). 8 | 9 | .. bokeh-plot:: docs/user_guide/examples/extensions_example_tool.py 10 | :source-position: below 11 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/transforms/dodge.coffee: -------------------------------------------------------------------------------- 1 | import {Transform} from "./transform" 2 | import * as p from "core/properties" 3 | 4 | export class Dodge extends Transform 5 | @define { 6 | value: [ p.Number, 0 ] 7 | range: [ p.Instance ] 8 | } 9 | 10 | compute: (x, use_synthetic=true) -> 11 | if @range?.synthetic? and use_synthetic 12 | x = @range.synthetic(x) 13 | return x + @value 14 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/transforms/transform.coffee: -------------------------------------------------------------------------------- 1 | import {Model} from "../../model" 2 | 3 | export class Transform extends Model 4 | 5 | # default implementation based on compute 6 | v_compute: (xs) -> 7 | if @range?.v_synthetic? 8 | xs = @range.v_synthetic(xs) 9 | result = new Float64Array(xs.length) 10 | for x, idx in xs 11 | result[idx] = this.compute(x, false) 12 | return result 13 | -------------------------------------------------------------------------------- /bokehjs/src/less/widgets/bootstrap.less: -------------------------------------------------------------------------------- 1 | @bootstrap: "./bootstrap-3.1.1/less"; 2 | 3 | @import "@{bootstrap}/variables.less"; 4 | @import "@{bootstrap}/mixins.less"; 5 | @import "@{bootstrap}/forms.less"; 6 | @import "@{bootstrap}/buttons.less"; 7 | @import "@{bootstrap}/dropdowns.less"; 8 | @import "@{bootstrap}/button-groups.less"; 9 | @import "@{bootstrap}/input-groups.less"; 10 | @import "@{bootstrap}/navs.less"; 11 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/api/typings/selected.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace Bokeh { 2 | // get_view() returns null or View, but View is not typed yet 3 | export type Selected0d = {indices: Array, glyph?: Glyph, get_view(): any}; 4 | export type Selected1d = {indices: Array}; 5 | export type Selected2d = {indices: Array>}; 6 | 7 | export type Selected = { '0d': Selected0d, '1d': Selected1d, '2d': Selected2d }; 8 | } 9 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/index.coffee: -------------------------------------------------------------------------------- 1 | bokehjs = () -> 2 | if not window?.document? 3 | throw new Error("bokehjs requires a window with a document. If your 4 | runtime environment doesn't provide those, e.g. pure node.js, you 5 | can use jsdom library to configure window and document.") 6 | 7 | Bokeh = require './main' 8 | return Bokeh 9 | 10 | module.exports = if window?.document? then bokehjs() else bokehjs 11 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/main.ts: -------------------------------------------------------------------------------- 1 | import "./polyfill" 2 | 3 | export {version} from "./version" 4 | 5 | import * as embed from "./embed" 6 | export {embed} 7 | 8 | export {logger, set_log_level} from "./core/logging" 9 | export {settings} from "./core/settings" 10 | export {Models, index} from "./base" 11 | export {documents} from "./document" 12 | export {safely} from "./safely" 13 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/widgets/pretext.coffee: -------------------------------------------------------------------------------- 1 | import {Markup, MarkupView} from "./markup" 2 | import {pre} from "core/dom" 3 | 4 | export class PreTextView extends MarkupView 5 | 6 | render: () -> 7 | super() 8 | content = pre({style: {overflow: "auto"}}, @model.text) 9 | @markupEl.appendChild(content) 10 | 11 | export class PreText extends Markup 12 | type: "PreText" 13 | default_view: PreTextView 14 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_scatter_circle.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | # output to static HTML file 4 | output_file("line.html") 5 | 6 | p = figure(plot_width=400, plot_height=400) 7 | 8 | # add a circle renderer with a size, color, and alpha 9 | p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20, color="navy", alpha=0.5) 10 | 11 | # show the results 12 | show(p) 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_scatter_square.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | # output to static HTML file 4 | output_file("square.html") 5 | 6 | p = figure(plot_width=400, plot_height=400) 7 | 8 | # add a square renderer with a size, color, and alpha 9 | p.square([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20, color="olive", alpha=0.5) 10 | 11 | # show the results 12 | show(p) 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/tools_position_toolbar.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("toolbar.html") 4 | 5 | # create a new plot with the toolbar below 6 | p = figure(plot_width=400, plot_height=400, 7 | title=None, toolbar_location="below", 8 | toolbar_sticky=False) 9 | 10 | p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=10) 11 | 12 | show(p) 13 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/sources/index.ts: -------------------------------------------------------------------------------- 1 | export {AjaxDataSource} from "./ajax_data_source" 2 | export {ColumnDataSource} from "./column_data_source" 3 | export {ColumnarDataSource} from "./columnar_data_source" 4 | export {CDSView} from "./cds_view" 5 | export {DataSource} from "./data_source" 6 | export {GeoJSONDataSource} from "./geojson_data_source" 7 | export {RemoteDataSource} from "./remote_data_source" 8 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tiles/wmts_tile_source.coffee: -------------------------------------------------------------------------------- 1 | import {MercatorTileSource} from './mercator_tile_source' 2 | 3 | export class WMTSTileSource extends MercatorTileSource 4 | type: 'WMTSTileSource' 5 | 6 | get_image_url: (x, y, z) -> 7 | image_url = @string_lookup_replace(@url, @extra_url_vars) 8 | [x, y, z] = @tms_to_wmts(x, y, z) 9 | return image_url.replace("{X}", x).replace('{Y}', y).replace("{Z}", z) 10 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tools/inspectors/inspect_tool.coffee: -------------------------------------------------------------------------------- 1 | import * as p from "core/properties" 2 | 3 | import {ButtonTool, ButtonToolView} from "../button_tool" 4 | 5 | export class InspectToolView extends ButtonToolView 6 | 7 | export class InspectTool extends ButtonTool 8 | event_type: "move" 9 | 10 | @define { 11 | toggleable: [ p.Bool, true ] 12 | } 13 | 14 | @override { 15 | active: true 16 | } 17 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tools/on_off_button.coffee: -------------------------------------------------------------------------------- 1 | import {ButtonToolButtonView} from "./button_tool" 2 | 3 | export class OnOffButtonView extends ButtonToolButtonView 4 | 5 | render: () -> 6 | super() 7 | if @model.active 8 | @el.classList.add('bk-active') 9 | else 10 | @el.classList.remove('bk-active') 11 | 12 | _clicked: () -> 13 | active = @model.active 14 | @model.active = not active 15 | -------------------------------------------------------------------------------- /bokehjs/src/less/canvas.less: -------------------------------------------------------------------------------- 1 | .bk-canvas-wrapper { 2 | position: relative; 3 | font-size: 12pt; 4 | float: left; 5 | } 6 | 7 | .bk-canvas { 8 | clear: both; 9 | position: absolute; 10 | font-size: 12pt; 11 | } 12 | 13 | .bk-canvas-wrapper .bk-canvas-map { 14 | position: absolute !important; 15 | z-index: -5; 16 | } 17 | 18 | .bk-canvas-map { 19 | position: absolute; 20 | border: 0; 21 | z-index: -5; 22 | } 23 | -------------------------------------------------------------------------------- /examples/app/simple_hdf5/create_hdf5.py: -------------------------------------------------------------------------------- 1 | import h5py 2 | import numpy as np 3 | 4 | 5 | def f(x): 6 | return np.exp(-x ** 2 / 2) / np.sqrt(2 * np.pi) 7 | 8 | 9 | a = np.random.rand(100, 1) 10 | b = [f(x) for x in np.linspace(-1, 1, num=100)] 11 | 12 | 13 | with h5py.File('demo_data.hdf5', 'w') as f: 14 | hip_data = f.create_dataset("hip_strength", data=a) 15 | knee_data = f.create_dataset("knee_strength", data=b) 16 | -------------------------------------------------------------------------------- /sphinx/source/docs/includes/colors.txt: -------------------------------------------------------------------------------- 1 | - any of the `147 named CSS colors`_, e.g ``'green'``, ``'indigo'`` 2 | - an RGB(A) hex value, e.g., ``'#FF0000'``, ``'#44444444'`` 3 | - a 3-tuple of integers *(r,g,b)* between 0 and 255 4 | - a 4-tuple of *(r,g,b,a)* where *r*, *g*, *b* are integers between 0 and 255 and *a* is a floating point value between 0 and 1 5 | 6 | .. _147 named CSS colors: http://www.w3schools.com/colors/colors_names.asp 7 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_glyph_properties.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("axes.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | r = p.circle([1,2,3,4,5], [2,5,8,2,7]) 7 | 8 | glyph = r.glyph 9 | glyph.size = 60 10 | glyph.fill_alpha = 0.2 11 | glyph.line_color = "firebrick" 12 | glyph.line_dash = [6, 3] 13 | glyph.line_width = 2 14 | 15 | show(p) 16 | -------------------------------------------------------------------------------- /bokehjs/examples/electron/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BokehJS in Electron 6 | 7 | 8 | 9 | 10 | 14 | 15 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/expressions/stack.coffee: -------------------------------------------------------------------------------- 1 | import {Expression} from "./expression" 2 | import * as p from "core/properties" 3 | 4 | export class Stack extends Expression 5 | @define { 6 | fields: [ p.Array, [] ] 7 | } 8 | 9 | v_compute: (source) -> 10 | result = new Float64Array(source.get_length()) 11 | for f in @fields 12 | for x, i in source.data[f] 13 | result[i] += x 14 | return result 15 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_checkbox_button_group.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import CheckboxButtonGroup 4 | 5 | output_file("checkbox_button_group.html") 6 | 7 | checkbox_button_group = CheckboxButtonGroup( 8 | labels=["Option 1", "Option 2", "Option 3"], active=[0, 1]) 9 | 10 | show(widgetbox(checkbox_button_group)) 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_dropdown_menu.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import Dropdown 4 | 5 | output_file("dropdown.html") 6 | 7 | menu = [("Item 1", "item_1"), ("Item 2", "item_2"), None, ("Item 3", "item_3")] 8 | dropdown = Dropdown(label="Dropdown button", button_type="warning", menu=menu) 9 | 10 | show(widgetbox(dropdown)) 11 | -------------------------------------------------------------------------------- /examples/custom/font-awesome/font-awesome.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import show 2 | from bokeh.layouts import column 3 | from bokeh.models import CustomJS 4 | from bokeh.models.widgets import Button 5 | from fontawesome_icon import FontAwesomeIcon 6 | 7 | btn = Button(icon=FontAwesomeIcon(icon_name="thumbs-o-up", size=2), 8 | label="It works!", 9 | callback=CustomJS(code="alert('It works!');")) 10 | show(column(btn)) 11 | -------------------------------------------------------------------------------- /examples/howto/README.md: -------------------------------------------------------------------------------- 1 | The examples in this directory show off various kinds of interactions that are easily 2 | possible using Bokeh, including: 3 | 4 | * linked panning/zooming 5 | * linked selection brushing 6 | * hover tooltips 7 | * controlling range bounds 8 | * updating date from an AJAX data source 9 | * using JS callbacks for range updates, widgets, etc. 10 | 11 | as well as show more detailed walkthroughs of some specific examples. 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/concepts_plotting.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | # create a Figure object 4 | p = figure(plot_width=300, plot_height=300, tools="pan,reset,save") 5 | 6 | # add a Circle renderer to this figure 7 | p.circle([1, 2.5, 3, 2], [2, 3, 1, 1.5], radius=0.3, alpha=0.5) 8 | 9 | # specify how to output the plot(s) 10 | output_file("foo.html") 11 | 12 | # display the figure 13 | show(p) 14 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_log_scale_axis.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | x = [0.1, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0] 4 | y = [10**xx for xx in x] 5 | 6 | output_file("log.html") 7 | 8 | # create a new plot with a log axis type 9 | p = figure(plot_width=400, plot_height=400, y_axis_type="log") 10 | 11 | p.line(x, y, line_width=2) 12 | p.circle(x, y, fill_color="white", size=8) 13 | 14 | show(p) 15 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/api/typings/views.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace Bokeh { 2 | interface ViewOptions { 3 | model: ModelType; 4 | id?: string; 5 | el?: HTMLElement; 6 | } 7 | 8 | class View { 9 | constructor(options?: ViewOptions); 10 | 11 | model: ModelType; 12 | id: string; 13 | el: HTMLElement; 14 | 15 | render(): this; 16 | remove(): this; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/interaction_multiselect.py: -------------------------------------------------------------------------------- 1 | from bokeh.io import output_file, show 2 | from bokeh.layouts import widgetbox 3 | from bokeh.models.widgets import MultiSelect 4 | 5 | output_file("multi_select.html") 6 | 7 | multi_select = MultiSelect(title="Option:", value=["foo", "quux"], 8 | options=[("foo", "Foo"), ("bar", "BAR"), ("baz", "bAz"), ("quux", "quux")]) 9 | 10 | show(widgetbox(multi_select)) 11 | -------------------------------------------------------------------------------- /bokehjs/gulp/tasks/clean.ts: -------------------------------------------------------------------------------- 1 | import * as del from "del" 2 | import * as gulp from "gulp" 3 | 4 | import * as paths from "../paths" 5 | 6 | gulp.task("clean", ["clean:scripts", "clean:styles"]) 7 | 8 | gulp.task("clean:all", () => { 9 | return del(paths.build_dir.all) 10 | }) 11 | 12 | gulp.task("clean:scripts", () => { 13 | return del(paths.build_dir.js) 14 | }) 15 | 16 | gulp.task("clean:styles", () => { 17 | return del(paths.build_dir.css) 18 | }) 19 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tickers/fixed_ticker.coffee: -------------------------------------------------------------------------------- 1 | import {ContinuousTicker} from "./continuous_ticker" 2 | import * as p from "core/properties" 3 | 4 | export class FixedTicker extends ContinuousTicker 5 | type: 'FixedTicker' 6 | 7 | @define { 8 | ticks: [ p.Array, [] ] 9 | } 10 | 11 | get_ticks_no_defaults: (data_low, data_high, cross_loc, desired_n_ticks) -> 12 | return { 13 | major: @ticks 14 | minor: [] 15 | } 16 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tiles/quadkey_tile_source.coffee: -------------------------------------------------------------------------------- 1 | import {MercatorTileSource} from './mercator_tile_source' 2 | 3 | export class QUADKEYTileSource extends MercatorTileSource 4 | type: 'QUADKEYTileSource' 5 | 6 | get_image_url: (x, y, z) -> 7 | image_url = @string_lookup_replace(@url, @extra_url_vars) 8 | [x, y, z] = @tms_to_wmts(x, y, z) 9 | quadKey = @tile_xyz_to_quadkey(x, y, z) 10 | return image_url.replace("{Q}", quadKey) 11 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | All pull requests must have an associated issue in the issue tracker. If there 2 | isn't one, please go open an issue describing the defect, deficiency or desired 3 | feature. You can read more about our issue and PR processes in the 4 | [wiki](https://github.com/bokeh/bokeh/wiki/BEP-1:-Issues-and-PRs-management). 5 | 6 | - [ ] issues: fixes #xxxx 7 | - [ ] tests added / passed 8 | - [ ] release document entry (if new feature or API change) 9 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/api/typings/types.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace Bokeh { 2 | export type Int = number; 3 | export type Percent = number; 4 | export type Color = NamedColor | 5 | string | 6 | [Int, Int, Int] | // RGB (r, g, b) 7 | [Int, Int, Int, Percent]; // RGBA(r, g, b, a) 8 | export type FontSize = string; 9 | export type Map = {[key: string]: T}; 10 | export type JsObj = Map; 11 | } 12 | -------------------------------------------------------------------------------- /bokehjs/src/coffee/models/tiles/image_pool.coffee: -------------------------------------------------------------------------------- 1 | export class ImagePool 2 | 3 | constructor: () -> 4 | @images = [] 5 | 6 | pop: () -> 7 | img = @images.pop() 8 | if img? 9 | return img 10 | else 11 | return new Image() 12 | 13 | push: (img) -> 14 | 15 | if @images.length > 50 16 | return 17 | 18 | if img.constructor == Array 19 | Array::push.apply(@images, img) 20 | else 21 | @images.push(img) 22 | -------------------------------------------------------------------------------- /examples/plotting/server/README.md: -------------------------------------------------------------------------------- 1 | All the examples in this directory illustrate how to use the Bokeh server 2 | from simple python scripts. This can also be useful when working with 3 | Jupyter notebooks. 4 | 5 | To run the examples, first start a Bokeh server: 6 | 7 | bokeh serve 8 | 9 | Then execute any of the scripts in this directory, e.g. 10 | 11 | python animated.py 12 | 13 | The document should automatically open in a new tab in your browser. 14 | -------------------------------------------------------------------------------- /sphinx/source/docs/releases/0.6.0.rst: -------------------------------------------------------------------------------- 1 | 0.6.0 (Sep 2014) 2 | ================ 3 | 4 | * Abstract Rendering recipes for large data sets: isocontour, heatmap, hdalpha 5 | * Improved, configurable tool bar for plots 6 | * Full Python 3 support for bokeh-server 7 | * Much expanded User Guide 8 | * Support for multiple axes 9 | * Plot object graph query interface 10 | * New charts in bokeh.charts: TimeSeries and Categorical HeatMap 11 | * Hit-testing for patch glyphs 12 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_figure_range.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | from bokeh.models import Range1d 3 | 4 | output_file("title.html") 5 | 6 | # create a new plot with a range set with a tuple 7 | p = figure(plot_width=400, plot_height=400, x_range=(0, 20)) 8 | 9 | # set a range using a Range1d 10 | p.y_range = Range1d(0, 15) 11 | 12 | p.circle([1, 2, 3, 4, 5], [2, 5, 8, 2, 7], size=10) 13 | 14 | show(p) 15 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_numerical_tick_formatter.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | from bokeh.models import NumeralTickFormatter 3 | 4 | output_file("gridlines.html") 5 | 6 | p = figure(plot_width=400, plot_height=400) 7 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 8 | 9 | p.xaxis[0].formatter = NumeralTickFormatter(format="0.0%") 10 | p.yaxis[0].formatter = NumeralTickFormatter(format="$0.00") 11 | 12 | show(p) 13 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_printf_tick_formatter.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | from bokeh.models import PrintfTickFormatter 3 | 4 | output_file("gridlines.html") 5 | 6 | p = figure(plot_width=400, plot_height=400) 7 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 8 | 9 | p.xaxis[0].formatter = PrintfTickFormatter(format="%4.1e") 10 | p.yaxis[0].formatter = PrintfTickFormatter(format="%5.3f mu") 11 | 12 | show(p) 13 | -------------------------------------------------------------------------------- /docker-tools/Dockerfile-py2: -------------------------------------------------------------------------------- 1 | FROM travisci/ci-garnet:packer-1496954857 2 | 3 | ENV PYTHON=2.7 4 | ENV NO_GIT_FETCH=1 5 | ENV PATH="/home/travis/miniconda/bin:${PATH}" 6 | ENV MINICONDA_FILENAME="Miniconda3-latest-Linux-x86_64.sh" 7 | ENV CONDA_REQS="conda=4.3.21 conda-env=2.6.0 conda-build=2.1.15" 8 | 9 | ADD . /tmp/bokeh 10 | RUN chown -R travis /tmp/bokeh 11 | 12 | USER travis 13 | 14 | RUN cd /tmp/bokeh && scripts/ci/install:test 15 | 16 | RUN rm -rf /tmp/bokeh 17 | -------------------------------------------------------------------------------- /docker-tools/Dockerfile-py3: -------------------------------------------------------------------------------- 1 | FROM travisci/ci-garnet:packer-1496954857 2 | 3 | ENV PYTHON=3.6 4 | ENV NO_GIT_FETCH=1 5 | ENV PATH="/home/travis/miniconda/bin:${PATH}" 6 | ENV MINICONDA_FILENAME="Miniconda3-latest-Linux-x86_64.sh" 7 | ENV CONDA_REQS="conda=4.3.21 conda-env=2.6.0 conda-build=2.1.15" 8 | 9 | ADD . /tmp/bokeh 10 | RUN chown -R travis /tmp/bokeh 11 | 12 | USER travis 13 | 14 | RUN cd /tmp/bokeh && scripts/ci/install:test 15 | 16 | RUN rm -rf /tmp/bokeh 17 | -------------------------------------------------------------------------------- /examples/app/ohlc/README.md: -------------------------------------------------------------------------------- 1 | Create a streaming, updating [OHLC chart](https://en.wikipedia.org/wiki/Open-high-low-close_chart) 2 | with [MACD indicator](https://en.wikipedia.org/wiki/MACD) from simulated market data. 3 | 4 | #### Running 5 | 6 | To view the app directly from a Bokeh server, navigate to the parent 7 | directory [`examples/app`](https://github.com/bokeh/bokeh/tree/master/examples/app), 8 | and execute the command: 9 | 10 | bokeh serve --show ohlc 11 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/plotting_title_additional.py: -------------------------------------------------------------------------------- 1 | from bokeh.models import Title 2 | from bokeh.plotting import figure, show, output_file 3 | 4 | p = figure(title="Left Title", title_location="left", 5 | plot_width=300, plot_height=300) 6 | p.circle([1,2], [3,4]) 7 | 8 | # add extra titles with add_layout(...) 9 | p.add_layout(Title(text="Bottom Centered Title", align="center"), "below") 10 | 11 | output_file("title.html") 12 | 13 | show(p) 14 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_func_tick_formatter.py: -------------------------------------------------------------------------------- 1 | from bokeh.models import FuncTickFormatter 2 | from bokeh.plotting import figure, show, output_file 3 | 4 | output_file("formatter.html") 5 | 6 | p = figure(plot_width=500, plot_height=500) 7 | p.circle([0, 2, 4, 6, 8, 10], [6, 2, 4, 10, 8, 0], size=30) 8 | 9 | p.yaxis.formatter = FuncTickFormatter(code=""" 10 | return Math.floor(tick) + " + " + (tick % 1).toFixed(2) 11 | """) 12 | 13 | show(p) 14 | -------------------------------------------------------------------------------- /bokeh/sampledata/us_cities.py: -------------------------------------------------------------------------------- 1 | ''' 2 | 3 | ''' 4 | from __future__ import absolute_import 5 | 6 | import json 7 | from os.path import dirname, join, isfile, expanduser 8 | 9 | path1 = join(dirname(__file__), 'us_cities.json') 10 | path2 = expanduser('~/.bokeh/data/us_cities.json') 11 | path = path1 if isfile(path1) else path2 12 | 13 | if not isfile(path): 14 | raise RuntimeError('Use bokeh.sampledata.download to get the us_cities data.') 15 | data = json.load(open(path)) 16 | -------------------------------------------------------------------------------- /bokeh/sampledata/unemployment1948.py: -------------------------------------------------------------------------------- 1 | ''' Provide US Unemployment rate data by year, from 1948 to 20013 2 | 3 | ''' 4 | from __future__ import absolute_import 5 | 6 | from bokeh.util.dependencies import import_required 7 | pd = import_required('pandas', 8 | 'unemployment1948 sample data requires Pandas (http://pandas.pydata.org) to be installed') 9 | 10 | from os.path import dirname, join 11 | 12 | data = pd.read_csv(join(dirname(__file__), 'unemployment1948.csv')) 13 | -------------------------------------------------------------------------------- /bokehjs/test/models/callbacks/openurl.coffee: -------------------------------------------------------------------------------- 1 | {expect} = require "chai" 2 | utils = require "../../utils" 3 | 4 | {OpenURL} = utils.require("models/callbacks/open_url") 5 | 6 | describe "OpenURL", -> 7 | 8 | describe "default creation", -> 9 | r = new OpenURL() 10 | 11 | it "should have default url", -> 12 | expect(r.url).to.be.deep.equal 'http://' 13 | 14 | describe "execute method", -> 15 | 16 | it "should execute get the url for the selected 1d indice" 17 | -------------------------------------------------------------------------------- /sphinx/source/bokeh_theme/includes/ga.html: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_grid_lines.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("gridlines.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 7 | 8 | # change just some things about the x-grid 9 | p.xgrid.grid_line_color = None 10 | 11 | # change just some things about the y-grid 12 | p.ygrid.grid_line_alpha = 0.5 13 | p.ygrid.grid_line_dash = [6, 4] 14 | 15 | show(p) 16 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/examples/styling_labels.py: -------------------------------------------------------------------------------- 1 | from bokeh.plotting import figure, output_file, show 2 | 3 | output_file("bounds.html") 4 | 5 | p = figure(plot_width=400, plot_height=400) 6 | p.circle([1,2,3,4,5], [2,5,8,2,7], size=10) 7 | 8 | p.xaxis.axis_label = "Lot Number" 9 | p.xaxis.axis_label_text_color = "#aa6666" 10 | p.xaxis.axis_label_standoff = 30 11 | 12 | p.yaxis.axis_label = "Bin Count" 13 | p.yaxis.axis_label_text_font_style = "italic" 14 | 15 | show(p) 16 | -------------------------------------------------------------------------------- /sphinx/source/docs/user_guide/extensions_gallery/latex.rst: -------------------------------------------------------------------------------- 1 | .. _userguide_extensions_examples_latex: 2 | 3 | Creating Latex Labels 4 | --------------------- 5 | 6 | This example shows how to create a custom ``LaTexLabel`` class that uses a 7 | third party Javascript library, `KaTex`_, in order to render LaTex onto the plot. 8 | 9 | .. bokeh-plot:: docs/user_guide/examples/extensions_example_latex.py 10 | :source-position: below 11 | 12 | .. _KaTex: https://khan.github.io/KaTeX/ 13 | --------------------------------------------------------------------------------