lets-plot 4.6.2__cp311-cp311-macosx_11_0_arm64.whl → 4.7.0__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.
- lets_plot/_global_settings.py +5 -0
- lets_plot/_kbridge.py +7 -0
- lets_plot/_type_utils.py +29 -6
- lets_plot/_version.py +1 -1
- lets_plot/bistro/im.py +2 -2
- lets_plot/bistro/waterfall.py +93 -12
- lets_plot/export/ggsave_.py +22 -14
- lets_plot/package_data/lets-plot.min.js +2 -1
- lets_plot/plot/annotation.py +75 -18
- lets_plot/plot/core.py +152 -33
- lets_plot/plot/geom.py +752 -93
- lets_plot/plot/geom_function_.py +1 -1
- lets_plot/plot/geom_imshow_.py +42 -51
- lets_plot/plot/pos.py +13 -44
- lets_plot/plot/scale_position.py +9 -3
- lets_plot/plot/series_meta.py +179 -105
- lets_plot/plot/stat.py +4 -4
- lets_plot/plot/subplots.py +4 -4
- lets_plot/plot/theme_.py +57 -54
- lets_plot/plot/util.py +31 -5
- {lets_plot-4.6.2.dist-info → lets_plot-4.7.0.dist-info}/METADATA +52 -24
- {lets_plot-4.6.2.dist-info → lets_plot-4.7.0.dist-info}/RECORD +30 -26
- {lets_plot-4.6.2.dist-info → lets_plot-4.7.0.dist-info}/WHEEL +1 -1
- lets_plot-4.7.0.dist-info/licenses/licenses/LICENSE.FreeType +166 -0
- lets_plot-4.7.0.dist-info/licenses/licenses/LICENSE.ImageMagick +106 -0
- lets_plot-4.7.0.dist-info/licenses/licenses/LICENSE.expat +21 -0
- lets_plot-4.7.0.dist-info/licenses/licenses/LICENSE.fontconfig +200 -0
- lets_plot_kotlin_bridge.cpython-311-darwin.so +0 -0
- {lets_plot-4.6.2.dist-info → lets_plot-4.7.0.dist-info}/licenses/LICENSE +0 -0
- {lets_plot-4.6.2.dist-info → lets_plot-4.7.0.dist-info}/top_level.txt +0 -0
lets_plot/plot/theme_.py
CHANGED
|
@@ -32,6 +32,7 @@ def theme(*,
|
|
|
32
32
|
axis_text=None, axis_text_x=None, axis_text_y=None,
|
|
33
33
|
# ToDo: axis.text.x.top, axis.text.x.bottom
|
|
34
34
|
# ToDo: axis.text.x.left, axis.text.x.right
|
|
35
|
+
axis_text_spacing=None, axis_text_spacing_x=None, axis_text_spacing_y=None,
|
|
35
36
|
axis_ticks=None, axis_ticks_x=None, axis_ticks_y=None,
|
|
36
37
|
# ToDo: axis.ticks.x.top, axis.ticks.x.bottom
|
|
37
38
|
# ToDo: axis.ticks.x.left, axis.ticks.x.right
|
|
@@ -116,59 +117,61 @@ def theme(*,
|
|
|
116
117
|
|
|
117
118
|
Superscript is not supported when exporting to PNG/PDF.
|
|
118
119
|
line : str or dict
|
|
119
|
-
|
|
120
|
+
Style settings for all line elements.
|
|
120
121
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
121
122
|
Set `element_line()` to specify line parameters.
|
|
122
123
|
rect : str or dict
|
|
123
|
-
|
|
124
|
+
Style settings for all rectangular elements.
|
|
124
125
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
125
126
|
Set `element_rect()` to specify rectangular element parameters.
|
|
126
127
|
text : str or dict
|
|
127
|
-
|
|
128
|
+
Style settings for all text elements.
|
|
128
129
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
129
130
|
Set `element_text()` to specify text parameters.
|
|
130
131
|
title : str or dict
|
|
131
|
-
|
|
132
|
+
Style settings for all title elements: plot, axes, legends.
|
|
132
133
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
133
134
|
Set `element_text()` to specify title text parameters, inherited from `text`.
|
|
134
135
|
axis : str or dict
|
|
135
|
-
|
|
136
|
+
Style settings for all axis elements: lines, ticks, texts, titles.
|
|
136
137
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
137
138
|
Set `element_line()` to specify axes parameters.
|
|
138
139
|
axis_ontop, axis_ontop_x, axis_ontop_y : bool, default=True
|
|
139
140
|
Option to place axis (lines, tickmarks and labels) over the data layers.
|
|
140
141
|
axis_title, axis_title_x, axis_title_y : str or dict
|
|
141
|
-
|
|
142
|
+
Style settings for axis titles.
|
|
142
143
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
143
|
-
Set `element_text()` to specify
|
|
144
|
+
Set `element_text()` to specify axis title parameters.
|
|
144
145
|
`axis_title_*` inherits from `axis_title` which inherits from `text`.
|
|
145
146
|
axis_text, axis_text_x, axis_text_y : str or dict
|
|
146
|
-
|
|
147
|
+
Style settings for tick labels along axes.
|
|
147
148
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
148
149
|
Set `element_text()` to specify all axes tick label parameters.
|
|
149
150
|
`axis_text_*` inherits from `axis_text` which inherits from `text`.
|
|
151
|
+
axis_text_spacing, axis_text_spacing_x, axis_text_spacing_y : float
|
|
152
|
+
Spacing between the axis label text and its tick mark.
|
|
150
153
|
axis_ticks, axis_ticks_x, axis_ticks_y : str or dict
|
|
151
|
-
|
|
154
|
+
Style settings for tick marks along axes.
|
|
152
155
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
153
156
|
Set `element_line()` to specify all tick mark parameters.
|
|
154
157
|
`axis_ticks_*` inherits from `axis_ticks` which inherits from `line`.
|
|
155
158
|
axis_ticks_length, axis_ticks_length_x, axis_ticks_length_y : float
|
|
156
159
|
Length of tick marks in px.
|
|
157
160
|
axis_line, axis_line_x, axis_line_y : str or dict
|
|
158
|
-
|
|
161
|
+
Style settings for lines along axes.
|
|
159
162
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
160
163
|
Set `element_line()` to specify line parameters along all axes.
|
|
161
164
|
`axis_line_*` inherits from `axis_line` which inherits from `line`.
|
|
162
165
|
legend_background : str or dict
|
|
163
|
-
|
|
166
|
+
Style settings for background of legend.
|
|
164
167
|
Set 'blank' or result of `element_blank()` to draw nothing.
|
|
165
168
|
Set `element_rect()` to specify legend background parameters, inherited from `rect`.
|
|
166
169
|
legend_text : str or dict
|
|
167
|
-
|
|
170
|
+
Style settings for legend item labels.
|
|
168
171
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
169
172
|
Set `element_text()` to specify legend item label parameters, inherited from `text`.
|
|
170
173
|
legend_title : str or dict
|
|
171
|
-
|
|
174
|
+
Style settings for legend title.
|
|
172
175
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
173
176
|
Set `element_text()` to specify legend title parameters, inherited from `title`.
|
|
174
177
|
legend_position : {'none', 'left', 'right', 'bottom', 'top'} or list
|
|
@@ -187,7 +190,7 @@ def theme(*,
|
|
|
187
190
|
Margin around each legend.
|
|
188
191
|
The margin may be specified using a number or a list of numbers:
|
|
189
192
|
|
|
190
|
-
- a number or list of one number - the same margin
|
|
193
|
+
- a number or list of one number - the same margin is applied to all four sides;
|
|
191
194
|
- a list of two numbers - the first margin applies to the top and bottom, the second - to the left and right;
|
|
192
195
|
- a list of three numbers - the first margin applies to the top, the second - to the right and left, the third - to the bottom;
|
|
193
196
|
- a list of four numbers - the margins are applied to the top, right, bottom and left in that order.
|
|
@@ -200,7 +203,7 @@ def theme(*,
|
|
|
200
203
|
legend_spacing_y : float
|
|
201
204
|
Spacing between legends in the vertical direction, inherited from `legend_spacing`.
|
|
202
205
|
legend_key : str or dict
|
|
203
|
-
|
|
206
|
+
Style settings for legend key background.
|
|
204
207
|
Set 'blank' or result of `element_blank()` to draw nothing.
|
|
205
208
|
Set `element_rect()` to specify legend key background parameters, inherited from `rect`.
|
|
206
209
|
legend_key_size : float
|
|
@@ -222,7 +225,7 @@ def theme(*,
|
|
|
222
225
|
legend_box_spacing : float
|
|
223
226
|
Spacing between plotting area and legend box.
|
|
224
227
|
legend_ticks : str or dict
|
|
225
|
-
|
|
228
|
+
Style settings for tick marks in colorbars.
|
|
226
229
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
227
230
|
Set `element_line()` to specify all tick mark parameters.
|
|
228
231
|
`legend_ticks_*` DOES NOT inherit from `line`.
|
|
@@ -230,58 +233,58 @@ def theme(*,
|
|
|
230
233
|
legend_ticks_length : float
|
|
231
234
|
Length of colorbar tick marks in px.
|
|
232
235
|
panel_background : str or dict
|
|
233
|
-
|
|
236
|
+
Style settings for background of plotting area.
|
|
234
237
|
Set 'blank' or result of `element_blank()` to draw nothing.
|
|
235
238
|
Set `element_rect()` to specify plotting area background parameters, inherited from `rect`.
|
|
236
239
|
panel_border : str or dict
|
|
237
|
-
|
|
240
|
+
Style settings for border around plotting area.
|
|
238
241
|
Set 'blank' or result of `element_blank()` to draw nothing.
|
|
239
242
|
Set `element_rect()` to specify border parameters, inherited from `rect`.
|
|
240
243
|
panel_border_ontop : bool, default=True
|
|
241
244
|
Option to place border around plotting area over the data layers.
|
|
242
245
|
panel_grid, panel_grid_major, panel_grid_minor, panel_grid_major_x, panel_grid_major_y, panel_grid_minor_x, panel_grid_minor_y : str or dict
|
|
243
|
-
|
|
246
|
+
Style settings for grid lines. Specify major grid lines or minor grid lines separately if needed.
|
|
244
247
|
Set 'blank' or result of `element_blank()` to draw nothing.
|
|
245
248
|
Set `element_line()` to specify grid line parameters.
|
|
246
249
|
`panel_grid_*_*` inherits from `panel_grid_*` which inherits from `panel_grid`,
|
|
247
250
|
which in turn inherits from `line`.
|
|
248
251
|
panel_inset : number or list of numbers
|
|
249
|
-
Inset for a panel. The inset behaves like a padding for `coord_polar(
|
|
252
|
+
Inset for a panel. The inset behaves like a padding for `coord_polar(transform_bkgr=False)` otherwise it behaves like a margin around the panel.
|
|
250
253
|
The inset may be specified using a number or a list of numbers:
|
|
251
254
|
|
|
252
|
-
- a number or list of one number - the same inset
|
|
255
|
+
- a number or list of one number - the same inset is applied to all four sides;
|
|
253
256
|
- a list of two numbers - the first inset applies to the top and bottom, the second - to the left and right;
|
|
254
257
|
- a list of three numbers - the first inset applies to the top, the second - to the right and left, the third - to the bottom;
|
|
255
258
|
- a list of four numbers - the insets are applied to the top, right, bottom and left in that order.
|
|
256
259
|
|
|
257
|
-
It is acceptable to use None for any side; in this case, the default value for the
|
|
260
|
+
It is acceptable to use None for any side; in this case, the default value for the panel inset side will be used.
|
|
258
261
|
panel_grid_ontop, panel_grid_ontop_x, panel_grid_ontop_y : bool, default=False
|
|
259
262
|
Option to place major grid lines and minor grid lines over the data layers.
|
|
260
263
|
plot_background : str or dict
|
|
261
|
-
|
|
264
|
+
Style settings for overall plot background.
|
|
262
265
|
Set 'blank' or result of `element_blank()` to draw nothing.
|
|
263
266
|
Set `element_rect()` to specify plot background parameters, inherited from `rect`.
|
|
264
267
|
plot_title : str or dict
|
|
265
|
-
|
|
268
|
+
Style settings for plot title.
|
|
266
269
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
267
270
|
Set `element_text()` to specify plot title parameters, inherited from `title`.
|
|
268
271
|
plot_subtitle : str or dict
|
|
269
|
-
|
|
272
|
+
Style settings for plot subtitle.
|
|
270
273
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
271
274
|
Set `element_text()` to specify plot subtitle parameters, inherited from `plot_title` or `title`.
|
|
272
275
|
plot_caption : str or dict
|
|
273
|
-
|
|
276
|
+
Style settings for plot caption.
|
|
274
277
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
275
278
|
Set `element_text()` to specify plot caption parameters, inherited from `title`.
|
|
276
279
|
plot_message : str or dict
|
|
277
|
-
|
|
280
|
+
Style settings for plot message (e.g. sampling messages).
|
|
278
281
|
Set 'blank' or result of `element_blank()` to show nothing.
|
|
279
282
|
Set `element_text()` to show sampling messages (`element_text()` options don't affect a message text).
|
|
280
283
|
plot_margin : number or list of numbers
|
|
281
284
|
Margin around entire plot.
|
|
282
285
|
The margin may be specified using a number or a list of numbers:
|
|
283
286
|
|
|
284
|
-
- a number or list of one number - the same margin
|
|
287
|
+
- a number or list of one number - the same margin is applied to all four sides;
|
|
285
288
|
- a list of two numbers - the first margin applies to the top and bottom, the second - to the left and right;
|
|
286
289
|
- a list of three numbers - the first margin applies to the top, the second - to the right and left, the third - to the bottom;
|
|
287
290
|
- a list of four numbers - the margins are applied to the top, right, bottom and left in that order.
|
|
@@ -291,7 +294,7 @@ def theme(*,
|
|
|
291
294
|
Inset for a plotting area, including the axes with their labels, but without titles.
|
|
292
295
|
The inset may be specified using a number or a list of numbers:
|
|
293
296
|
|
|
294
|
-
- a number or list of one number - the same inset
|
|
297
|
+
- a number or list of one number - the same inset is applied to all four sides;
|
|
295
298
|
- a list of two numbers - the first inset applies to the top and bottom, the second - to the left and right;
|
|
296
299
|
- a list of three numbers - the first inset applies to the top, the second - to the right and left, the third - to the bottom;
|
|
297
300
|
- a list of four numbers - the insets are applied to the top, right, bottom and left in that order.
|
|
@@ -306,55 +309,55 @@ def theme(*,
|
|
|
306
309
|
A value of 'panel' means that caption is aligned to the plot panels.
|
|
307
310
|
A value of 'plot' means that caption is aligned to the entire plot (excluding margins).
|
|
308
311
|
strip_background : str or dict
|
|
309
|
-
|
|
312
|
+
Style settings for facet strip background.
|
|
310
313
|
Set 'blank' or result of `element_blank()` to draw nothing.
|
|
311
314
|
Set `element_rect()` to specify facet label background parameters, inherited from `rect`.
|
|
312
315
|
strip_background_x : str or dict
|
|
313
|
-
|
|
316
|
+
Style settings for horizontal facet background.
|
|
314
317
|
Set 'blank' or result of `element_blank()` to draw nothing.
|
|
315
318
|
Set `element_rect()` to specify facet label background parameters, inherited from `strip_background`.
|
|
316
319
|
strip_background_y : str or dict
|
|
317
|
-
|
|
320
|
+
Style settings for vertical facet background.
|
|
318
321
|
Set 'blank' or result of `element_blank()` to draw nothing.
|
|
319
322
|
Set `element_rect()` to specify facet label background parameters, inherited from `strip_background`.
|
|
320
323
|
strip_text : str or dict
|
|
321
|
-
|
|
324
|
+
Style settings for facet labels.
|
|
322
325
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
323
326
|
Set `element_text()` to specify facet label parameters, inherited from `text`.
|
|
324
327
|
strip_text_x : str or dict
|
|
325
|
-
|
|
328
|
+
Style settings for horizontal facet labels.
|
|
326
329
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
327
330
|
Set `element_text()` to specify facet label parameters, inherited from `strip_text`.
|
|
328
331
|
strip_text_y : str or dict
|
|
329
|
-
|
|
332
|
+
Style settings for vertical facet labels.
|
|
330
333
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
331
334
|
Set `element_text()` to specify facet label parameters, inherited from `strip_text`.
|
|
332
335
|
axis_tooltip, axis_tooltip_x, axis_tooltip_y : str or dict
|
|
333
|
-
|
|
336
|
+
Style settings for axes tooltips.
|
|
334
337
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
335
338
|
Set `element_rect()` to specify axes tooltip parameters.
|
|
336
339
|
`axis_tooltip_*` inherits from `axis_tooltip` which inherits from `rect`.
|
|
337
340
|
axis_tooltip_text, axis_tooltip_text_x, axis_tooltip_text_y : str or dict
|
|
338
|
-
|
|
341
|
+
Style settings for text in axes tooltips.
|
|
339
342
|
Set 'blank' or result of `element_blank()` to draw nothing and assign no space.
|
|
340
343
|
Set `element_text()` to specify axes text tooltip parameters.
|
|
341
344
|
`axis_tooltip_text_*` inherits from `axis_tooltip_text` which inherits from `tooltip_text`.
|
|
342
345
|
tooltip : str or dict
|
|
343
|
-
|
|
346
|
+
Style settings for general tooltip.
|
|
344
347
|
Set 'blank' or result of `element_blank()` to hide the tooltip (also hides side tooltips).
|
|
345
348
|
Set `element_rect()` to specify tooltip rectangular parameters, inherited from `rect`.
|
|
346
|
-
tooltip_text :
|
|
347
|
-
|
|
349
|
+
tooltip_text : dict
|
|
350
|
+
Style settings for text in general tooltip.
|
|
348
351
|
Set `element_text()` to specify tooltip text parameters.
|
|
349
|
-
tooltip_title_text :
|
|
350
|
-
|
|
352
|
+
tooltip_title_text : dict
|
|
353
|
+
Style settings for tooltip title text.
|
|
351
354
|
Set `element_text()` to specify tooltip title parameters, inherited from `tooltip_text`. Bold by default.
|
|
352
|
-
label_text :
|
|
353
|
-
|
|
354
|
-
Annotations are currently supported for pie and
|
|
355
|
+
label_text : dict
|
|
356
|
+
Style settings for annotation text.
|
|
357
|
+
Annotations are currently supported for pie, bar chart and crossbar.
|
|
355
358
|
Set `element_text()` to specify annotation text parameters: font family and face, text size, text color.
|
|
356
359
|
geom : dict
|
|
357
|
-
|
|
360
|
+
Color settings for geometries.
|
|
358
361
|
Set `element_geom()` to specify new values for the named colors.
|
|
359
362
|
|
|
360
363
|
Returns
|
|
@@ -573,7 +576,7 @@ def element_text(
|
|
|
573
576
|
) -> dict:
|
|
574
577
|
"""
|
|
575
578
|
Specify how non-data components of the plot are drawn.
|
|
576
|
-
This theme element draws
|
|
579
|
+
This theme element draws text.
|
|
577
580
|
|
|
578
581
|
Parameters
|
|
579
582
|
----------
|
|
@@ -592,18 +595,18 @@ def element_text(
|
|
|
592
595
|
0 - left-justified;
|
|
593
596
|
1 - right-justified;
|
|
594
597
|
0.5 - center-justified.
|
|
595
|
-
|
|
598
|
+
Values outside the [0, 1] range are allowed but may produce unpredictable results.
|
|
596
599
|
vjust : float
|
|
597
600
|
Vertical justification (in [0, 1]).
|
|
598
601
|
0 - bottom-justified;
|
|
599
602
|
1 - top-justified;
|
|
600
603
|
0.5 - middle-justified.
|
|
601
|
-
|
|
604
|
+
Values outside the [0, 1] range are allowed but may produce unpredictable results.
|
|
602
605
|
margin : number or list of numbers
|
|
603
606
|
Margins around the text.
|
|
604
607
|
The margin may be specified using a number or a list of numbers:
|
|
605
608
|
|
|
606
|
-
- a number or list of one number - the same margin
|
|
609
|
+
- a number or list of one number - the same margin is applied to all four sides;
|
|
607
610
|
- a list of two numbers - the first margin applies to the top and bottom, the second - to the left and right;
|
|
608
611
|
- a list of three numbers - the first margin applies to the top, the second - to the right and left, the third - to the bottom;
|
|
609
612
|
- a list of four numbers - the margins are applied to the top, right, bottom and left in that order.
|
|
@@ -629,7 +632,7 @@ def element_text(
|
|
|
629
632
|
np.random.seed(42)
|
|
630
633
|
data = {'x': np.random.normal(size=1000)}
|
|
631
634
|
ggplot(data, aes(x='x')) + geom_histogram() + \\
|
|
632
|
-
theme(axis_text=element_text(color='#cb181d', face='bold_italic'
|
|
635
|
+
theme(axis_text=element_text(color='#cb181d', face='bold_italic'))
|
|
633
636
|
|
|
634
637
|
"""
|
|
635
638
|
return locals()
|
|
@@ -649,7 +652,7 @@ def element_markdown(
|
|
|
649
652
|
) -> dict:
|
|
650
653
|
"""
|
|
651
654
|
Specify how non-data components of the plot are drawn.
|
|
652
|
-
This theme element draws
|
|
655
|
+
This theme element draws text with Markdown support.
|
|
653
656
|
|
|
654
657
|
Parameters
|
|
655
658
|
----------
|
|
@@ -679,7 +682,7 @@ def element_markdown(
|
|
|
679
682
|
Margins around the text.
|
|
680
683
|
The margin may be specified using a number or a list of numbers:
|
|
681
684
|
|
|
682
|
-
- a number or list of one number - the same margin
|
|
685
|
+
- a number or list of one number - the same margin is applied to all four sides;
|
|
683
686
|
- a list of two numbers - the first margin applies to the top and bottom, the second - to the left and right;
|
|
684
687
|
- a list of three numbers - the first margin applies to the top, the second - to the right and left, the third - to the bottom;
|
|
685
688
|
- a list of four numbers - the margins are applied to the top, right, bottom and left in that order.
|
|
@@ -735,7 +738,7 @@ def element_geom(
|
|
|
735
738
|
# ToDo: fatten
|
|
736
739
|
) -> dict:
|
|
737
740
|
"""
|
|
738
|
-
Specify
|
|
741
|
+
Specify custom values for named geom colors used in plot elements.
|
|
739
742
|
|
|
740
743
|
Parameters
|
|
741
744
|
----------
|
lets_plot/plot/util.py
CHANGED
|
@@ -7,8 +7,8 @@ from typing import Any, Tuple, Sequence, Optional, Dict, List
|
|
|
7
7
|
from lets_plot._type_utils import is_pandas_data_frame
|
|
8
8
|
from lets_plot.geo_data_internals.utils import find_geo_names
|
|
9
9
|
from lets_plot.mapping import MappingMeta
|
|
10
|
-
from lets_plot.plot.core import aes, FeatureSpec
|
|
11
|
-
from lets_plot.plot.series_meta import
|
|
10
|
+
from lets_plot.plot.core import aes, FeatureSpec, PlotSpec
|
|
11
|
+
from lets_plot.plot.series_meta import _infer_type, TYPE_UNKNOWN, TYPE_DATE_TIME, _detect_time_zone
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def as_boolean(val, *, default):
|
|
@@ -18,6 +18,21 @@ def as_boolean(val, *, default):
|
|
|
18
18
|
return bool(val) and val != 'False'
|
|
19
19
|
|
|
20
20
|
|
|
21
|
+
def update_plot_aes_mapping(plot: PlotSpec, add_mapping: FeatureSpec):
|
|
22
|
+
existing_spec = plot.props().get('mapping', aes())
|
|
23
|
+
merged_mapping = {**existing_spec.as_dict(), **add_mapping.as_dict()}
|
|
24
|
+
|
|
25
|
+
# Re-annotate the data with the merged mapping.
|
|
26
|
+
data = plot.props().get('data', None)
|
|
27
|
+
data, processed_mapping, data_meta = as_annotated_data(data, aes(**merged_mapping))
|
|
28
|
+
plot.props()['data'] = data
|
|
29
|
+
plot.props()['mapping'] = processed_mapping
|
|
30
|
+
|
|
31
|
+
# Add data_meta to plot properties
|
|
32
|
+
for key, value in data_meta.items():
|
|
33
|
+
plot.props()[key] = value
|
|
34
|
+
|
|
35
|
+
|
|
21
36
|
def as_annotated_data(data: Any, mapping_spec: FeatureSpec) -> Tuple:
|
|
22
37
|
data_type_by_var: Dict[str, str] = {} # VarName to Type
|
|
23
38
|
mapping_meta_by_var: Dict[str, Dict[str, MappingMeta]] = {} # VarName to Dict[Aes, MappingMeta]
|
|
@@ -26,10 +41,10 @@ def as_annotated_data(data: Any, mapping_spec: FeatureSpec) -> Tuple:
|
|
|
26
41
|
# fill mapping_meta_by_var, mappings and data_type_by_var.
|
|
27
42
|
if mapping_spec is not None:
|
|
28
43
|
for key, spec in mapping_spec.props().items():
|
|
29
|
-
# key is either an aesthetic name or 'name' (FeatureSpec.name property)
|
|
44
|
+
# the key is either an aesthetic name or 'name' (FeatureSpec.name property)
|
|
30
45
|
if key == 'name': # ignore FeatureSpec.name property
|
|
31
46
|
continue
|
|
32
|
-
|
|
47
|
+
|
|
33
48
|
if isinstance(spec, MappingMeta):
|
|
34
49
|
mappings[key] = spec.variable
|
|
35
50
|
mapping_meta_by_var.setdefault(spec.variable, {})[key] = spec
|
|
@@ -37,7 +52,15 @@ def as_annotated_data(data: Any, mapping_spec: FeatureSpec) -> Tuple:
|
|
|
37
52
|
else:
|
|
38
53
|
mappings[key] = spec # spec is a variable name
|
|
39
54
|
|
|
40
|
-
data_type_by_var.update(
|
|
55
|
+
data_type_by_var.update(_infer_type(data))
|
|
56
|
+
|
|
57
|
+
# Detect the tome zone - one for the entire data set.
|
|
58
|
+
time_zone_by_var_name = {}
|
|
59
|
+
for var_name, data_type in data_type_by_var.items():
|
|
60
|
+
if data_type == TYPE_DATE_TIME:
|
|
61
|
+
time_zone = _detect_time_zone(var_name, data)
|
|
62
|
+
if time_zone is not None:
|
|
63
|
+
time_zone_by_var_name[var_name] = time_zone
|
|
41
64
|
|
|
42
65
|
# fill series annotations
|
|
43
66
|
series_annotations = {} # var to series_annotation
|
|
@@ -47,6 +70,9 @@ def as_annotated_data(data: Any, mapping_spec: FeatureSpec) -> Tuple:
|
|
|
47
70
|
if data_type != TYPE_UNKNOWN:
|
|
48
71
|
series_annotation['type'] = data_type
|
|
49
72
|
|
|
73
|
+
if var_name in time_zone_by_var_name:
|
|
74
|
+
series_annotation['time_zone'] = time_zone_by_var_name[var_name]
|
|
75
|
+
|
|
50
76
|
if is_pandas_data_frame(data) and data[var_name].dtype.name == 'category' and data[var_name].dtype.ordered:
|
|
51
77
|
series_annotation['factor_levels'] = data[var_name].cat.categories.to_list()
|
|
52
78
|
elif var_name in mapping_meta_by_var:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lets-plot
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.7.0
|
|
4
4
|
Summary: An open source library for statistical plotting
|
|
5
5
|
Home-page: https://lets-plot.org
|
|
6
6
|
Author: JetBrains
|
|
@@ -11,9 +11,7 @@ License: MIT
|
|
|
11
11
|
Project-URL: Github, https://github.com/JetBrains/lets-plot
|
|
12
12
|
Project-URL: Documentation, https://lets-plot.org
|
|
13
13
|
Keywords: ggplot,ggplot2,geospatial,geopandas,geocoding
|
|
14
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
15
14
|
Classifier: Development Status :: 5 - Production/Stable
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
15
|
Classifier: Programming Language :: Python :: 3.9
|
|
18
16
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
17
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -30,8 +28,13 @@ Classifier: Intended Audience :: Science/Research
|
|
|
30
28
|
Classifier: Intended Audience :: Developers
|
|
31
29
|
Description-Content-Type: text/markdown
|
|
32
30
|
License-File: LICENSE
|
|
31
|
+
License-File: licenses/LICENSE.FreeType
|
|
32
|
+
License-File: licenses/LICENSE.ImageMagick
|
|
33
|
+
License-File: licenses/LICENSE.expat
|
|
34
|
+
License-File: licenses/LICENSE.fontconfig
|
|
33
35
|
Requires-Dist: pypng
|
|
34
36
|
Requires-Dist: palettable
|
|
37
|
+
Requires-Dist: pillow
|
|
35
38
|
Dynamic: author
|
|
36
39
|
Dynamic: author-email
|
|
37
40
|
Dynamic: classifier
|
|
@@ -103,38 +106,63 @@ Also read:
|
|
|
103
106
|
- [Scientific mode in PyCharm](https://www.jetbrains.com/help/pycharm/matplotlib-support.html)
|
|
104
107
|
- [Scientific mode in IntelliJ IDEA](https://www.jetbrains.com/help/idea/matplotlib-support.html)
|
|
105
108
|
|
|
106
|
-
## What is new in 4.
|
|
109
|
+
## What is new in 4.7.0
|
|
107
110
|
|
|
108
|
-
- ####
|
|
109
|
-
|
|
111
|
+
- #### Time Series Plotting
|
|
112
|
+
- Support for Python `time` and `date` objects.
|
|
113
|
+
- Support for timezone-aware `datetime` objects and Pandas/Polars `Series`.
|
|
114
|
+
|
|
115
|
+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25b/images/time_date_datetime.png" alt="f-25b/images/time_date_datetime.png" width="400" height="237">
|
|
110
116
|
|
|
111
|
-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-
|
|
117
|
+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25b/time_date_datetime.ipynb).
|
|
118
|
+
|
|
119
|
+
- #### Native support for PNG and PDF exports
|
|
120
|
+
Exporting to PNG and PDF formats now uses the `ImageMagick` library bundled with Lets-Plot Python wheels and available out-of-the-box. <br>
|
|
121
|
+
This replaces the previous dependency on the `CairoSVG` library and comes with improved support for LaTeX labels rasterization. <br>
|
|
122
|
+
|
|
123
|
+
- #### `geom_sina()` Geometry
|
|
124
|
+
|
|
125
|
+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25b/images/geom_sina.png" alt="f-25b/images/geom_sina.png" width="400" height="276">
|
|
126
|
+
|
|
127
|
+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25b/geom_sina.ipynb).
|
|
128
|
+
|
|
129
|
+
- #### `geom_text_repel()` and `geom_label_repel()` Geometries
|
|
130
|
+
|
|
131
|
+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25b/images/geom_repel.png" alt="f-25b/images/geom_repel.png" width="400" height="232">
|
|
132
|
+
|
|
133
|
+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25b/ggrepel.ipynb).
|
|
134
|
+
|
|
135
|
+
- #### `waterfall_plot()` Chart
|
|
136
|
+
|
|
137
|
+
- Annotations support via `relative_labels` and `absolute_labels` parameters. <br>
|
|
138
|
+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25b/images/waterfall_plot_annotations.png" alt="f-25b/images/waterfall_plot_annotations.png" width="400" height="253">
|
|
112
139
|
|
|
113
|
-
|
|
114
|
-
|
|
140
|
+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25b/waterfall_plot_annotations.ipynb).
|
|
141
|
+
|
|
142
|
+
- Support for combining waterfall bars with other geometry layers. <br>
|
|
143
|
+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25b/images/waterfall_plot_layers.png" alt="f-25b/images/waterfall_plot_layers.png" width="400" height="227">
|
|
115
144
|
|
|
116
|
-
|
|
117
|
-
[axis label justification](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25a/axis_label_justification.ipynb),
|
|
145
|
+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25b/waterfall_plot_layers.ipynb).
|
|
118
146
|
|
|
119
|
-
- ####
|
|
120
|
-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25a/images/geom_hex.png" alt="f-25a/images/geom_hex.png" width="370" height="296">
|
|
147
|
+
- #### Continuous Data on Discrete Scales
|
|
121
148
|
|
|
122
|
-
|
|
149
|
+
Continuous data when used with discrete positional scales is no longer transformed to discrete data. <br>
|
|
150
|
+
Instead, it remains continuous, allowing for precise positioning of continuous elements relative to discrete ones. <br>
|
|
151
|
+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25b/images/combo_discrete_continuous.png" alt="f-25b/images/combo_discrete_continuous.png" width="400" height="151">
|
|
123
152
|
|
|
124
|
-
|
|
125
|
-
It replaces the deprecated `GGBunch` class. <br/>
|
|
126
|
-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25a/images/ggbunch_indonesia.png" alt="f-25a/images/ggbunch_indonesia.png" width="400" height="164">
|
|
127
|
-
|
|
128
|
-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25a/ggbunch_indonesia.ipynb).
|
|
153
|
+
See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25b/numeric_data_on_discrete_scale.ipynb).
|
|
129
154
|
|
|
130
|
-
|
|
155
|
+
> [!TIP]
|
|
156
|
+
> New way of handling continuous data on discrete scales could potentially break existing plots.
|
|
157
|
+
> If you want to restore a broken plot to its original form, you can use the [`as_discrete()`](https://lets-plot.org/python/pages/api/lets_plot.mapping.as_discrete.html) function to annotate continuous data as discrete.
|
|
131
158
|
|
|
132
|
-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25a/magnifier_inset.ipynb).
|
|
133
159
|
|
|
134
|
-
- ####
|
|
135
|
-
|
|
160
|
+
- #### Plot Layout
|
|
161
|
+
The default plot layout has been improved to better accommodate axis labels and titles. <br>
|
|
162
|
+
Also, new `theme()` options `axis_text_spacing`, `axis_text_spacing_x`, and `axis_text_spacing_y` control spacing between axis ticks and labels. <br>
|
|
163
|
+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25b/images/plot_layout_diagram.png" alt="f-25b/images/plot_layout_diagram.png" width="400" height="175">
|
|
136
164
|
|
|
137
|
-
See [
|
|
165
|
+
See the [plot layout diagram](https://nbviewer.org/github/JetBrains/lets-plot/blob/master/docs/f-25b/plot_layout_scheme.ipynb) showing various layout options and their effects on plot appearance.
|
|
138
166
|
|
|
139
167
|
|
|
140
168
|
- #### And More
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
lets_plot_kotlin_bridge.cpython-311-darwin.so,sha256=
|
|
1
|
+
lets_plot_kotlin_bridge.cpython-311-darwin.so,sha256=qYW8F6Gm524Kyyy9BMGIPwCGuZJKG_OKSdmoT8sprjg,17219152
|
|
2
2
|
lets_plot/__init__.py,sha256=JBXXtPi4nwhU9jrsUXcQTP1iaGF0jbHBVk_66pohq9I,11224
|
|
3
|
-
lets_plot/_global_settings.py,sha256=
|
|
4
|
-
lets_plot/_kbridge.py,sha256=
|
|
5
|
-
lets_plot/_type_utils.py,sha256=
|
|
6
|
-
lets_plot/_version.py,sha256=
|
|
3
|
+
lets_plot/_global_settings.py,sha256=TDxQp44IWvAUDWXnNQKIumAfrGEBHHg6OMuQNbiodA0,7778
|
|
4
|
+
lets_plot/_kbridge.py,sha256=as2-FrQEQs5JUEyFq7_wGJY9hhctN3FXso8a1SGbwDE,5048
|
|
5
|
+
lets_plot/_type_utils.py,sha256=mlNG1J0Lgt7n0gERJZFkdhP6B3C7iZD5WRMB0yS6-r0,3828
|
|
6
|
+
lets_plot/_version.py,sha256=GFXgama76znVGQCLosg5P9HjsYxEGStHpFFyea7qOPw,233
|
|
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
|
|
10
10
|
lets_plot/bistro/__init__.py,sha256=4Vix3Qu2P4zqGiDx8gnTd3usCLQQGBRKhseSNjrsBUY,426
|
|
11
11
|
lets_plot/bistro/_plot2d_common.py,sha256=NuRH-tJ-PKtC4X69hvtGu9Zhn0IvsGviDeHoy3JuXSQ,3883
|
|
12
12
|
lets_plot/bistro/corr.py,sha256=nfxVWcS1UOfIMXWuE69-2ya0Omxi5jhIcRp3pSTxHZA,12892
|
|
13
|
-
lets_plot/bistro/im.py,sha256=
|
|
13
|
+
lets_plot/bistro/im.py,sha256=46OPkYKvvXlsx5d1LxcxPqApXh-ns-J2p1YN8WIb_tw,6445
|
|
14
14
|
lets_plot/bistro/joint.py,sha256=BIAII_eYGyHJ43kk7BABqRDhUMIIpLNafMN-0YDrl_w,6571
|
|
15
15
|
lets_plot/bistro/qq.py,sha256=4AMBjbtcwE4mQNmZSglGt1w8MnvhNqg7CZEVNb9fUr4,8098
|
|
16
16
|
lets_plot/bistro/residual.py,sha256=el9B_nd4vT53hIXvgVtqbMr5QvjxLZwzH4UbCGxlxbM,12332
|
|
17
|
-
lets_plot/bistro/waterfall.py,sha256=
|
|
17
|
+
lets_plot/bistro/waterfall.py,sha256=XXo3onoxfzD2OODwftqfJ0sb5NuL1Q8lqqQbb-UA4-E,14267
|
|
18
18
|
lets_plot/export/__init__.py,sha256=lDs6fqtQjkgJyKqeYlOdhrHMN__TeggTz73hgHAkyzc,188
|
|
19
|
-
lets_plot/export/ggsave_.py,sha256=
|
|
19
|
+
lets_plot/export/ggsave_.py,sha256=Vt0Ai-ccGDg-IjPtHCQJCKL5lMHSk-38MNJcrBdkT50,5020
|
|
20
20
|
lets_plot/frontend_context/__init__.py,sha256=nqIogfMulwKRY2l_v3Rn7tXMQ1btasX9f7dwfrVaj_A,204
|
|
21
21
|
lets_plot/frontend_context/_configuration.py,sha256=Xxbbm1rP7ZaH2HIPf4LrCby4Z-LI-CKlEUxzWX7fQF0,5567
|
|
22
22
|
lets_plot/frontend_context/_frontend_ctx.py,sha256=073vxq0laO6ubol3kJK6aBbWo9Fr2_olbQEZUbr_QFc,359
|
|
@@ -47,19 +47,19 @@ 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=
|
|
50
|
+
lets_plot/package_data/lets-plot.min.js,sha256=aQQWmb9UwVgnjqy8qPKU9ZQRyM3BOhJzB7J67OkPoLk,2759344
|
|
51
51
|
lets_plot/plot/__init__.py,sha256=RNsQuVS8qe4Xf4so7PJiQJKdYYnDMIqydUQNzstqhZI,1771
|
|
52
52
|
lets_plot/plot/_global_theme.py,sha256=hOV9MzYpfjdF6hDE3mfLv_LqFtaouCJcccoW8pGoFoU,297
|
|
53
|
-
lets_plot/plot/annotation.py,sha256=
|
|
53
|
+
lets_plot/plot/annotation.py,sha256=6bOJunvFRo99jAIFo6d5KEfZ0ILKB2vi1naG8nntynE,9839
|
|
54
54
|
lets_plot/plot/coord.py,sha256=h9ZTNmSbRjIdVTL_TTl9Dn5AsY46tYxuAKddUPjwe8s,7976
|
|
55
|
-
lets_plot/plot/core.py,sha256=
|
|
55
|
+
lets_plot/plot/core.py,sha256=hh4QshpyFt17im002cZZAVqOCJQHLQ5xPWq9Zce2peA,36374
|
|
56
56
|
lets_plot/plot/expand_limits_.py,sha256=UJzBbNNrdSG7osANmchQ-Jcg27DuSzFXGu27-WxiPSI,2307
|
|
57
57
|
lets_plot/plot/facet.py,sha256=1vDo1xk0G95x2SSf6HNWfeEgXS-FDxtpd18fo63_6gI,7030
|
|
58
58
|
lets_plot/plot/font_features.py,sha256=vUc_ICerwqnwwJbDaAm_fS8fmbRTZHzPoAHRszw0SF4,2238
|
|
59
|
-
lets_plot/plot/geom.py,sha256=
|
|
59
|
+
lets_plot/plot/geom.py,sha256=V-Rk0qRdAcXVQKPhVk_PN4VCjtNuTtxT3V_w2RmoH4E,387600
|
|
60
60
|
lets_plot/plot/geom_extras.py,sha256=I_ERjnZlk5VyilJELx0sA_4C2a_Ycjc2Thas-I6WZoo,1694
|
|
61
|
-
lets_plot/plot/geom_function_.py,sha256=
|
|
62
|
-
lets_plot/plot/geom_imshow_.py,sha256=
|
|
61
|
+
lets_plot/plot/geom_function_.py,sha256=J8gx5U7zjlE9aYJTUsy8hr9dQ4ibZ9X7KMNvIVmQwqM,7861
|
|
62
|
+
lets_plot/plot/geom_imshow_.py,sha256=I7l2rm0QzATN8a4Lt5mJC4G3YsvbJA4OiBjl2JlZ6kw,14439
|
|
63
63
|
lets_plot/plot/geom_livemap_.py,sha256=LfuxJ2BHK9AeN6-z8YEnp24HYSguSu0jdJlKCIxjKTA,12201
|
|
64
64
|
lets_plot/plot/ggbunch_.py,sha256=kRAZGcDDe33SrU9kH_XVJqJBTfW3ho3VXm3ZchUzPO4,3091
|
|
65
65
|
lets_plot/plot/gggrid_.py,sha256=6M7YRxcrpftAardpKTMbkIeN0V7CB9FvFLdlSAKhZMA,3893
|
|
@@ -68,24 +68,28 @@ lets_plot/plot/guide.py,sha256=C-mDgjXKwQz_Pv6OB1rcQohAIUAl0QvoApPsAR5lbs4,6694
|
|
|
68
68
|
lets_plot/plot/label.py,sha256=iXTTLP-AjFtHRnti8v4mZMnGLRNLhsxhvetoQPhi8H0,4549
|
|
69
69
|
lets_plot/plot/marginal_layer.py,sha256=Y4FMmQZlUuLxzjjntVQThuV8scG6LbEmDGjstGMOls4,6357
|
|
70
70
|
lets_plot/plot/plot.py,sha256=t7zXnu6tiqhwvthO4C7CfaYv2gH_zPzQ8ias9cK3m3Y,8282
|
|
71
|
-
lets_plot/plot/pos.py,sha256=
|
|
71
|
+
lets_plot/plot/pos.py,sha256=2ZPUdwAEK2_MQBbFch7kSFJqnPqQTl-JbKQGOuKrYAg,10063
|
|
72
72
|
lets_plot/plot/sampling.py,sha256=qy0aesxFgpx-cO0-dC1Wv9r4oSbtz7hRPC9YsNk9Pyo,8489
|
|
73
73
|
lets_plot/plot/sandbox_.py,sha256=Tb5UwJqe8HMMSCbDLdrj_BcxPSkmyxy-hI0_2L6kpBk,545
|
|
74
74
|
lets_plot/plot/scale.py,sha256=d_cTAnRdTHwSPnUp7mmCTjM6PDOKmr9FMESGu3DQOzk,136949
|
|
75
75
|
lets_plot/plot/scale_colormap_mpl.py,sha256=D5iWNaWGWpVFCJiNDwf-wHa8Snbd1YiWp6yktOkUl_A,10267
|
|
76
76
|
lets_plot/plot/scale_convenience.py,sha256=VWe9BJhFlUbWL2CLrOrxPy523dGIKIOL7A2H7OPx8_0,4116
|
|
77
77
|
lets_plot/plot/scale_identity_.py,sha256=qHo_CI7Xb9Olqza_MqvEV672AaaXM9gWac20SX4AGc4,23796
|
|
78
|
-
lets_plot/plot/scale_position.py,sha256=
|
|
79
|
-
lets_plot/plot/series_meta.py,sha256=
|
|
80
|
-
lets_plot/plot/stat.py,sha256=
|
|
81
|
-
lets_plot/plot/subplots.py,sha256=
|
|
78
|
+
lets_plot/plot/scale_position.py,sha256=3k8pe_opLrjC5fM3c_Yrjhzc5qPI5APvUoNVFYsqKy0,46972
|
|
79
|
+
lets_plot/plot/series_meta.py,sha256=ar_97wY5_dM5vjaXpGKHwPMuNhktzwTlxMKkSM9R4O4,6852
|
|
80
|
+
lets_plot/plot/stat.py,sha256=rXYtkOzsNQi51zPv3NaKZDdk5LPGLN2SjkCVeoewlZk,22893
|
|
81
|
+
lets_plot/plot/subplots.py,sha256=v9zzddkG0mMtpNAYWb-shf3kv5deNE8zH5KvYeRsC6I,11331
|
|
82
82
|
lets_plot/plot/subplots_util.py,sha256=T04pwI7LaYliUqEdRHog1SGExVt9XosQk6XDwqOg7q0,913
|
|
83
|
-
lets_plot/plot/theme_.py,sha256=
|
|
83
|
+
lets_plot/plot/theme_.py,sha256=s4zdHoTo9Zo8kWsh5ECWyXTR18CCcAuxK0u5NhSiTe4,32550
|
|
84
84
|
lets_plot/plot/theme_set.py,sha256=USNU-ccPKlZ4KEC1ij92n-SHY5271Ru_c1CQIIWXonI,9103
|
|
85
85
|
lets_plot/plot/tooltip.py,sha256=AvRjT5UPop5wVORFHnaVeBhAIHTYbIjf0FXXUTB4Qvg,15983
|
|
86
|
-
lets_plot/plot/util.py,sha256=
|
|
87
|
-
lets_plot-4.
|
|
88
|
-
lets_plot-4.
|
|
89
|
-
lets_plot-4.
|
|
90
|
-
lets_plot-4.
|
|
91
|
-
lets_plot-4.
|
|
86
|
+
lets_plot/plot/util.py,sha256=CSv-koubJBEcsVM2XOcB5ooBqBNgqQffxdJs2aK0FHI,9668
|
|
87
|
+
lets_plot-4.7.0.dist-info/licenses/LICENSE,sha256=r43VKLFaMylB4Ru-pE07j0cfUO7wQpMnWm-uZ8hEqMw,1066
|
|
88
|
+
lets_plot-4.7.0.dist-info/licenses/licenses/LICENSE.FreeType,sha256=7YOXABSJgU7bZvuf8s6ySO493IEQ2hotc3nsCvHx3us,6718
|
|
89
|
+
lets_plot-4.7.0.dist-info/licenses/licenses/LICENSE.ImageMagick,sha256=pVbFKSyHyaaseVyAZpsMNmD59ynejEdr8rEPg6sbNOw,12577
|
|
90
|
+
lets_plot-4.7.0.dist-info/licenses/licenses/LICENSE.expat,sha256=MbFd6CqhmoRRVhaaF6VIi_WX5WGywxjRWe1YMTmyXoc,1144
|
|
91
|
+
lets_plot-4.7.0.dist-info/licenses/licenses/LICENSE.fontconfig,sha256=UaUaqYI3BP2QvMxhbN0X66u1srPpy96IbKAscAIogGc,8616
|
|
92
|
+
lets_plot-4.7.0.dist-info/METADATA,sha256=3cE5ZLxJJu1EeA_smWOvlD1cR1iQ0SU7cNayRnaobZc,13147
|
|
93
|
+
lets_plot-4.7.0.dist-info/WHEEL,sha256=qxQkdhERtGxJzqnVOBnucx1aUmU2n3HmuzYdln_LyOw,109
|
|
94
|
+
lets_plot-4.7.0.dist-info/top_level.txt,sha256=ID-ORXUWN-oVZmD4YFy1rQVm2QT1D-MlGON3vdxqgpY,34
|
|
95
|
+
lets_plot-4.7.0.dist-info/RECORD,,
|