Scalebar#
Download this notebook from GitHub (right-click to download).
Title: Scalebar#
Dependencies: Bokeh
Backends: Bokeh
The scalebar feature overlays a scale bar on the element to help gauge the size of features on a plot. This is particularly useful for maps, images like CT or MRI scans, and other scenarios where traditional axes might be insufficient.
import numpy as np
import holoviews as hv
hv.extension("bokeh")
pollen = hv.RGB.load_image("../assets/pollen.png", bounds=(-10, -5, 10, 15)).opts(scalebar=True)
pollen
Zoom in and out to see the scale bar dynamically adjust.
Custom Units#
By default, the scalebar uses meters. To customize the units, use the scalebar_unit parameter, which accepts a tuple of two strings: the first for the actual measurement and the second for the base unit that remains invariant regardless of scale. In the example below, the y-axis unit is micro-volts (µV), and the base unit is Volts (V).
You can also apply a unit to the y-label independently of the scale bar specification using hv.Dimension.
dim = hv.Dimension('Voltage', unit='µV')
hv.Curve(np.random.rand(1000), ['time'], [dim]).opts(
width=400,
scalebar=True,
scalebar_range='y',
scalebar_unit=('µV', 'V'),
)
Customization#
In the plot above, you can see that we applied the scalebar to the y-axis by specifying the scalebar_range argument. Below are further customization options for the scalebar:
The
scalebar_locationparameter defines the positioning anchor for the scalebar, with options like “bottom_right”, “top_left”, “center”, etc.The
scalebar_labelparameter allows customization of the label template, using variables such as@{value}and@{unit}.The
scalebar_optsparameter enables specific styling options for the scalebar, as detailed in the Bokeh’s documentation.
All these parameters are only utilized if scalebar is set to True in .opts().
dim = hv.Dimension('Voltage', unit='µV')
hv.Curve(np.random.rand(1000), ['time'], [dim]).opts(
color='lightgrey',
width=400,
scalebar=True,
scalebar_range='y',
scalebar_unit=('µV', 'V'),
scalebar_location = 'top_right',
scalebar_label = '@{value} [@{unit}]',
scalebar_opts={
'background_fill_alpha': 0,
'border_line_color': None,
'label_text_font_size': '20px',
'label_text_color': 'maroon',
'label_text_alpha': .5,
'label_location': 'left',
'length_sizing': 'exact',
'bar_length': 0.5,
'bar_line_color': 'maroon',
'bar_line_alpha': .5,
'bar_line_width': 5,
'margin': 0,
'padding': 5,
},
)
Toolbar#
The scalebar tool is added to the toolbar with a measurement ruler icon. Toggling this icon will either hide or show the scalebars. To remove scalebar icon from the toolbar, set scalebar_tool = False.
Download this notebook from GitHub (right-click to download).