.. _userguide:

User Guide
==========

This user guide is intended to walk you through many common tasks that
you might want to accomplish using Bokeh. The guide is arranged by
topic:

:ref:`userguide_quickstart`
    Get set up and running quickly.

:ref:`userguide_setup`
    Install Bokeh and verify your installation is working correctly.

:ref:`userguide_concepts`
    Learn important foundational concepts about how Bokeh is organized.

:ref:`userguide_plotting`
    Make different kinds of plots using the simple but flexible glyph
    methods from the |bokeh.plotting| interface.

:ref:`userguide_data`
    Provide data or subsets of data for plots and tables and share data
    between plots.

:ref:`userguide_layout`
    Combine multiple plots and widgets into specified layouts.

:ref:`userguide_categorical`
    Handle categorical data with a variety of different techniques such
    as bar charts, categorical heatmaps, visual dodging, and jitter.

:ref:`userguide_graph`
    Create network graph visualizations with configurable node and edge interactions.

:ref:`userguide_geo`
    Working with geographical data---Google Maps, GeoJSON, Tile Rendering.

:ref:`userguide_tools`
    Make interactive tools (like pan, zoom, select, and others) available
    on your plots.

:ref:`userguide_styling`
    Customize every visual aspect of Bokeh plots---axes, grids, labels,
    glyphs, and more.

:ref:`userguide_annotations`
    Add informational annotations, such as labels, arrows, and legends to
    plots.

:ref:`userguide_interaction`
    Create more sophisticated interactions including widgets or linked
    panning and selection.

:ref:`userguide_server`
    Deploy the Bokeh Server to build and publish sophisticated data
    applications.

:ref:`userguide_notebook`
    Display interactive plots inside Jupyter notebooks.

:ref:`userguide_export`
    Learn how to export Bokeh layouts as PNGs and SVGs.

:ref:`userguide_embed`
    Embed static or server-based Bokeh plots and widgets into HTML documents
    in a variety of ways.

:ref:`userguide_cli`
    Use Bokeh's capabilites from the command line with the ``bokeh``
    command.

:ref:`userguide_extensions`
    Add new capability to Bokeh with custom user extensions.

:ref:`userguide_compat`
    Use Bokeh together with libraries such as `Datashader`_ and  `HoloViews`_.

:ref:`userguide_webgl`
    Improve performance for large datasets by using WebGL.

:ref:`userguide_bokehjs`
    Create plots in JavaScript by using BokehJS directly.

:ref:`userguide_tutorials`
    Read tutorials on specific topics for using Bokeh.

:ref:`userguide_info`
    See where to go next for more information and examples.

The examples in the user guide are written to be as minimal as possible,
while illustrating how to accomplish a single task within Bokeh. With a
handful of exceptions, no outside libraries such as NumPy, Pandas, or
Blaze are required to run the examples as written. However, Bokeh works
well with NumPy, Pandas, Blaze, or almost any array or table-like data
structure.

.. |bokeh.plotting| replace:: :ref:`bokeh.plotting <bokeh.plotting>`

.. _Datashader: http://datashader.readthedocs.io
.. _HoloViews: http://holoviews.org
