Charts#
Data#
Every layer may have some data associated with it. The “data” refers to a table of data where each row contains an observation and each column represents a variable that describes some property of each observation.
Data in this format is sometimes referred to as tidy data, flat data, primary data, atomic data, and unit record data.
You can pass tidy data to Lets-Plot in form of a Pandas Dataframe, a Polars Dataframe or just a dictionary: example notebook.
Basic Building Blocks#
Points:
points
,
jittered points
Lines:
line
,
path
,
diagonal line
,
horizontal line
,
vertical line
,
segment
,
curve
,
spoke
,
step-function
Tiles:
tiles
,
rectangles
,
raster plot
Examples:
- Population mobility and COVID-19
- Bayesian inference
- Line vs. path
- Inset map of Kotlin island
- Drawing graph edges
- Formatting labels on plots
- Text geoms
- Image on map, the 'use_crs' parameter
- Variadic lines in geom_path() and geom_line()
- Spoke geometry
- Curve geometry
- Customizing line type
- Expanding plot limits with expand_limits()
Discrete#
bar
,
pie
,
lollipop
,
boxplot
,
count
/sum
Learn more: Working with Categorical Variables and the as_discrete() Function.
Examples:
Contours#
Examples:
Visualization of Distribution#
histogram
,
density
,
dotplot
,
ydotplot
,
violin
,
ridgeline
,
frequency polygon
Examples:
Stats#
stat_ecdf()
,
stat_summary()
,
stat_summary_bin()
Examples:
Function#
Examples:
Visualization of Errors#
crossbar
,
errorbar
,
linerange
,
pointrange
Examples:
Smoothing#
Examples:
Bivariate Distribution#
2d bins
,
2d density
,
filled 2d density
Examples:
Marginal Plots#
See also: Joint Plot, Residual Plot.
Examples:
Time Series#
scale_x_datetime()
,
scale_y_datetime()
,
scale_x_time()
,
scale_y_time()
Examples:
Images#
geom_imshow()
,
matrix of images
Examples:
Facets#
Examples:
Coordinate Systems#
coord_cartesian()
,
coord_fixed()
,
coord_polar()
,
coord_flip()
,
coord_map()
Examples:
Legends and Guides#
guide_legend()
,
guide_colorbar()
,
guides()
,
layer_key()
Examples:
‘bistro’ Plots#
corr_plot()
,
qq_plot()
,
joint_plot()
,
residual_plot()
,
waterfall_plot()
“Bistro” plots is a collection of “compound plots” allowing users to generate intricate charts without the need for extensive coding.
With these high-level functions you can create visualizations like correlation matrices, quantile-quantile plots, and joint distribution plots using single function calls.
Learn more: ‘bistro’ Plots.
GeoPandas Shapes#
GeoPandas GeoDataFrame
is supported by the following geometry layers: polygon
, map
, point
, pie
, text
, label
, path
, rect
.
Learn more: GeoPandas Support.
Examples:
Grouping Plots#
GGBunch
and gggrid
shows a collection of plots on one figure.
Examples:
Presentation Options#
theme()
,
ggtitle()
,
ggsize()
,
xlab()
,
ylab()
,
labs()
Examples:
- Custom theme
- Default theme
- Theme colors for geometries
- Tooltip customization
- Set font faces
- Axis position
- Rotation of axis labels
- Exponent format in Lets-Plot
- Annotation labels
Predefined themes#
minimal2
,
bw
,
grey
,
classic
,
light
,
minimal
,
void
,
none
Examples:
Color schemes (flavors)#
darcula
,
solarized light
,
solarized dark
,
high contrast light
,
high contrast dark
Examples:
Miscellaneous#
Panning and Zooming#
Use the ggtb()
function to enable Pan
and Zoom
interactivity on a chart.
This function adds a toolbar containing three tool-buttons: pan, rubber-band zoom, and center-point zoom.
Examples:
Extended Text Markup#
In tooltips/labels/texts and wherever else there is text, you can use:
Interactive links, e.g.
<a href="https://github.com">GitHub</a>
.LaTeX formulas with
superscript, e.g.
\( a^b \)
;subscript, e.g.
\( x_i \)
;Greek letters, e.g.
\( \Omega \)
, andsome special symbols, e.g.
\( a \cdot b \neq c \)
.
Examples:
Manual Legend#
In Lets-Plot, as in ggplot2, legends are automatically generated based on the aesthetic mappings in the plot.
Sometimes, however, this automatic generation doesn’t provide the precise control needed for complex visualizations.
Options manual_key
and override_aes
addresses this limitation.
Examples:
Multiple Color Scales#
Use color_by
/fill_by
parameters and paint_a
/paint_b
/paint_c
aesthetics if you need to display two different layers with the same color aesthetic but different color scales.
Examples:
Scale Functions#
To specify a scale for any group of aesthetics, use the special scale functions: scale_manual()
, scale_continuous()
, scale_gradient()
, etc.
Examples:
Quantiles#
Density-like plots let you show the quantiles by mapping them to a particular colour palette.
Examples:
Stackable Position Adjustments#
To configure positioning where groups are stacked on top of each other, use the position_stack()
and position_fill()
functions.
Examples:
Resources#
Coding for Economists by Arthur Turrell
Easy Data Visualisation for Tidy Data with Lets-Plot - how to make plots quickly using the declarative plotting.
Python4DS by Arthur Turrell
Data Visualisation - will teach you how to visualise your data using using Lets-Plot.
Layers - a deeper dive into aesthetic mappings, geometric objects, and facets.
Exploratory Data Analysis - search for answers by visualising, transforming, and modelling your data.
Data Science with Sanjaya by Sanjaya Subedi
Create Beautiful Plots with Python Let’s Plot Library - Using the Lets-Plot library, the author shows you how to create 10 different but very common types of plots that you’ll see and create often.
Key Features#
Inspired by ggplot2
A faithful port of R’s ggplot2 to Python.
You can learn R’s ggplot2 and the grammar of graphics in the “ggplot2: Elegant Graphics for Data Analysis” book by Hadley Wickham.
Multiplatform
A Grammar of Graphics for Python - works in Python notebooks (Jupyter, Datalore, Kaggle, Colab, Deepnote, Nextjournal) as well as in PyCharm and Intellij IDEA IDEs.
A Grammar of Graphics for Kotlin - a Kotlin multiplatform visualization library which fulfills your needs in the Kotlin ecosystem: from Kotlin notebooks to Compose-Multiplatform apps.
Interactive Maps
Interactive maps allow zooming and panning around your geospatial data with customizable vector or raster basemaps as a backdrop. Learn more.
Customizable Tooltips and Annotations
You can customize the content, values formatting and appearance of tooltip and annotation for layers of your plot.
Formatting
Lets-Plot supports formatting of numeric and date-time values in tooltips, annotations, legends, on the axes and text geometry layer. Learn more.
Option to Display Plots in External Browser
With the “show externally” mode enabled, you can easily display a plot in an external browser by invoking its show()
method. Learn more
.
Sampling
Sampling is a special technique of data transformation, which helps to deal with large datasets and overplotting. Learn more.
‘No Javascript’ and Offline Mode
In the ‘no javascript’ mode Lets-Plot generates plots as bare-bones SVG images. Plots in the notebook with option offline=True
will be working without an Internet connection. Learn more.