
Image by Editor | Canva
Lux is a Python library that automatically recommends visualizations during data exploration, helping analysts quickly gain insights without writing extensive plotting code. It is designed to work seamlessly within Jupyter Notebooks and Jupyter Lab, where it can display interactive visualization widgets alongside your data. In this article, you’ll learn how to install Lux and use its basic features to generate meaningful visualizations with minimal code.
Installing Lux
Before we begin using Lux, we need to install it. You can install Lux using pip:
# Install Lux pip install lux-api # If using Jupyter Notebook, also install the widget pip install lux-widget # Enable Jupyter extension jupyter nbextension install --py luxwidget jupyter nbextension enable --py luxwidget
Note: For best results, install Lux and its extensions in the same environment from which you launch Jupyter Notebook. This helps avoid potential configuration issues with extensions when working across multiple environments.
For more details regarding the installation process, please visit the official documentation.
Understanding Lux Recommendations
Lux recommendations are automatically generated visualizations that highlight interesting patterns and trends in your data without requiring manual plotting code. The recommendation system in Lux works by analyzing your dataframe’s structure and content, then suggesting relevant visualizations through different “analytical actions.”
When you toggle from the pandas DataFrame view to Lux view, you’ll see several tabs of recommendations based on your data characteristics. By default, Lux offers three primary types of recommendations:
- Correlation – Shows relationships between quantitative variables through scatterplots, ranked from highest to lowest correlation.
- Distribution – Displays histogram distributions of numeric attributes, highlighting those with the most skewed distributions.
- Occurrence – Presents bar charts showing the frequency distribution of categorical variables, with emphasis on uneven distributions.
Let’s see these Lux recommendations in action by working with a simple dataset that has both numeric and categorical variables. We’ll use the classic Iris dataset, which contains measurements of different iris flowers and is perfect for demonstrating all three recommendation types.
import seaborn as sns
import lux
import pandas as pd
# Load the 'iris' dataset
df = sns.load_dataset('iris')
# Display the dataframe to trigger Lux recommendations
df
When we run this code and view the dataframe, we first see the standard pandas tabular display of the Iris dataset. Notice the “Toggle Pandas/Lux” button in the top left corner – this is what allows us to switch between the traditional pandas view and Lux’s visualization recommendations.

Image By Author
When we click the toggle button, Lux analyzes our dataset and automatically generates visualizations across three tabs: Correlation, Distribution, and Occurrence. Let’s explore what each tab reveals about our Iris dataset.
Correlation Recommendations
The Correlation tab shows relationships between pairs of numeric variables through scatterplots. Lux automatically creates scatterplots for all possible combinations of the four measurement variables (sepal_length, sepal_width, petal_length, and petal_width).

Image By Author
In these visualizations, we can easily spot some interesting patterns. For example, the first scatterplot shows a strong positive correlation between petal_length and petal_width – as petal length increases, petal width tends to increase as well. This makes intuitive sense in flower morphology.

Image By Author
What’s particularly useful is that Lux displays these correlations in order of strength, with the strongest correlations appearing first. This helps us quickly identify the most significant relationships in our data without writing any additional code. We can also observe distinct clusters in many of these plots, which correspond to the three different iris species (though they’re not colored by species in the default view).
Distribution Recommendations
The Distribution tab displays histogram distributions for each numeric attribute in our dataset. These histograms help us understand the spread and central tendency of each measurement variable. Lux intelligently ranks these distributions from most to least skewed, helping you immediately identify attributes with unusual or non-normal distributions.

Image By Author
Looking at these distributions, we can observe:
- Petal width shows a bimodal distribution, with one peak near 0.2 cm and another around 1.5 cm, suggesting natural groupings in the data
- Sepal width has a more normal distribution centered around 3.0-3.4 cm
- Petal length shows clear separation between shorter and longer petals
- Sepal length has a relatively even distribution across the range
These distribution patterns provide valuable insights into the characteristics of different iris species without requiring us to manually code each histogram.
Occurrence Recommendations
The Occurrence tab presents bar charts showing the frequency distribution of categorical variables. In our Iris dataset, the only categorical variable is ‘species’.

Image By Author
The bar chart shows that our dataset is perfectly balanced, with exactly 50 samples of each species: setosa, versicolor, and virginica. This is useful information for any statistical analysis or machine learning task we might want to perform, as balanced classes often lead to better model performance.
The beauty of Lux is that all these visualizations were generated automatically without writing any plotting code. This dramatically speeds up the exploratory data analysis process, allowing us to quickly understand our dataset’s structure and identify interesting patterns for further investigation.
Additional Recommendation Types
Beyond the three recommendation types we’ve explored, Lux also offers Temporal recommendations when your dataset contains datetime columns. These visualizations automatically highlight time-based patterns and trends, such as seasonal variations, trends over time, and temporal distributions.
Conclusion
In this introduction to Lux, we’ve seen how it can automatically generate insightful visualizations with minimal code. The three primary recommendation types—Correlation, Distribution, and Occurrence—help us quickly understand relationships between variables, identify interesting distributions, and explore categorical data patterns.
Lux stands out because it doesn’t just create static visualizations. It intelligently ranks and organizes them based on their potential interest, helping analysts focus on the most meaningful patterns first. This can significantly accelerate your exploratory data analysis workflow, especially when working with unfamiliar datasets or those with many variables. For data scientists and analysts who spend considerable time on initial data exploration, Lux can reduce the repetitive coding of standard visualizations and highlight patterns that might otherwise be overlooked.
Next time you’re faced with a new dataset, consider giving Lux a try—you might be surprised by the insights you can gain with just a few lines of code and the toggle of a button.
