Skip to main content

Interactive plotting with familiar syntax in Jupyter notebooks.

Project description

bokehlab

Bolehlab is an interactive plotting library with the familiar matplotlib/matlab syntax.
Built upon bokeh visualization library. Works in both classic jupyter-notebook and JupyterLab.

Installation:

pip install bokehlab

To load this extension in jupyter notebook (both classic jupyter and jupyter lab):

%load_ext bokehlab

Or even shorter:

%bokehlab

To make the short syntax working, either run

python -m bokehlab.install_magic

Or manually copy bokelab_magic.py from the distribution directory to ~\.ipython\profile_default\startup.

Basic plotting:

plot([1,4,9])             # dots 
plot([1,4,9], '.-')       # line and dots 
plot([1,2,3], [1,4,9])    # x and y 
plot([1,2,3], [1,4,9], '.-')    # x, y and line style

Several plots in one figure:

Interactive controls:

click and drag = pan
mouse wheel = zoom, 
wheel on x axis = zoom horizontally
wheel on y axis = zoom vertically

Multiple plots syntax (equivalent ways to draw it):

x = [1,5,10]
y1 = [1,4,9]
y2 = [1,8,27]

- plot(x, y1, '.-')        # solid line with dots
  plot(x, y2, '.-g')       # the second plot is green

- plot([y1, y2])           # auto x, auto colors       

- plot(x, [y1, y2])

- plot([y1, y2], '.-bg')   # blue and green

- plot([y1, y2], style=['.', '.-'], color=['b', 'g'])

- plot(x, y1, '.-', x, y2, '.-g')

The following markers are supported so far:

'.' dots
'-' line
'.-' dots+line

The following colors are supported so far:

'b' blue
'g' green
'r' red
'O' orange  (capital O to avoid clashes with 'o' for open dots)

NB The color specifier must go after the marker if both are present.

Legend:

- plot([1,2,3], [1,4,9], label='plot1')
  plot([1,2,3], [2,5,10], label='plot2')

- plot([y1, y2], label=['y1', 'y2'])

Legend location:

- plot([1,2,3], [1,4,9], label='plot1', legend_loc='top_left')
  plot([1,2,3], [2,5,10], label='plot2')

Other legend locations: https://docs.bokeh.org/en/latest/docs/user_guide/styling.html#location

Axes labels:

- plot([1,2,3], xlabel='time', ylabel='value')
- xlabel('time'); ylabel('value')
- xylabels('time', 'value')

Other uses:

  • semilogx(), semilogy() and loglog() show (semi)logarithmic plots with the same syntax as plot().

  • hist(x) displays a histogram of x

  • plot(x, y, hover=True) displays point coordinates on mouse hover.

  • plot(x, y, vline=1, hline=1.5, vline_color='red') in addition to the (x, y) plot displays an infinite vertical line with x=1 and custom red color and an infinite horizontal line with y=1.5 and the default pink color.

Visualizing Pandas Dataframes

  • plot(df) plots all columns of the dataframe as separate lines on the same figure with column names displayed in the legend and with index taken as the x axis values. If the legend grows too long, it can be hidden with legend_loc='hide' (new in v0.1.13):
  • show_df(df) displays pandas dataframe as a table (new in v0.1.14):

Displaying Images

  • imshow(a) displays an array as an image:

Complete list of colormaps: https://matplotlib.org/3.5.0/tutorials/colors/colormaps.html

  • imshow(im1, im2, ...) shows several images side by side with linked panning and zooming (link=False to disable):
  • imshow([[im1, im2, ...], [im3, im4, ... ], ...]) displays a matrix of images with panning and zooming linked row-wise:

See also a contour plot example in the bokeh gallery page.

Comparison to bokeh

Bokehlab is a thin wrapper over the excellent library bokeh primarily aimed at cutting down the amount of boilerplate code.

The following commands are equivalent:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bokehlab-0.2.3.tar.gz (47.4 kB view details)

Uploaded Source

Built Distribution

bokehlab-0.2.3-py3-none-any.whl (54.4 kB view details)

Uploaded Python 3

File details

Details for the file bokehlab-0.2.3.tar.gz.

File metadata

  • Download URL: bokehlab-0.2.3.tar.gz
  • Upload date:
  • Size: 47.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/59.6.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.7.7

File hashes

Hashes for bokehlab-0.2.3.tar.gz
Algorithm Hash digest
SHA256 003f616fee7a4773406a3d0fbb44b2c1586776781f04b35b4a1dcebfb711f21d
MD5 b9af9c4faba50d87ff3a966ea59736bc
BLAKE2b-256 fe9959f1d114bed32eb9d8bf48ce880e71accc5d50d9e35525ae04059af5e609

See more details on using hashes here.

Provenance

File details

Details for the file bokehlab-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: bokehlab-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 54.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/59.6.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.7.7

File hashes

Hashes for bokehlab-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a770a7f5d077baf8495e47d8d90217f838baec40eff72fd6060dceccdcd325b6
MD5 615647467523348862b250a197a37878
BLAKE2b-256 7069c997e480d19f0dc23f1aab58fd965e2a5dd1c8b4624f478c5ecf57d43117

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page