Lab2 - Interactive Information Visualization with Bokeh
Lê Thành Long
07-04-2026
1 Introduction
In this lab, I design and implement an interactive information visualization system using the Bokeh
library in Python. The visualization is based on the IMDB dataset, which includes features such
as movie ratings, number of votes, genres, and country of production.
The main objective is to explore relationships between movie popularity and quality while
enabling interactive filtering and analysis through linked views.
2 Visualization Design
2.1 Overview of Views
The system consists of multiple coordinated views:
• Scatter Plot: Displays IMDB score vs. normalized number of votes. Each point represents
a movie.
• Country Distribution: Bar chart showing number of movies per country.
• Genre Distribution: Bar chart showing number of movies per genre.
• Data Table: Displays detailed information about selected movies.
3 Interaction Design
3.1 Linked Brushing
The main interaction technique is box selection on the scatter plot. Users can drag a rectangular
selection to focus on a subset of movies.
3.2 Coordinated Views
All views are linked through a shared ColumnDataSource. When a user selects points in the scatter
plot:
• The data table updates to show selected movies
• The country distribution updates automatically
• The genre distribution updates automatically
1
3.3 Dynamic Aggregation
When a subset is selected, the system dynamically computes:
• Frequency of movies by country
• Frequency of movies by genre
These statistics are recalculated in real time and visualized in the bar charts.
4 Visual Encoding Choices
4.1 Scatter Plot
• X-axis: Number of votes (normalized)
• Y-axis: IMDB score
• Color: Encodes categorical variables (e.g., genre)
• Transparency: Reduces overplotting and reveals density patterns
4.2 Bar Charts
• Length encodes frequency (quantitative comparison)
• Categories: country and genre
• Simple encoding improves readability and comparison
4.3 Data Table
Provides detailed information for precise inspection of selected movies.
5 Layout and Composition
The layout follows the principle of overview, filter, and details-on-demand :
• Scatter plot at the top for global exploration
• Bar charts below for aggregated summaries
• Data table for detailed inspection
6 Analysis and Insights
6.1 Scatter Plot Analysis
The scatter plot is the main analytical view showing the relationship between movie popularity
(votes) and quality (IMDB score).
• A positive correlation is observable: movies with more votes tend to have higher ratings.
2
• A dense cluster exists in the low-vote region, with ratings between 5 and 7, indicating many
average and less popular movies.
• High-rated movies (above 8) are relatively sparse and typically associated with moderate to
high vote counts.
• Outliers can be identified, such as movies with high ratings but low popularity or vice versa.
This view allows users to visually detect patterns and define regions of interest for further
analysis.
6.2 Country Distribution Analysis
The country bar chart provides insights into the geographic distribution of movies.
• The dataset is heavily dominated by movies from the USA, indicating a bias in data collection.
• When selecting high-rated regions, users can observe whether certain countries contribute
more to high-quality productions.
• This enables comparison between global production volume and perceived quality.
6.3 Genre Distribution Analysis
The genre bar chart shows how movie genres are distributed in the selected subset.
• Genres like Action and Drama dominate the dataset overall.
• When focusing on highly rated movies, genres such as Drama and Biography tend to become
more prominent.
• Selecting lower-rated regions may reveal genres with more variability in quality.
This helps users understand how genre influences both popularity and ratings.
6.4 Coordinated View Analysis
The strength of this visualization lies in the coordination between views.
• The scatter plot provides a global overview
• The bar charts summarize categorical distributions
• The data table provides detailed information
For example:
• Selecting a cluster of high-rated movies immediately reveals their dominant genres and coun-
tries
• Selecting sparse areas highlights outliers and niche movie categories
This coordination supports effective exploratory data analysis and hypothesis generation.
3
7 Implementation Details
• Library: Bokeh
• Core component: ColumnDataSource
• Tools: BoxSelectTool, HoverTool, DataTable
8 Discussion
8.1 Strengths
• Interactive and intuitive interface
• Supports multi-perspective and exploratory analysis
• Real-time updates improve user experience
8.2 Limitations
• Overplotting in dense areas reduces readability
• Genre attribute may contain multiple values, causing simplification issues
8.3 Future Improvements
• Add interactive filters (dropdown menus, sliders)
• Improve color encoding for multi-category data
• Apply clustering or binning to reduce overplotting
9 Conclusion
This project demonstrates how Bokeh can be used to create interactive and linked visualizations.
The combination of scatter plots, bar charts, and tables enables efficient exploratory analysis and
supports deeper insights into movie data.