Labels in Bokeh

Bokeh is a Python interactive visualization package that offers a wide range of features beyond merely plot creation. Labeling is one of the useful characteristics that it has. With the help of this tool, developers may give the plot elements verbal descriptions, which makes the data easier to understand. In order to help readers better grasp how labels are used in bokeh, this article delves into the topic.

Introduction to Bokeh

Understanding Bokeh's goal is crucial before we go into labels. Bokeh makes it easier to create complex statistical plots and assists in turning data into visually appealing, interactive, and understandable graphs. It presents huge or streaming datasets with high-performance interaction and is designed for modern web browsers.

The Importance of Labels in Bokeh

Any data visualization needs labels because they provide the data being shown context and meaning. Without labels, a visualization could not be clear or perhaps seem pointless. Bokeh offers numerous methods for adding and customizing labels, enabling developers to produce engaging and comprehensive visualizations.

Types of Labels in Bokeh

In Bokeh, labels come in a variety of forms, including but not limited to ?

  • Title ? The plot's title, which is typically at the top, provides a brief summary of the plot's goal or the data it depicts.
  • Axis Labels ? The variables shown on the x and y axes are identified by the axis labels.
  • Legend ? A legend aids in identifying several categories or groups within the data.
  • Data Labels ? The graph's data points may be given textual cues or labels known as data labels.
  • Annotations ? These are additional pieces of text or marks that give the data more context.

Adding a Single Label

Let's start with a simple example of adding a single label to a plot ?

from bokeh.plotting import figure, show
from bokeh.models import Label

# Create a new plot with a title and axis labels
p = figure(title="Bokeh Label Example", x_axis_label='x', y_axis_label='y', width=400, height=400)

# Add a line to the plot
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2)

# Add a label to the plot
label = Label(x=3, y=4, text="Data Point (3,4)")
p.add_layout(label)

# Show the plot
show(p)

In the above example, a label identifying a specific data point at (3,4) has been added to the plot. This label is added using the Label class from the bokeh.models module.

Adding Multiple Labels

Bokeh allows for the addition of multiple labels to a plot using LabelSet ?

from bokeh.plotting import figure, show
from bokeh.models import LabelSet, ColumnDataSource

# Create a new plot with a title and axis labels
p = figure(title="Multiple Labels Example", x_axis_label='x', y_axis_label='y', width=400, height=400)

# Prepare some data
data = {'x_values': [1, 2, 3, 4, 5],
        'y_values': [6, 7, 2, 4, 5],
        'labels': ['Point 1', 'Point 2', 'Point 3', 'Point 4', 'Point 5']}

# Create a ColumnDataSource object
source = ColumnDataSource(data=data)

# Add glyphs (circles) to the plot
p.circle('x_values', 'y_values', size=20, source=source)

# Create a LabelSet
labels = LabelSet(x='x_values', y='y_values', text='labels', level='glyph', 
                  x_offset=5, y_offset=5, source=source, render_mode='canvas')

# Add the labels to the plot
p.add_layout(labels)

# Show the plot
show(p)

In this example, we create multiple labels for different points. We first specify the points and their accompanying labels in a data dictionary. Then, using this information, we build a ColumnDataSource that acts as a bridge between our Python data and the Bokeh graphic.

Customizing Labels

Labels can be customized in various ways including their color, font, size, and angle ?

from bokeh.plotting import figure, show
from bokeh.models import Label

# Create a new plot with a title and axis labels
p = figure(title="Custom Label Example", x_axis_label='x', y_axis_label='y', width=400, height=400)

# Add a line to the plot
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], line_width=2)

# Add a custom label to the plot
label = Label(x=3, y=4, text="Data Point (3,4)", 
              text_color="red", 
              text_font_size="12pt", 
              angle=30, 
              background_fill_color="yellow", 
              background_fill_alpha=0.3)
p.add_layout(label)

# Show the plot
show(p)

In this example, the label is customized with a red font color, a specific text size, a rotation angle, and a yellow background fill that is partially transparent.

Common Label Properties

Property Description Example
text_color Color of the text "red", "#FF0000"
text_font_size Size of the text "12pt", "14px"
angle Rotation angle in degrees 45, -30
x_offset/y_offset Offset from data point 5, -10

Conclusion

Labels in Bokeh provide essential context to data visualizations, making them more informative and professional. Whether adding titles, axis labels, or data point annotations, Bokeh's labeling system offers flexibility and extensive customization options for creating clear, engaging plots.

Updated on: 2026-03-27T08:01:35+05:30

734 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements