lets-plot 4.4.1__cp311-cp311-macosx_11_0_arm64.whl → 4.5.0rc1__cp311-cp311-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lets-plot might be problematic. Click here for more details.

@@ -75,7 +75,8 @@ def _get_mapping(mapping):
75
75
  return aes(**{**x_mapping_dict, **mapping_dict, **y_mapping_dict})
76
76
 
77
77
 
78
- def geom_function(mapping=None, *, data=None, stat=None, geom=None, position=None, show_legend=None, manual_key=None,
78
+ def geom_function(mapping=None, *, data=None, stat=None, geom=None, position=None, show_legend=None, inherit_aes=None,
79
+ manual_key=None,
79
80
  tooltips=None,
80
81
  fun=None, xlim=None, n=None,
81
82
  color_by=None,
@@ -105,6 +106,8 @@ def geom_function(mapping=None, *, data=None, stat=None, geom=None, position=Non
105
106
  'stack' or 'identity', or the result of calling a position adjustment function (e.g., `position_dodge()` etc.).
106
107
  show_legend : bool, default=True
107
108
  False - do not show legend for this layer.
109
+ inherit_aes : bool, default=True
110
+ False - do not combine the layer aesthetic mappings with the plot shared mappings.
108
111
  manual_key : str or `layer_key`
109
112
  The key to show in the manual legend.
110
113
  Specify text for the legend label or advanced settings using the `layer_key()` function.
@@ -137,7 +140,7 @@ def geom_function(mapping=None, *, data=None, stat=None, geom=None, position=Non
137
140
  - x : x-axis value.
138
141
  - alpha : transparency level of a layer. Accept values between 0 and 1.
139
142
  - color (colour) : color of the geometry. For more info see https://lets-plot.org/python/pages/aesthetics.html#color-and-fill.
140
- - linetype : type of the line. Codes and names: 0 = 'blank', 1 = 'solid', 2 = 'dashed', 3 = 'dotted', 4 = 'dotdash', 5 = 'longdash', 6 = 'twodash'. For more info see https://lets-plot.org/python/pages/aesthetics.html#line-types.
143
+ - linetype : type of the line. Accept codes or names (0 = 'blank', 1 = 'solid', 2 = 'dashed', 3 = 'dotted', 4 = 'dotdash', 5 = 'longdash', 6 = 'twodash'), a hex string (up to 8 digits for dash-gap lengths), or a list pattern [offset, [dash, gap, ...]] / [dash, gap, ...]. For more info see https://lets-plot.org/python/pages/aesthetics.html#line-types.
141
144
  - size : line width.
142
145
 
143
146
  Examples
@@ -199,6 +202,7 @@ def geom_function(mapping=None, *, data=None, stat=None, geom=None, position=Non
199
202
  stat=fun_stat,
200
203
  position=position,
201
204
  show_legend=show_legend,
205
+ inherit_aes=inherit_aes,
202
206
  manual_key=manual_key,
203
207
  sampling=None,
204
208
  tooltips=tooltips,
@@ -391,6 +391,7 @@ def geom_imshow(image_data, cmap=None, *,
391
391
  xmax=ext_x1,
392
392
  ymax=ext_y1,
393
393
  show_legend=show_legend,
394
+ inherit_aes=False,
394
395
  color_by=color_by if (show_legend and greyscale) else None,
395
396
  )
396
397
 
lets_plot/plot/gggrid_.py CHANGED
@@ -3,10 +3,10 @@
3
3
  # Use of this source code is governed by the MIT license that can be found in the LICENSE file.
4
4
  #
5
5
 
6
- from lets_plot.plot.core import FeatureSpec, PlotSpec
6
+ from lets_plot.plot.core import PlotSpec
7
+ from ._global_theme import _get_global_theme
7
8
  from .subplots import SupPlotsLayoutSpec
8
9
  from .subplots import SupPlotsSpec
9
- from ._global_theme import _get_global_theme
10
10
 
11
11
  __all__ = ['gggrid']
12
12
 
@@ -20,7 +20,7 @@ def gggrid(plots: list, ncol: int = None, *,
20
20
  vspace: float = None,
21
21
  fit: bool = None,
22
22
  align: bool = None
23
- ):
23
+ ) -> SupPlotsSpec:
24
24
  """
25
25
  Combine several plots on one figure, organized in a regular grid.
26
26
 
@@ -119,7 +119,8 @@ def gggrid(plots: list, ncol: int = None, *,
119
119
 
120
120
  def _strip_theme_if_global(fig):
121
121
  # Strip global theme options from plots in grid (see issue: #966).
122
- if global_theme_options is not None and fig is not None and 'theme' in fig.props() and fig.props()['theme'] == global_theme_options.props():
122
+ if global_theme_options is not None and fig is not None and 'theme' in fig.props() and fig.props()[
123
+ 'theme'] == global_theme_options.props():
123
124
  if isinstance(fig, PlotSpec):
124
125
  fig = PlotSpec.duplicate(fig)
125
126
  fig.props().pop('theme')
lets_plot/plot/ggtb_.py CHANGED
@@ -7,5 +7,47 @@ from .core import FeatureSpec
7
7
  __all__ = ['ggtb']
8
8
 
9
9
 
10
- def ggtb():
10
+ def ggtb() -> FeatureSpec:
11
+ """
12
+ Add a toolbar to a chart.
13
+
14
+ This function adds a toolbar containing three tool-buttons (pan, rubber-band zoom,
15
+ and center-point zoom) to a chart. Each tool uses mouse-drag for its
16
+ specific functionality. Additionally, the mouse wheel can be used for zooming
17
+ in and out, regardless of the selected tool.
18
+
19
+ The toolbar includes:
20
+ - Pan: Drag to move the plot.
21
+ - Rubber-band zoom: Drag to define a rectangular area to zoom into.
22
+ - Center-point zoom: Drag up or down to zoom in or out from a center point.
23
+ - Reset button: Click to reset the plot and tools to their original state.
24
+
25
+ Double-clicking anywhere on the plot resets it to its original coordinates,
26
+ regardless of whether a tool is selected or not.
27
+
28
+ Limitations:
29
+ - The toolbar does not work with interactive maps.
30
+ - The toolbar is not compatible with GGBunch.
31
+ - The toolbar cannot be used with plots using a polar coordinate system.
32
+
33
+ Returns
34
+ -------
35
+ `FeatureSpec`
36
+ Toolbar feature specification.
37
+
38
+ Examples
39
+ --------
40
+ .. jupyter-execute::
41
+ :linenos:
42
+ :emphasize-lines: 7
43
+
44
+ import numpy as np
45
+ from lets_plot import *
46
+ LetsPlot.setup_html()
47
+ x = np.linspace(-2 * np.pi, 2 * np.pi, 100)
48
+ y = np.sin(x)
49
+ (ggplot({'x': x, 'y': y}, aes(x='x', y='y')) + geom_point()
50
+ + ggtb())
51
+
52
+ """
11
53
  return FeatureSpec(kind='ggtoolbar', name=None)
lets_plot/plot/label.py CHANGED
@@ -82,12 +82,12 @@ def xlab(label):
82
82
 
83
83
  def ylab(label):
84
84
  """
85
- Add label to the y axis.
85
+ Add label to the y-axis.
86
86
 
87
87
  Parameters
88
88
  ----------
89
89
  label : str
90
- The text for the y axis label.
90
+ The text for the y-axis label.
91
91
 
92
92
  Returns
93
93
  -------
@@ -232,7 +232,7 @@ def sampling_group_random(n, seed=None):
232
232
  return _sampling('group_random', n=n, seed=seed)
233
233
 
234
234
 
235
- def sampling_vertex_vw(n):
235
+ def sampling_vertex_vw(n, polygon=None):
236
236
  """
237
237
  Simplify a polyline using the Visvalingam-Whyatt algorithm.
238
238
 
@@ -241,6 +241,11 @@ def sampling_vertex_vw(n):
241
241
  n : int
242
242
  Number of items to return.
243
243
 
244
+ polygon : bool, default=None
245
+ If True, the input data is considered as a polygon rings.
246
+ If False, the input data is considered as a polyline.
247
+ None for auto-detection.
248
+
244
249
  Returns
245
250
  -------
246
251
  `FeatureSpec`
@@ -275,10 +280,10 @@ def sampling_vertex_vw(n):
275
280
  geom_contour(sampling=sampling_vertex_vw(150))
276
281
 
277
282
  """
278
- return _sampling('vertex_vw', n=n)
283
+ return _sampling('vertex_vw', n=n, polygon=polygon)
279
284
 
280
285
 
281
- def sampling_vertex_dp(n):
286
+ def sampling_vertex_dp(n, polygon=None):
282
287
  """
283
288
  Simplify a polyline using the Douglas-Peucker algorithm.
284
289
 
@@ -287,6 +292,11 @@ def sampling_vertex_dp(n):
287
292
  n : int
288
293
  Number of items to return.
289
294
 
295
+ polygon : bool, default=None
296
+ If True, the input data is considered as a polygon rings.
297
+ If False, the input data is considered as a polyline.
298
+ None for auto-detection.
299
+
290
300
  Returns
291
301
  -------
292
302
  `FeatureSpec`
@@ -321,7 +331,7 @@ def sampling_vertex_dp(n):
321
331
  geom_contour(sampling=sampling_vertex_dp(100))
322
332
 
323
333
  """
324
- return _sampling('vertex_dp', n=n)
334
+ return _sampling('vertex_dp', n=n, polygon=polygon)
325
335
 
326
336
 
327
337
  def _sampling(name, **kwargs):
lets_plot/plot/stat.py CHANGED
@@ -9,7 +9,8 @@ __all__ = ['stat_summary', 'stat_summary_bin', 'stat_ecdf', 'stat_sum']
9
9
 
10
10
 
11
11
  def stat_summary(mapping=None, *, data=None, geom=None,
12
- position=None, show_legend=None, sampling=None, tooltips=None,
12
+ position=None, show_legend=None, inherit_aes=None,
13
+ sampling=None, tooltips=None,
13
14
  orientation=None,
14
15
  fun=None, fun_min=None, fun_max=None,
15
16
  quantiles=None,
@@ -35,6 +36,8 @@ def stat_summary(mapping=None, *, data=None, geom=None,
35
36
  'stack' or 'identity', or the result of calling a position adjustment function (e.g., `position_dodge()` etc.).
36
37
  show_legend : bool, default=True
37
38
  False - do not show legend for this layer.
39
+ inherit_aes : bool, default=True
40
+ False - do not combine the layer aesthetic mappings with the plot shared mappings.
38
41
  sampling : `FeatureSpec`
39
42
  Result of the call to the `sampling_xxx()` function.
40
43
  To prevent any sampling for this layer pass value "none" (string "none").
@@ -138,6 +141,7 @@ def stat_summary(mapping=None, *, data=None, geom=None,
138
141
  stat='summary',
139
142
  position=position,
140
143
  show_legend=show_legend,
144
+ inherit_aes=inherit_aes,
141
145
  sampling=sampling,
142
146
  tooltips=tooltips,
143
147
  orientation=orientation,
@@ -148,7 +152,8 @@ def stat_summary(mapping=None, *, data=None, geom=None,
148
152
 
149
153
 
150
154
  def stat_summary_bin(mapping=None, *, data=None, geom=None,
151
- position=None, show_legend=None, sampling=None, tooltips=None,
155
+ position=None, show_legend=None, inherit_aes=None,
156
+ sampling=None, tooltips=None,
152
157
  orientation=None,
153
158
  fun=None, fun_min=None, fun_max=None,
154
159
  quantiles=None,
@@ -177,6 +182,8 @@ def stat_summary_bin(mapping=None, *, data=None, geom=None,
177
182
  'stack' or 'identity', or the result of calling a position adjustment function (e.g., `position_dodge()` etc.).
178
183
  show_legend : bool, default=True
179
184
  False - do not show legend for this layer.
185
+ inherit_aes : bool, default=True
186
+ False - do not combine the layer aesthetic mappings with the plot shared mappings.
180
187
  sampling : `FeatureSpec`
181
188
  Result of the call to the `sampling_xxx()` function.
182
189
  To prevent any sampling for this layer pass value "none" (string "none").
@@ -290,6 +297,7 @@ def stat_summary_bin(mapping=None, *, data=None, geom=None,
290
297
  stat='summarybin',
291
298
  position=position,
292
299
  show_legend=show_legend,
300
+ inherit_aes=inherit_aes,
293
301
  sampling=sampling,
294
302
  tooltips=tooltips,
295
303
  orientation=orientation,
@@ -302,7 +310,8 @@ def stat_summary_bin(mapping=None, *, data=None, geom=None,
302
310
 
303
311
 
304
312
  def stat_ecdf(mapping=None, *, data=None, geom=None,
305
- position=None, show_legend=None, sampling=None, tooltips=None,
313
+ position=None, show_legend=None, inherit_aes=None,
314
+ sampling=None, tooltips=None,
306
315
  orientation=None,
307
316
  n=None, pad=None,
308
317
  color_by=None,
@@ -327,6 +336,8 @@ def stat_ecdf(mapping=None, *, data=None, geom=None,
327
336
  'stack' or 'identity', or the result of calling a position adjustment function (e.g., `position_dodge()` etc.).
328
337
  show_legend : bool, default=True
329
338
  False - do not show legend for this layer.
339
+ inherit_aes : bool, default=True
340
+ False - do not combine the layer aesthetic mappings with the plot shared mappings.
330
341
  sampling : `FeatureSpec`
331
342
  Result of the call to the `sampling_xxx()` function.
332
343
  To prevent any sampling for this layer pass value "none" (string "none").
@@ -426,6 +437,7 @@ def stat_ecdf(mapping=None, *, data=None, geom=None,
426
437
  stat='ecdf',
427
438
  position=position,
428
439
  show_legend=show_legend,
440
+ inherit_aes=inherit_aes,
429
441
  sampling=sampling,
430
442
  tooltips=tooltips,
431
443
  orientation=orientation,
@@ -435,7 +447,8 @@ def stat_ecdf(mapping=None, *, data=None, geom=None,
435
447
  **other_args)
436
448
 
437
449
 
438
- def stat_sum(mapping=None, *, data=None, geom=None, position=None, show_legend=None, sampling=None, tooltips=None,
450
+ def stat_sum(mapping=None, *, data=None, geom=None, position=None, show_legend=None, inherit_aes=None,
451
+ sampling=None, tooltips=None,
439
452
  color_by=None, fill_by=None,
440
453
  **other_args):
441
454
  """
@@ -458,6 +471,8 @@ def stat_sum(mapping=None, *, data=None, geom=None, position=None, show_legend=N
458
471
  'stack' or 'identity', or the result of calling a position adjustment function (e.g., `position_dodge()` etc.).
459
472
  show_legend : bool, default=True
460
473
  False - do not show legend for this layer.
474
+ inherit_aes : bool, default=True
475
+ False - do not combine the layer aesthetic mappings with the plot shared mappings.
461
476
  sampling : `FeatureSpec`
462
477
  Result of the call to the `sampling_xxx()` function.
463
478
  To prevent any sampling for this layer pass value "none" (string "none").
@@ -534,6 +549,7 @@ def stat_sum(mapping=None, *, data=None, geom=None, position=None, show_legend=N
534
549
  stat='sum',
535
550
  position=position,
536
551
  show_legend=show_legend,
552
+ inherit_aes=inherit_aes,
537
553
  sampling=sampling,
538
554
  tooltips=tooltips,
539
555
  color_by=color_by,
@@ -67,7 +67,7 @@ class SupPlotsSpec(FeatureSpec):
67
67
  supplots = supplots.__add__(spec)
68
68
  return supplots
69
69
 
70
- elif isinstance(other, FeatureSpec) and other.kind in ["ggsize", "theme"]:
70
+ elif isinstance(other, FeatureSpec) and other.kind in ["ggsize", "theme", "ggtoolbar"]:
71
71
 
72
72
  supplots = SupPlotsSpec.duplicate(self)
73
73
  # ToDo: duplication!
lets_plot/plot/theme_.py CHANGED
@@ -42,6 +42,12 @@ def theme(*,
42
42
  legend_background=None,
43
43
  legend_text=None, legend_title=None,
44
44
  legend_position=None, legend_justification=None, legend_direction=None,
45
+ legend_margin=None,
46
+ legend_spacing=None, legend_spacing_x=None,legend_spacing_y=None,
47
+ legend_key=None,
48
+ legend_key_size=None, legend_key_width=None, legend_key_height=None,
49
+ legend_key_spacing=None, legend_key_spacing_x=None, legend_key_spacing_y=None,
50
+ legend_box=None, legend_box_just=None, legend_box_spacing=None,
45
51
  # ToDo: other legend options...
46
52
 
47
53
  panel_background=None,
@@ -72,8 +78,8 @@ def theme(*,
72
78
  plot_title_position=None,
73
79
  plot_caption_position=None,
74
80
 
75
- strip_background=None, # ToDo: x/y
76
- strip_text=None, # ToDo: x/y
81
+ strip_background=None, strip_background_x=None, strip_background_y=None,
82
+ strip_text=None, strip_text_x=None, strip_text_y=None,
77
83
  # ToDo: strip.placement
78
84
 
79
85
  axis_tooltip=None, axis_tooltip_x=None, axis_tooltip_y=None,
@@ -92,11 +98,18 @@ def theme(*,
92
98
 
93
99
  Parameters
94
100
  ----------
95
- exponent_format : {'e', 'pow'}, default='e'
101
+ exponent_format : {'e', 'pow', 'pow_full'} or tuple, default='e'
96
102
  Format for numeric labels in scientific notation.
97
103
 
98
- - e for "e" notation (e.g. 1e+6)
99
- - pow for "power" notation (e.g. 1x10^6). This will enable superscript formatting for the exponent.
104
+ - e for "e" notation (e.g. 1e+6);
105
+ - pow_full for "power" notation (e.g. 1x10^6). This will enable superscript formatting for the exponent;
106
+ - pow works as pow_full but will shorten powers of 10 (e.g. 10^6 instead of 1x10^6).
107
+
108
+ If parameter is a tuple, then it should be a three-element tuple:
109
+
110
+ - the first element is the format - 'e', 'pow', 'pow_full';
111
+ - the second element is minimum exponent value from which to use scientific notation (default is -7);
112
+ - the third element is maximum exponent value from which to use scientific notation (default is taken from `precision` of the current formatting, see https://lets-plot.org/python/pages/formats.html).
100
113
 
101
114
  Note that superscript is not fully support by CairoSVG library and export to PNG/PDF may produce unexpected results.
102
115
  line : str or dict
@@ -167,6 +180,44 @@ def theme(*,
167
180
  For string parameter the only possible value is 'center'.
168
181
  legend_direction : {'horizontal', 'vertical'}
169
182
  Layout of items in legends.
183
+ legend_margin : number or list of numbers
184
+ Margin around each legend.
185
+ The margin may be specified using a number or a list of numbers:
186
+
187
+ - a number or list of one number - the same margin it applied to all four sides;
188
+ - a list of two numbers - the first margin applies to the top and bottom, the second - to the left and right;
189
+ - a list of three numbers - the first margin applies to the top, the second - to the right and left, the third - to the bottom;
190
+ - a list of four numbers - the margins are applied to the top, right, bottom and left in that order.
191
+
192
+ It is acceptable to use None for any side; in this case, the default value for the legend margin side will be used.
193
+ legend_spacing : float
194
+ Spacing between legends.
195
+ legend_spacing_x : float
196
+ Spacing between legends in the horizontal direction, inherited from `legend_spacing`.
197
+ legend_spacing_y : float
198
+ Spacing between legends in the vertical direction, inherited from `legend_spacing`.
199
+ legend_key : str or dict
200
+ Background underneath legend keys.
201
+ Set 'blank' or result of `element_blank()` to draw nothing.
202
+ Set `element_rect()` to specify legend key background parameters, inherited from `rect`.
203
+ legend_key_size : float
204
+ Size of legend keys.
205
+ legend_key_width : float
206
+ Key background width, inherited from `legend_key_size`.
207
+ legend_key_height : float
208
+ Key background height, inherited from `legend_key_size`.
209
+ legend_key_spacing : float
210
+ Spacing between legend keys.
211
+ legend_key_spacing_x : float
212
+ Spacing between legend keys in the horizontal direction, inherited from `legend_key_spacing`.
213
+ legend_key_spacing_y : float
214
+ Spacing between legend keys in the vertical direction, inherited from `legend_key_spacing`.
215
+ legend_box : {'horizontal', 'vertical'}
216
+ Arrangement of multiple legends.
217
+ legend_box_just : {'left', 'right', 'bottom', 'top', 'center'}
218
+ Justification of each legend within the overall bounding box, when there are multiple legends.
219
+ legend_box_spacing : float
220
+ Spacing between plotting area and legend box.
170
221
  panel_background : str or dict
171
222
  Background of plotting area.
172
223
  Set 'blank' or result of `element_blank()` to draw nothing.
@@ -247,10 +298,26 @@ def theme(*,
247
298
  Background of facet labels.
248
299
  Set 'blank' or result of `element_blank()` to draw nothing.
249
300
  Set `element_rect()` to specify facet label background parameters, inherited from `rect`.
301
+ strip_background_x : str or dict
302
+ Horizontal facet background.
303
+ Set 'blank' or result of `element_blank()` to draw nothing.
304
+ Set `element_rect()` to specify facet label background parameters, inherited from `strip_background`.
305
+ strip_background_y : str or dict
306
+ Vertical facet background.
307
+ Set 'blank' or result of `element_blank()` to draw nothing.
308
+ Set `element_rect()` to specify facet label background parameters, inherited from `strip_background`.
250
309
  strip_text : str or dict
251
310
  Facet labels.
252
311
  Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
253
312
  Set `element_text()` to specify facet label parameters, inherited from `text`.
313
+ strip_text_x : str or dict
314
+ Horizontal facet labels.
315
+ Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
316
+ Set `element_text()` to specify facet label parameters, inherited from `strip_text`.
317
+ strip_text_y : str or dict
318
+ Vertical facet labels.
319
+ Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
320
+ Set `element_text()` to specify facet label parameters, inherited from `strip_text`.
254
321
  axis_tooltip, axis_tooltip_x, axis_tooltip_y : str or dict
255
322
  Axes tooltips.
256
323
  Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
@@ -396,9 +463,13 @@ def element_rect(
396
463
  Border color.
397
464
  size : int
398
465
  Border size.
399
- linetype : int or str
400
- Type of the line.
401
- Codes and names: 0 = 'blank', 1 = 'solid', 2 = 'dashed', 3 = 'dotted', 4 = 'dotdash', 5 = 'longdash', 6 = 'twodash'.
466
+ linetype : int or str or list
467
+ Type of the line. Accepts the following values:
468
+
469
+ - Codes or names: 0 = 'blank', 1 = 'solid', 2 = 'dashed', 3 = 'dotted', 4 = 'dotdash', 5 = 'longdash', 6 = 'twodash'.
470
+ - A string of an even number (up to eight) of hexadecimal digits, specifying the lengths in consecutive positions.
471
+ - A list defines the pattern of dashes and gaps, either with an offset: [offset, [dash, gap, ...]], or without an offset: [dash, gap, ...].
472
+
402
473
  For more info see https://lets-plot.org/python/pages/aesthetics.html#line-types.
403
474
  blank : bool, default=False
404
475
  If True - draws nothing, and assigns no space.
@@ -443,9 +514,14 @@ def element_line(
443
514
  Line color.
444
515
  size : int
445
516
  Line size.
446
- linetype : int or str
447
- Type of the line.
448
- Codes and names: 0 = 'blank', 1 = 'solid', 2 = 'dashed', 3 = 'dotted', 4 = 'dotdash', 5 = 'longdash', 6 = 'twodash'.
517
+ linetype : int or str or list
518
+ Type of the line. Accepts the following values:
519
+
520
+ - Codes or names: 0 = 'blank', 1 = 'solid', 2 = 'dashed', 3 = 'dotted', 4 = 'dotdash', 5 = 'longdash', 6 = 'twodash'.
521
+ - A string of an even number (up to eight) of hexadecimal digits, specifying the lengths in consecutive positions.
522
+ - A list defines the pattern of dashes and gaps, either with an offset: [offset, [dash, gap, ...]], or without an offset: [dash, gap, ...].
523
+
524
+ For more info see https://lets-plot.org/python/pages/aesthetics.html#line-types.
449
525
  blank : bool, default=False
450
526
  If True - draws nothing, and assigns no space.
451
527
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lets-plot
3
- Version: 4.4.1
3
+ Version: 4.5.0rc1
4
4
  Summary: An open source library for statistical plotting
5
5
  Home-page: https://lets-plot.org
6
6
  Author: JetBrains
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.9
18
18
  Classifier: Programming Language :: Python :: 3.10
19
19
  Classifier: Programming Language :: Python :: 3.11
20
20
  Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Programming Language :: Python :: 3.13
21
22
  Classifier: Framework :: IPython
22
23
  Classifier: Framework :: Jupyter
23
24
  Classifier: Operating System :: MacOS
@@ -1,9 +1,9 @@
1
- lets_plot_kotlin_bridge.cpython-311-darwin.so,sha256=MTiOURMUzwt9TVNZ4zrHEDkb9qrutBe31gBZyfvBfYk,10881802
1
+ lets_plot_kotlin_bridge.cpython-311-darwin.so,sha256=qVgA49z8fAoT7a051VCf7PPbJiwuvq3liGFtgp1F170,9994560
2
2
  lets_plot/__init__.py,sha256=uYJOgJCzwusWmYE3fjz3j-JxXOADmgq3KTNISxo4akI,11197
3
3
  lets_plot/_global_settings.py,sha256=4P9UL6xWEARJuxyvXBQUxt1NE_YDrU_ElF34pr72VhA,7440
4
4
  lets_plot/_kbridge.py,sha256=H8-GGwhKjnmLlyfAoR_VBHhgb7wlWnQP0-fDto5FF-4,1214
5
5
  lets_plot/_type_utils.py,sha256=2GZ4GrJHe7rk_DPSHj88nBW8R9xxx7IGbgGQwhQclOg,2919
6
- lets_plot/_version.py,sha256=5emhbyPYs7SBJLfjF-8qVb78mXhhIdROfIcQaCY1M4k,233
6
+ lets_plot/_version.py,sha256=CNaHry1asiVTw-Sn3b6iFGEMqsojQifpJecsaufZTv4,236
7
7
  lets_plot/mapping.py,sha256=q-O14pcnAosRIWcgg9-CkXMF43p5H7cKbyT4ne9w6hY,3576
8
8
  lets_plot/settings_utils.py,sha256=PrceNltN0JNzYxkIx0hwGgzX9dNxgVNqZY5hQ-r8QMQ,8434
9
9
  lets_plot/tilesets.py,sha256=gN7gfn4qnXZj699LyxpDWwEuWwNmAJr2ZQ7VJX7rzoU,10382
@@ -12,11 +12,11 @@ lets_plot/bistro/_plot2d_common.py,sha256=AnzmYmgdcZBysB_4X3EtSKmLkST3TScMBJacU9
12
12
  lets_plot/bistro/corr.py,sha256=zp79T9YmIjhQCOPSxmGwcUVQvP51nj_4lvvbxANzO_0,12684
13
13
  lets_plot/bistro/im.py,sha256=1WRJolrSGcZbR0n_qbX8oiuPk37D-coT6ZVDbFm7uAc,5489
14
14
  lets_plot/bistro/joint.py,sha256=VxW7SPH4P9Umi7I9-O13E_j1ChuyOTb-mXMA631VLK8,6362
15
- lets_plot/bistro/qq.py,sha256=4m_8xzBH6B_WrZOnQUVBiUwirpOgliQVFNAaxUM2foE,6867
15
+ lets_plot/bistro/qq.py,sha256=w-FQp0Mk2AC9LLL7VQph_2zB8WlLtjPyaH5jMuV7lhs,7822
16
16
  lets_plot/bistro/residual.py,sha256=looYjQfoRvkmttbec3yZ3HAc6AZLuOFKu8F6-kJ-AFI,12115
17
- lets_plot/bistro/waterfall.py,sha256=fE6C9egNBhIek-ooRjSqdRK6iU834aVvn6q3QEl4hE0,9960
17
+ lets_plot/bistro/waterfall.py,sha256=t-wgocvPiDBecdlWS-HOAHwsfQFBJd2v60dF5quBb8g,10260
18
18
  lets_plot/export/__init__.py,sha256=lDs6fqtQjkgJyKqeYlOdhrHMN__TeggTz73hgHAkyzc,188
19
- lets_plot/export/ggsave_.py,sha256=cJFTKxZjfoEpiZ9_PKKIAvjcbdPe1MAAjVE8TT-1DQI,3888
19
+ lets_plot/export/ggsave_.py,sha256=2RaY-_spIIV3LL7r1MP9dvM7SMsIeR8CqtGXPjIp4tI,4571
20
20
  lets_plot/frontend_context/__init__.py,sha256=nqIogfMulwKRY2l_v3Rn7tXMQ1btasX9f7dwfrVaj_A,204
21
21
  lets_plot/frontend_context/_configuration.py,sha256=5_2aUyWkPgJ0-q0znBM4ktjyv9qijXV6knGjgDBxIZI,5205
22
22
  lets_plot/frontend_context/_frontend_ctx.py,sha256=073vxq0laO6ubol3kJK6aBbWo9Fr2_olbQEZUbr_QFc,359
@@ -47,27 +47,28 @@ lets_plot/geo_data/gis/response.py,sha256=7Ac2VN4Hl9iffm7wAyfL80Wzo7sG9A1F5BqzJU
47
47
  lets_plot/geo_data_internals/__init__.py,sha256=4R6hr7MVB9iRi9JNQm_UUQL9jCe_dYDtizw_230V2Yg,234
48
48
  lets_plot/geo_data_internals/constants.py,sha256=IDpHhOOg7dbfIKqLNSk3AGa-5HjDcnItFZDxCm4fylw,428
49
49
  lets_plot/geo_data_internals/utils.py,sha256=phV_Q84xz4uZH2jI9WLUrYDyZAz0d2-00OOLxkRH4iw,967
50
- lets_plot/package_data/lets-plot.min.js,sha256=CRMhxnvEoVVjzF_PyJL4CGXypfvaexyGA6NvD0Q8B-Q,2156339
51
- lets_plot/plot/__init__.py,sha256=4qZ2faAzIfB_UjPRSm092fLrtpXlo7QFKPwBQHsiAJk,1651
50
+ lets_plot/package_data/lets-plot.min.js,sha256=AHHLu-TNzzcbFh8niOJY9nEZah5Zeg1pc1x2qKVZ-yM,2753711
51
+ lets_plot/plot/__init__.py,sha256=XrJ9P8gX-RsQqYhHLrcmuByVqk9PEm4kb6EQXrqVJug,1717
52
52
  lets_plot/plot/_global_theme.py,sha256=hOV9MzYpfjdF6hDE3mfLv_LqFtaouCJcccoW8pGoFoU,297
53
53
  lets_plot/plot/annotation.py,sha256=V3q3SBi8kN3pCLNoSAIu6IJh9om_gAIKP0Ky8olCvQk,7643
54
54
  lets_plot/plot/coord.py,sha256=h9ZTNmSbRjIdVTL_TTl9Dn5AsY46tYxuAKddUPjwe8s,7976
55
- lets_plot/plot/core.py,sha256=dlkUYuTGC9HTIooDCEo-DnAQx6UItaWiQa7YYXAe4Lg,31248
56
- lets_plot/plot/facet.py,sha256=bxCqzdaSpxwot0HBmCCr34-Rub5-CNAqDVonChf9rvk,6832
55
+ lets_plot/plot/core.py,sha256=qJrSJeb6drY4GHQgZF0Zlr6q9yoPk0nfMO5-ls8mhTc,31533
56
+ lets_plot/plot/expand_limits_.py,sha256=tQvVccVsi3fMk6RC46pKr2m1nbKqwn7eq9TF6atDFMA,2311
57
+ lets_plot/plot/facet.py,sha256=Q8_ymaU_hF3NSZRzKfIp1MYUKLBD3ElLQ-DiZi2nKbI,6996
57
58
  lets_plot/plot/font_features.py,sha256=vUc_ICerwqnwwJbDaAm_fS8fmbRTZHzPoAHRszw0SF4,2238
58
- lets_plot/plot/geom.py,sha256=hVlzhDNC2C-_Rvz9aY61ARQ1EekMDtjJ1l7udVsxp7E,312386
59
+ lets_plot/plot/geom.py,sha256=jkjCDDooO-GUQTwazFtLZbiThlSNl6FqYN-gN4i0gbQ,332469
59
60
  lets_plot/plot/geom_extras.py,sha256=I_ERjnZlk5VyilJELx0sA_4C2a_Ycjc2Thas-I6WZoo,1694
60
- lets_plot/plot/geom_function_.py,sha256=imMyr80qWTu97DEkPcWedoFC2912m_Z1JVbjDPLHlAs,7265
61
- lets_plot/plot/geom_imshow_.py,sha256=BdBSRA8GKYhkiyeJ5SC0hLl4mKBFcfSiW6mtNxsI7cc,14732
61
+ lets_plot/plot/geom_function_.py,sha256=LHbARur0yE6hQLijFggjhybgOpXgMKCVTUrx0b0xa3Y,7595
62
+ lets_plot/plot/geom_imshow_.py,sha256=LWlNVriYK26HZGUjdkbiB4YaoTlVQxUyaNUPY46RVqw,14759
62
63
  lets_plot/plot/geom_livemap_.py,sha256=cogSH7GPz3pAMFQ_oIGG8OQqE8h7iazGbb1TNxLj5Bk,11817
63
- lets_plot/plot/gggrid_.py,sha256=cNVcostKNwG8tzAcuYrxV2fPDjEWmp5PlDAJg3YDP-o,4468
64
- lets_plot/plot/ggtb_.py,sha256=IAayE7oznakUU_K13moWycPz0hs6RCs9Yfk7QoJF1wM,255
64
+ lets_plot/plot/gggrid_.py,sha256=sSPdyj28v4eAcT4MeSWUjqr76m7MU8e-KIh8O-uuGSo,4484
65
+ lets_plot/plot/ggtb_.py,sha256=T2j6QO1DkEo4hO6e4rKUzjHC1HqA1i3ilG7MVl-MCj4,1666
65
66
  lets_plot/plot/guide.py,sha256=C-mDgjXKwQz_Pv6OB1rcQohAIUAl0QvoApPsAR5lbs4,6694
66
- lets_plot/plot/label.py,sha256=4d7YfGRA8uC8I-8VrJrryFXb_i-RfBQ9TKLHS3OAcek,4549
67
+ lets_plot/plot/label.py,sha256=iXTTLP-AjFtHRnti8v4mZMnGLRNLhsxhvetoQPhi8H0,4549
67
68
  lets_plot/plot/marginal_layer.py,sha256=Y4FMmQZlUuLxzjjntVQThuV8scG6LbEmDGjstGMOls4,6357
68
69
  lets_plot/plot/plot.py,sha256=qtkQzu9kfkq0URpgUun_4x2y2LOvEeGxEzgfF5_vjOE,7865
69
70
  lets_plot/plot/pos.py,sha256=FIVYTElPSU5P8ZjI0FyweO2j1Cgb62dvJ172xXtxUp8,10359
70
- lets_plot/plot/sampling.py,sha256=ZdJ0CH2qFx4XX53muCzO19Jss8tip-U_A138pdeYYYE,8037
71
+ lets_plot/plot/sampling.py,sha256=qy0aesxFgpx-cO0-dC1Wv9r4oSbtz7hRPC9YsNk9Pyo,8489
71
72
  lets_plot/plot/sandbox_.py,sha256=Tb5UwJqe8HMMSCbDLdrj_BcxPSkmyxy-hI0_2L6kpBk,545
72
73
  lets_plot/plot/scale.py,sha256=cAwKr-jpipZdiFGpKGfNfGxC8XNqX8Qtcqg0BL01TRk,135384
73
74
  lets_plot/plot/scale_colormap_mpl.py,sha256=VVUcGu1Fp4YJ1S7oViWdgabeEb6oNfmVva-F15WQtVA,10216
@@ -75,14 +76,14 @@ lets_plot/plot/scale_convenience.py,sha256=VWe9BJhFlUbWL2CLrOrxPy523dGIKIOL7A2H7
75
76
  lets_plot/plot/scale_identity_.py,sha256=dxLzsiqBojq9dH7OI_z-rF-M_jUp8-jFwiE_tnu56Wo,23729
76
77
  lets_plot/plot/scale_position.py,sha256=V6rLz6niV0ecneZFlRB8Rf88gTcYRPneouoBZyItu0k,46047
77
78
  lets_plot/plot/series_meta.py,sha256=u8yEBcYw4_iXigUrQXJvapiHO3BiN_3F8S8B2OHtGD8,5498
78
- lets_plot/plot/stat.py,sha256=EKMTHTXkFhrPQuJ5oHVJl28nZHiigv4lKoO_x-zwhlQ,21218
79
- lets_plot/plot/subplots.py,sha256=n3NtL_KcybbyipJhEprhSobTf36Yq1IWYhjmOcwskx8,11298
80
- lets_plot/plot/theme_.py,sha256=MJYwxC9vjo3J-eFfjY9URDT4p0olSxWEFHMX-0INJB4,23784
79
+ lets_plot/plot/stat.py,sha256=22TeiSyslyGSEGJygc1l11unwmXFoZiPTPJc-kGUSZI,22035
80
+ lets_plot/plot/subplots.py,sha256=Lhapm_3Z8-yPKTNg3Ey4RXGgJ_6X7zUxwWQ7Ob1Yks4,11311
81
+ lets_plot/plot/theme_.py,sha256=tK6I-oxL_QP55Du7IpJ58XCmPHkdlniBETyQ4smXlPw,28701
81
82
  lets_plot/plot/theme_set.py,sha256=USNU-ccPKlZ4KEC1ij92n-SHY5271Ru_c1CQIIWXonI,9103
82
83
  lets_plot/plot/tooltip.py,sha256=s7L5RRCokDQTLVW3qD9h-7n-4cp2K36ALfZ4EJep6V4,15966
83
84
  lets_plot/plot/util.py,sha256=778yCTbEOvFRNueMyEPhRkJtPEwzh3Lo0LQO0FtoM0U,8586
84
- lets_plot-4.4.1.dist-info/LICENSE,sha256=r43VKLFaMylB4Ru-pE07j0cfUO7wQpMnWm-uZ8hEqMw,1066
85
- lets_plot-4.4.1.dist-info/METADATA,sha256=bQLc_NlXYzHcWey2c6gGFO7EwG334AaO5aZze-9Vs3U,9969
86
- lets_plot-4.4.1.dist-info/WHEEL,sha256=GtUMBD8rRNN-RJptdWLtqVb-pAPV69bWaMPIs5zM-s8,109
87
- lets_plot-4.4.1.dist-info/top_level.txt,sha256=ID-ORXUWN-oVZmD4YFy1rQVm2QT1D-MlGON3vdxqgpY,34
88
- lets_plot-4.4.1.dist-info/RECORD,,
85
+ lets_plot-4.5.0rc1.dist-info/LICENSE,sha256=r43VKLFaMylB4Ru-pE07j0cfUO7wQpMnWm-uZ8hEqMw,1066
86
+ lets_plot-4.5.0rc1.dist-info/METADATA,sha256=clHovPJ_h3chhN2RQIUEhjLNlKtrPW2sZ_qAZ-KrelE,10023
87
+ lets_plot-4.5.0rc1.dist-info/WHEEL,sha256=wZi4olA0NR6c8yfzURN7DX9ImcSoHfH-g7UT7-9uFnE,109
88
+ lets_plot-4.5.0rc1.dist-info/top_level.txt,sha256=ID-ORXUWN-oVZmD4YFy1rQVm2QT1D-MlGON3vdxqgpY,34
89
+ lets_plot-4.5.0rc1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (73.0.1)
2
+ Generator: setuptools (75.2.0)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp311-cp311-macosx_11_0_arm64
5
5