Create beautiful maps just by adding an interactive basemap layer to your plot: geom_livemap().

Proportional Symbol Map#

Visulizing spatial information - california housing
ggplot(data) + geom_livemap() + geom_point(aes(..))

Choropleth Map#

COVID-19 in India: EDA and spatial visualization
ggplot(data) + geom_livemap() + geom_polygon(aes(..))

Combine Layers on Map ggplot2 Style#

quickstart-light quickstart-dark Quick Start#

Quick start guide to maps.

layers_primitives-light layers_primitives-dark Primitives#

point, pie, path, tiles, polygon, map, horizontal line, vertical line, rectangle, segment, curve, text, label.

Geodesic option.

layers_contours-light layers_contours-dark Contours#

contour, filled contour.

layers_bivariate-light layers_bivariate-dark Bivariate Distribution#

2d bins, 2d density, filled 2d density.

GeoPandas Shapes#

GeoPandas GeoDataFrame is supported by the following geometry layers: polygon, map, point, pie, text, path, rect.

Learn more: GeoPandas Support.

Use a Basemap That is Right for You Creative Commons License #

Use quality Lets-Plot vector basemaps or choose among many raster map tiles available through 3rd party providers.

Learn more: Configuring Basemap Tiles for Interactive Maps.


Create maps in PyCharm with the help of Lets-Plot in SciView plugin.


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.



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.


Geospatial Visualization

Find spatial objects with the help of our powerful and easy to use Geocoding module. In case you already have GeoDataFrame on hand - plot it straight away.


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 for any geometry layer in your plot. Learn more.



Lets-Plot supports formatting of numeric and date-time values in tooltips, legends, on the axes and text geometry layer. Learn more.


Export to SVG, HTML, PNG and PDF

Use the ggsave() function to save your plot to a file. Alternatively, leverage the to_svg(), to_html(), to_png(), or to_pdf() methods of the plot object to save it to a file or an in-memory file-like object. Learn more.

../../_images/show-ext-light.png ../../_images/show-ext-dark.png

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 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.