Creating an effective data visualization involves more than plotting accurate data—it also requires thoughtful design. Colors, fonts, line styles, marker shapes, transparency, and layout all contribute to how users interpret information. Bokeh provides a rich collection of styling options that allow developers to create attractive, readable, and interactive visualizations for websites, dashboards, and analytical applications.
Whether you're building business reports, scientific dashboards, financial charts, or educational tools, mastering Bokeh's visual styling features will help you produce charts that are both functional and visually engaging.
In this tutorial, you'll learn how to customize nearly every visual aspect of a Bokeh chart, including glyphs, axes, grids, legends, backgrounds, themes, and interactive elements.
Why Styling Matters
Visual styling improves communication by making charts easier to read and interpret.
Good styling helps you:
- Highlight important trends
- Improve readability
- Differentiate multiple datasets
- Strengthen visual hierarchy
- Support accessibility
- Create professional dashboards
- Reinforce brand identity
- Enhance the overall user experience
Well-designed charts communicate insights more effectively than default visualizations.
Creating a Basic Plot
Let's begin with a simple line chart.
from bokeh.plotting import figure, show
plot = figure(
title="Monthly Sales",
width=700,
height=400
)
plot.line(
[1,2,3,4,5],
[10,15,13,18,20]
)
show(plot)From here, you can customize every visual element of the chart.
Styling Line Glyphs
Bokeh provides several properties for line customization.
plot.line(
x,
y,
line_color="navy",
line_width=4,
line_alpha=0.8,
line_dash="dashed"
)Common line properties include:
- Color
- Width
- Transparency
- Dash pattern
- Join style
- Cap style
These settings help distinguish multiple data series.
Styling Markers
Customize marker appearance for scatter plots.
plot.circle(
x,
y,
size=12,
fill_color="orange",
line_color="black",
fill_alpha=0.7
)Popular marker styles include:
- Circle
- Square
- Triangle
- Diamond
- Hexagon
- Star
Different marker shapes improve chart readability when comparing datasets.
Fill Colors and Transparency
Many glyphs support fill styling.
plot.vbar(
x=x,
top=y,
width=0.6,
fill_color="steelblue",
fill_alpha=0.6
)Transparency can reduce visual clutter when multiple glyphs overlap.
Using Color Palettes
Instead of manually selecting colors, use Bokeh palettes.
from bokeh.palettes import Category10
colors = Category10[5]Popular palettes include:
- Category10
- Category20
- Viridis
- Inferno
- Plasma
- Turbo
- Cividis
Consistent color palettes improve both aesthetics and readability.
Customizing the Background
Modify the chart background.
plot.background_fill_color = "#f8f9fa"
plot.border_fill_color = "white"Subtle backgrounds help data stand out while maintaining a clean appearance.
Styling Grid Lines
Grid lines assist users in estimating values.
plot.grid.grid_line_color = "gray"
plot.grid.grid_line_alpha = 0.3
plot.grid.grid_line_dash = "dotted"Use light grid lines to avoid distracting from the primary data.
Styling Axes
Axes can be customized extensively.
plot.xaxis.axis_label = "Month"
plot.yaxis.axis_label = "Sales"
plot.xaxis.axis_label_text_font_size = "14pt"
plot.yaxis.major_label_text_font_size = "11pt"Clear axis styling improves chart readability.
Customizing Titles
Titles provide context for the visualization.
plot.title.text_font_size = "20pt"
plot.title.align = "center"
plot.title.text_color = "navy"A well-formatted title makes the chart easier to understand.
Styling Legends
Legends identify data series.
plot.legend.location = "top_left"
plot.legend.label_text_font_size = "12pt"
plot.legend.background_fill_alpha = 0.6Interactive legends improve usability in multi-series charts.
Styling Hover Tooltips
Hover tools can also be customized.
from bokeh.models import HoverTool
hover = HoverTool(
tooltips=[
("Month", "@month"),
("Sales", "@sales")
]
)
plot.add_tools(hover)Tooltips provide detailed information without cluttering the chart.
Applying Themes
Bokeh supports built-in themes for consistent styling.
from bokeh.io import curdoc
curdoc().theme = "dark_minimal"Other popular themes include:
- caliber
- contrast
- dark_minimal
- light_minimal
- night_sky
Themes make it easy to maintain a consistent appearance across multiple charts.
Using Fonts
Customize typography throughout the visualization.
plot.title.text_font = "Helvetica"
plot.xaxis.axis_label_text_font = "Arial"Readable fonts contribute to a polished, professional design.
Styling Multiple Glyphs
Different datasets should use distinct visual styles.
Example:
plot.line(
x1,
y1,
color="blue"
)
plot.line(
x2,
y2,
color="red",
line_dash="dashed"
)Combining colors, line styles, and markers makes comparisons easier.
Responsive Design
Visual styling should complement responsive layouts.
plot.sizing_mode = "stretch_width"Responsive charts maintain usability across desktops, tablets, and mobile devices.
Best Practices
When styling Bokeh visualizations:
- Use a consistent color palette.
- Avoid excessive colors.
- Keep backgrounds subtle.
- Choose readable fonts.
- Label axes clearly.
- Use legends only when needed.
- Limit decorative effects.
- Test charts on multiple screen sizes.
These practices improve clarity and professionalism.
Common Mistakes
Avoid these common issues:
- Overusing bright colors.
- Excessive transparency.
- Inconsistent font sizes.
- Heavy grid lines.
- Tiny markers.
- Poor color contrast.
- Cluttered legends.
- Distracting backgrounds.
Simple designs often communicate data more effectively.
Real-World Applications
Visual styling plays an important role in:
- Business intelligence dashboards
- Financial reporting
- Marketing analytics
- Healthcare visualization
- Scientific research
- Manufacturing monitoring
- Educational platforms
- Geographic information systems
- Machine learning dashboards
Professional styling enhances both usability and credibility.
Performance Tips
When working with large visualizations:
- Reuse color palettes.
- Minimize unnecessary glyph effects.
- Limit overlapping transparency.
- Keep legends concise.
- Apply themes for consistent styling.
- Optimize charts for responsive layouts.
Efficient styling helps maintain rendering performance while improving the visual experience.
Conclusion
Styling visual attributes is an essential part of creating effective Bokeh visualizations. By customizing colors, markers, lines, fills, fonts, legends, axes, grids, and themes, you can transform basic charts into polished, interactive dashboards that communicate information clearly and professionally.
Whether you're building business intelligence tools, scientific applications, financial reports, or educational dashboards, thoughtful styling improves readability, enhances user engagement, and creates a more memorable experience. Mastering Bokeh's styling capabilities will help you produce modern, high-quality visualizations that stand out in any data-driven application.


0 Comments