HTTP/2 302
date: Tue, 22 Jul 2025 08:08:24 GMT
content-type: text/html; charset=utf-8
content-length: 0
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
location: https://github.com/JetBrains/lets-plot/releases/tag/v4.7.0
cache-control: no-cache
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
set-cookie: _gh_sess=l3TM2ohjC%2BYdgtMGLx6poRbb%2FxNCI808KDN1WorrmfQqwhbf%2FFDeLhvK8E4RGHRTjosWGpt0Fk61%2BL2SNX19vDjiS3WLKr%2BaV%2BXu7l%2Fe%2B7LxXUysSL5QSsKT%2BlevS68fGoPpt1QOGTKtoZvJ8NmJ1W3pFB2YohAtZ7nY2EQoYRheKI3jRQIYAfC91KVAw%2FxA8TTdLSI%2BD8aJ2RoymMBMDySKLnLCbLTQChiCBIvHemSXrFQbS6JYUcALK8pmfYXaQLzwsEf2C%2B9DVz96EZY7hQ%3D%3D--wIByCox9df%2BoeXan--qaUUis4DyANcFPs0aiIqnw%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.197045749.1753171703; Path=/; Domain=github.com; Expires=Wed, 22 Jul 2026 08:08:23 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Wed, 22 Jul 2026 08:08:23 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 9480:3C5427:32D460:38A983:687F46F7
HTTP/2 200
date: Tue, 22 Jul 2025 08:08:24 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"2a3eac6601d3a5b43752fc5d5d36e3de"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
x-github-request-id: 9480:3C5427:32D4B3:38A9F5:687F46F7
Release v4.7.0 Β· JetBrains/lets-plot Β· GitHub
Releases
v4.7.0
[4.7.0] - 2025-07-17
Added
Time Series Plotting [#278 ],
[discussion ],
[#678 ],
[LPK-129 ]:
Support for Python time
and date
objects.
Support for timezone-aware datetime
objects and Pandas/Polars Series
.
See: example notebook .
Geometries:
Layer Labels (Annotations):
Support in geom_crossbar()
See: example notebook .
Support in waterfall_plot()
via relative_labels
and absolute_labels
parameters.
See: example notebook .
New inherit_color()
option in annotations configuration (see example notebooks above)
waterfall_plot()
- support for combining waterfall bars with other geometry layers [#1344 ].
See: example notebook .
Plot Layout:
New axis_text_spacing
, axis_text_spacing_x
, and axis_text_spacing_y
parameters in theme()
to control spacing between axis ticks and labels.
See new plot layout diagram notebook showing various layout options and their effects on plot appearance.
More variants to specify a color by name:
all HTML/CSS colors;
various naming styles, e.g., dark-gray
, darkgrey
, dark_grey
, DARKGRAY
, etc.;
grayscale colors from gray0
(black) to gray100
(white);
See the complete list of named colors .
size_unit
parameter in geom_point()
, geom_text/label()
and geom_pie()
accepts two new values: 'min'
and 'max'
[#260 ].
'min'
sets the size unit to the smaller of the unit steps along the x and y axes, while 'max'
sets it to the larger.
This allows for more flexible relative sizing of points, pies and text in plots.
See: example notebook .
Changed
Native support for PNG and PDF exports [#1268 ]:
Exporting to PNG and PDF formats now uses the ImageMagick
library bundled with Lets-Plot Python wheels and available out-of-the-box.
This replaces the previous dependency on the CairoSVG
library and comes with improved support for LaTeX labels rasterization.
Related changes:
ggsave
: the w
and h
parameters override plot size, allowing to specify the output image size independently of the plot size.
ggsave
: the dpi
default value changed to 300.
ggsave
: the unit
default value changed to in
(inches).
Continuous data on discrete scales:
Continuous data when used with discrete positional scales is no longer transformed to discrete data.
Instead, it remains continuous, allowing for precise positioning of continuous elements relative to discrete ones.
This resolves issues where combining discrete and continuous data in the same plot was difficult or impossible: [#1279 ].
See: example notebook .
Tip
New way of handling continuous data on discrete scales could potentially break existing plots.
If you want to restore a broken plot to its original form, you can use the as_discrete()
function to annotate continuous data as discrete.
[BREAKING ] Dropped support for Python 3.8 as it is in the "end-of-life" of its release cycle.
[BREAKING ] geom_boxplot()
: when y-oriented, it now uses aesthetics xlower
/xmiddle
/xupper
instead of lower
/middle
/upper
[#1319 ].
[BREAKING ] waterfall_plot()
: special flow_type
value for label=element_text(color=...)
replaced with inherit
. See label
in the documentation .
[DEPRECATED ] The position_dodgev()
function and the 'dodgev'
value for the position
parameter are deprecated and will be removed in future releases.
Plot layout: reduced margins and spacing for title, caption, axes, and legend.
Updated RGB values for lightgray
and green
. To restore the previous colors, use gray75
and lime
, respectively.
waterfall_plot()
: the appearance of the legend has been improved.
geom_violin()
: tooltips are not shown in the centerline of the violin if show_half != 0
.
geom_crossbar()
: the midline is not shown in the legend when fatten
is set to 0, or when there is no mapping for it.
geom_pointrange()
: the midpoint will not be drawn if the y aesthetic is set to None
.
geom_band()
: the alpha
aesthetic only affects the inner part of the geometry, as in geom_rect()
.
geom_band()
: show tooltip over the whole band, not just at the edges.
Fixed
AWT: plot prevents wheel events from bubbling up to the parent component.
Added tooltip for geom_hline
and geom_vline
on geom_livemap
[#1056 ].
geom_boxplot
: unable to draw a y-oriented plot with stat='identity'
[#1319 ].
Can't add layer which uses continuous data to a plot where other layers use discrete input [#1323 ].
Multiline legend labels were not vertically centered with their keys [#1331 ].
Poor alignment in legend between columns [#1332 ].
Ordered data was re-ordered by geom_boxplot
[#1342 ].
geom_rect
: fixed data conversion for geom_livemap
[#1347 ].
ggsave
: incorrect output when exporting markdown demo to PNG [#1362 ].
as_discrete()
does not work with aes addition [#1363 ].
Sec: CVE-2024-47554 (commons-io) [#1231 ]
You canβt perform that action at this time.