jarvisplot 1.3.6__tar.gz → 1.3.8__tar.gz
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.
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/JarvisPLOT.egg-info/PKG-INFO +24 -1
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/JarvisPLOT.egg-info/SOURCES.txt +2 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/PKG-INFO +24 -1
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/README.md +23 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/adapters_rect.py +42 -16
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/config_runtime.py +2 -0
- jarvisplot-1.3.8/jarvisplot/Figure/dynesty_runtime.py +587 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/figure.py +7 -5
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/interp_natural_neighbor_exact.py +4 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/layer_runtime.py +12 -1
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/method_registry.py +1 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/style_runtime.py +15 -8
- jarvisplot-1.3.8/jarvisplot/cards/a4paper/2x1/dynesty_runplot.json +165 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/style_preference.json +2 -1
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/pyproject.toml +1 -1
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/tests/test_figure_contracts.py +91 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/tests/test_interp_natural_neighbor.py +2 -1
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/tests/test_jpcontour_methods.py +124 -7
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/JarvisPLOT.egg-info/dependency_links.txt +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/JarvisPLOT.egg-info/entry_points.txt +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/JarvisPLOT.egg-info/requires.txt +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/JarvisPLOT.egg-info/top_level.txt +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/__init__.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/adapters_ternary.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/cards/std_axes_adapter_config.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/colorbar_runtime.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/data_pipelines.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/helper.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/interp_natural_neighbor.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/layout_runtime.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/preprocessor.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/preprocessor_runtime.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/Figure/profile_runtime.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/__init__.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cache_store.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/1x1/ternary.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/2x1/rect.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/2x1/rect5x1.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/2x1/rect_cmap.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/2x1/ternary.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/2x1/ternary_cmap.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/4x1/rect.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/4x1/rect_cmap.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/4x1/ternary.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/a4paper/4x1/ternary_cmap.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/args.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/colors/colormaps.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/default/output.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/gambit/1x1/ternary.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/gambit/2x1/rect_cmap.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/gambit/2x1/ternary.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/gambit/2x1/ternary_cmap.json +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/icons/JarvisHEP.png +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/icons/gambit.png +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cards/icons/gambit_small.png +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/cli.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/client.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/config.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/core.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/core_assets.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/core_runtime.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/data_loader.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/data_loader_hdf5.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/data_loader_runtime.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/data_loader_summary.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/inner_func.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/memtrace.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/utils/__init__.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/utils/cmaps.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/utils/dataframes.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/utils/expression.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/utils/interpolator.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/jarvisplot/utils/pathing.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/setup.cfg +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/tests/test_data_loader_contracts.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/tests/test_docs_status_labels.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/tests/test_interpolator_contracts.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/tests/test_parse_data_metadata.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/tests/test_pathing_contracts.py +0 -0
- {jarvisplot-1.3.6 → jarvisplot-1.3.8}/tests/test_template_json.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: JarvisPLOT
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.8
|
|
4
4
|
Summary: Jarvis-PLOT: YAML-driven plotting engine
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -88,6 +88,29 @@ jplot ./bin/SUSYRun2_GEWMSSM.yaml
|
|
|
88
88
|
|
|
89
89
|
> **Note:** The data file paths inside the YAML files must be updated to match your local setup.
|
|
90
90
|
|
|
91
|
+
### Example: Dynesty Runplot
|
|
92
|
+
|
|
93
|
+
Jarvis-PLOT includes a reusable dynesty runplot format. With a dataset named
|
|
94
|
+
`dynesty`, the figure can use the built-in card without writing axes or layer
|
|
95
|
+
details:
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
DataSet:
|
|
99
|
+
- name: dynesty
|
|
100
|
+
path: path/to/dynesty_result.csv
|
|
101
|
+
type: csv
|
|
102
|
+
|
|
103
|
+
Figures:
|
|
104
|
+
- name: dynesty_logL_vs_logX
|
|
105
|
+
enable: true
|
|
106
|
+
style:
|
|
107
|
+
- a4paper_2x1
|
|
108
|
+
- dynesty_runplot
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
See `docs/specs/DYNESTY_RUNPLOT.md` for the default axes, KDE, scatter overlay,
|
|
112
|
+
and evidence summary behavior.
|
|
113
|
+
|
|
91
114
|
---
|
|
92
115
|
|
|
93
116
|
## Notes
|
|
@@ -26,6 +26,7 @@ jarvisplot/Figure/adapters_ternary.py
|
|
|
26
26
|
jarvisplot/Figure/colorbar_runtime.py
|
|
27
27
|
jarvisplot/Figure/config_runtime.py
|
|
28
28
|
jarvisplot/Figure/data_pipelines.py
|
|
29
|
+
jarvisplot/Figure/dynesty_runtime.py
|
|
29
30
|
jarvisplot/Figure/figure.py
|
|
30
31
|
jarvisplot/Figure/helper.py
|
|
31
32
|
jarvisplot/Figure/interp_natural_neighbor.py
|
|
@@ -41,6 +42,7 @@ jarvisplot/Figure/cards/std_axes_adapter_config.json
|
|
|
41
42
|
jarvisplot/cards/args.json
|
|
42
43
|
jarvisplot/cards/style_preference.json
|
|
43
44
|
jarvisplot/cards/a4paper/1x1/ternary.json
|
|
45
|
+
jarvisplot/cards/a4paper/2x1/dynesty_runplot.json
|
|
44
46
|
jarvisplot/cards/a4paper/2x1/rect.json
|
|
45
47
|
jarvisplot/cards/a4paper/2x1/rect5x1.json
|
|
46
48
|
jarvisplot/cards/a4paper/2x1/rect_cmap.json
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: JarvisPLOT
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.8
|
|
4
4
|
Summary: Jarvis-PLOT: YAML-driven plotting engine
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -88,6 +88,29 @@ jplot ./bin/SUSYRun2_GEWMSSM.yaml
|
|
|
88
88
|
|
|
89
89
|
> **Note:** The data file paths inside the YAML files must be updated to match your local setup.
|
|
90
90
|
|
|
91
|
+
### Example: Dynesty Runplot
|
|
92
|
+
|
|
93
|
+
Jarvis-PLOT includes a reusable dynesty runplot format. With a dataset named
|
|
94
|
+
`dynesty`, the figure can use the built-in card without writing axes or layer
|
|
95
|
+
details:
|
|
96
|
+
|
|
97
|
+
```yaml
|
|
98
|
+
DataSet:
|
|
99
|
+
- name: dynesty
|
|
100
|
+
path: path/to/dynesty_result.csv
|
|
101
|
+
type: csv
|
|
102
|
+
|
|
103
|
+
Figures:
|
|
104
|
+
- name: dynesty_logL_vs_logX
|
|
105
|
+
enable: true
|
|
106
|
+
style:
|
|
107
|
+
- a4paper_2x1
|
|
108
|
+
- dynesty_runplot
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
See `docs/specs/DYNESTY_RUNPLOT.md` for the default axes, KDE, scatter overlay,
|
|
112
|
+
and evidence summary behavior.
|
|
113
|
+
|
|
91
114
|
---
|
|
92
115
|
|
|
93
116
|
## Notes
|
|
@@ -68,6 +68,29 @@ jplot ./bin/SUSYRun2_GEWMSSM.yaml
|
|
|
68
68
|
|
|
69
69
|
> **Note:** The data file paths inside the YAML files must be updated to match your local setup.
|
|
70
70
|
|
|
71
|
+
### Example: Dynesty Runplot
|
|
72
|
+
|
|
73
|
+
Jarvis-PLOT includes a reusable dynesty runplot format. With a dataset named
|
|
74
|
+
`dynesty`, the figure can use the built-in card without writing axes or layer
|
|
75
|
+
details:
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
DataSet:
|
|
79
|
+
- name: dynesty
|
|
80
|
+
path: path/to/dynesty_result.csv
|
|
81
|
+
type: csv
|
|
82
|
+
|
|
83
|
+
Figures:
|
|
84
|
+
- name: dynesty_logL_vs_logX
|
|
85
|
+
enable: true
|
|
86
|
+
style:
|
|
87
|
+
- a4paper_2x1
|
|
88
|
+
- dynesty_runplot
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
See `docs/specs/DYNESTY_RUNPLOT.md` for the default axes, KDE, scatter overlay,
|
|
92
|
+
and evidence summary behavior.
|
|
93
|
+
|
|
71
94
|
---
|
|
72
95
|
|
|
73
96
|
## Notes
|
|
@@ -14,6 +14,8 @@ from .helper import _auto_clip, _mask_by_extend, voronoi_finite_polygons_2d, _cl
|
|
|
14
14
|
from .profile_runtime import grid_profile_mesh
|
|
15
15
|
from .interp_natural_neighbor import resolve_backend
|
|
16
16
|
|
|
17
|
+
DEFAULT_JP_SAMPLE_GRID = 500
|
|
18
|
+
|
|
17
19
|
|
|
18
20
|
# —— Basic Adapter: Forward to the underlying Axes, merge default parameters, perform automatic clipping ——
|
|
19
21
|
|
|
@@ -207,7 +209,7 @@ class StdAxesAdapter:
|
|
|
207
209
|
x,
|
|
208
210
|
y,
|
|
209
211
|
*,
|
|
210
|
-
bin: int =
|
|
212
|
+
bin: int = DEFAULT_JP_SAMPLE_GRID,
|
|
211
213
|
nx: Optional[int] = None,
|
|
212
214
|
ny: Optional[int] = None,
|
|
213
215
|
xlim=None,
|
|
@@ -218,8 +220,8 @@ class StdAxesAdapter:
|
|
|
218
220
|
if x.shape[0] != y.shape[0]:
|
|
219
221
|
raise ValueError("x and y must have the same length")
|
|
220
222
|
|
|
221
|
-
nx_eff = self._coerce_positive_int(nx if nx is not None else bin,
|
|
222
|
-
ny_eff = self._coerce_positive_int(ny if ny is not None else bin,
|
|
223
|
+
nx_eff = self._coerce_positive_int(nx if nx is not None else bin, DEFAULT_JP_SAMPLE_GRID)
|
|
224
|
+
ny_eff = self._coerce_positive_int(ny if ny is not None else bin, DEFAULT_JP_SAMPLE_GRID)
|
|
223
225
|
x_norm = self._normalize_jpfield_axis("x", x, bounds=xlim)
|
|
224
226
|
y_norm = self._normalize_jpfield_axis("y", y, bounds=ylim)
|
|
225
227
|
xq = np.linspace(0.0, 1.0, nx_eff)
|
|
@@ -234,7 +236,7 @@ class StdAxesAdapter:
|
|
|
234
236
|
z,
|
|
235
237
|
*,
|
|
236
238
|
interp_method: str = "natural_neighbor",
|
|
237
|
-
bin: int =
|
|
239
|
+
bin: int = DEFAULT_JP_SAMPLE_GRID,
|
|
238
240
|
nx: Optional[int] = None,
|
|
239
241
|
ny: Optional[int] = None,
|
|
240
242
|
xlim=None,
|
|
@@ -279,7 +281,7 @@ class StdAxesAdapter:
|
|
|
279
281
|
x,
|
|
280
282
|
y,
|
|
281
283
|
*,
|
|
282
|
-
bin: int =
|
|
284
|
+
bin: int = DEFAULT_JP_SAMPLE_GRID,
|
|
283
285
|
nx: Optional[int] = None,
|
|
284
286
|
ny: Optional[int] = None,
|
|
285
287
|
xlim=None,
|
|
@@ -301,8 +303,8 @@ class StdAxesAdapter:
|
|
|
301
303
|
except Exception:
|
|
302
304
|
ylim = None
|
|
303
305
|
|
|
304
|
-
nx_eff = self._coerce_positive_int(nx if nx is not None else bin,
|
|
305
|
-
ny_eff = self._coerce_positive_int(ny if ny is not None else bin,
|
|
306
|
+
nx_eff = self._coerce_positive_int(nx if nx is not None else bin, DEFAULT_JP_SAMPLE_GRID)
|
|
307
|
+
ny_eff = self._coerce_positive_int(ny if ny is not None else bin, DEFAULT_JP_SAMPLE_GRID)
|
|
306
308
|
xq = self._resolve_jpcontour_axis("x", x, npts=nx_eff, bounds=xlim)
|
|
307
309
|
yq = self._resolve_jpcontour_axis("y", y, npts=ny_eff, bounds=ylim)
|
|
308
310
|
return np.meshgrid(xq, yq)
|
|
@@ -314,7 +316,7 @@ class StdAxesAdapter:
|
|
|
314
316
|
z,
|
|
315
317
|
*,
|
|
316
318
|
interp_method: str = "natural_neighbor",
|
|
317
|
-
bin: int =
|
|
319
|
+
bin: int = DEFAULT_JP_SAMPLE_GRID,
|
|
318
320
|
nx: Optional[int] = None,
|
|
319
321
|
ny: Optional[int] = None,
|
|
320
322
|
xlim=None,
|
|
@@ -323,13 +325,19 @@ class StdAxesAdapter:
|
|
|
323
325
|
diagnostics: bool = False,
|
|
324
326
|
backend_options: Optional[dict[str, Any]] = None,
|
|
325
327
|
):
|
|
328
|
+
"""Interpolate scattered data on an axes-fraction grid for contour rendering.
|
|
329
|
+
|
|
330
|
+
This keeps jpcontour/jpcontourf aligned with jpfield: coordinates are
|
|
331
|
+
normalized into the current Axes frame before interpolation, then the
|
|
332
|
+
contour artist is drawn with transform=ax.transAxes.
|
|
333
|
+
"""
|
|
326
334
|
x = np.asarray(x, dtype=float).reshape(-1)
|
|
327
335
|
y = np.asarray(y, dtype=float).reshape(-1)
|
|
328
336
|
z = np.asarray(z, dtype=float).reshape(-1)
|
|
329
337
|
if x.shape[0] != y.shape[0] or x.shape[0] != z.shape[0]:
|
|
330
338
|
raise ValueError("x, y, and z must have the same length")
|
|
331
339
|
|
|
332
|
-
X, Y = self.
|
|
340
|
+
X, Y, x_norm, y_norm = self._build_jpfield_grid(
|
|
333
341
|
x,
|
|
334
342
|
y,
|
|
335
343
|
bin=bin,
|
|
@@ -345,8 +353,8 @@ class StdAxesAdapter:
|
|
|
345
353
|
f"Unsupported jpcontour interpolation backend: {interp_method!r}"
|
|
346
354
|
) from exc
|
|
347
355
|
Z = backend(
|
|
348
|
-
|
|
349
|
-
|
|
356
|
+
x_norm,
|
|
357
|
+
y_norm,
|
|
350
358
|
z,
|
|
351
359
|
X,
|
|
352
360
|
Y,
|
|
@@ -489,7 +497,7 @@ class StdAxesAdapter:
|
|
|
489
497
|
z,
|
|
490
498
|
*args,
|
|
491
499
|
interp_method: str = "natural_neighbor",
|
|
492
|
-
bin: int =
|
|
500
|
+
bin: int = DEFAULT_JP_SAMPLE_GRID,
|
|
493
501
|
nx: Optional[int] = None,
|
|
494
502
|
ny: Optional[int] = None,
|
|
495
503
|
xlim=None,
|
|
@@ -499,7 +507,9 @@ class StdAxesAdapter:
|
|
|
499
507
|
backend_options: Optional[dict[str, Any]] = None,
|
|
500
508
|
**kwargs,
|
|
501
509
|
):
|
|
510
|
+
"""Scattered-data contour plot rendered in axes-fraction coordinates."""
|
|
502
511
|
kw = self._merge("contour", kwargs)
|
|
512
|
+
kw.pop("transform", None)
|
|
503
513
|
X, Y, Z = self._interpolate_jpcontour_grid(
|
|
504
514
|
x,
|
|
505
515
|
y,
|
|
@@ -514,7 +524,14 @@ class StdAxesAdapter:
|
|
|
514
524
|
diagnostics=diagnostics,
|
|
515
525
|
backend_options=backend_options,
|
|
516
526
|
)
|
|
517
|
-
artists = self.ax.contour(
|
|
527
|
+
artists = self.ax.contour(
|
|
528
|
+
X,
|
|
529
|
+
Y,
|
|
530
|
+
np.ma.masked_invalid(Z),
|
|
531
|
+
*args,
|
|
532
|
+
transform=self.ax.transAxes,
|
|
533
|
+
**kw,
|
|
534
|
+
)
|
|
518
535
|
return _auto_clip(artists, self.ax, self._clip_path)
|
|
519
536
|
|
|
520
537
|
def jpcontourf(
|
|
@@ -524,7 +541,7 @@ class StdAxesAdapter:
|
|
|
524
541
|
z,
|
|
525
542
|
*args,
|
|
526
543
|
interp_method: str = "natural_neighbor",
|
|
527
|
-
bin: int =
|
|
544
|
+
bin: int = DEFAULT_JP_SAMPLE_GRID,
|
|
528
545
|
nx: Optional[int] = None,
|
|
529
546
|
ny: Optional[int] = None,
|
|
530
547
|
xlim=None,
|
|
@@ -534,7 +551,9 @@ class StdAxesAdapter:
|
|
|
534
551
|
backend_options: Optional[dict[str, Any]] = None,
|
|
535
552
|
**kwargs,
|
|
536
553
|
):
|
|
554
|
+
"""Filled scattered-data contour plot rendered in axes-fraction coordinates."""
|
|
537
555
|
kw = self._merge("contourf", kwargs)
|
|
556
|
+
kw.pop("transform", None)
|
|
538
557
|
X, Y, Z = self._interpolate_jpcontour_grid(
|
|
539
558
|
x,
|
|
540
559
|
y,
|
|
@@ -549,7 +568,14 @@ class StdAxesAdapter:
|
|
|
549
568
|
diagnostics=diagnostics,
|
|
550
569
|
backend_options=backend_options,
|
|
551
570
|
)
|
|
552
|
-
artists = self.ax.contourf(
|
|
571
|
+
artists = self.ax.contourf(
|
|
572
|
+
X,
|
|
573
|
+
Y,
|
|
574
|
+
np.ma.masked_invalid(Z),
|
|
575
|
+
*args,
|
|
576
|
+
transform=self.ax.transAxes,
|
|
577
|
+
**kw,
|
|
578
|
+
)
|
|
553
579
|
return _auto_clip(artists, self.ax, self._clip_path)
|
|
554
580
|
|
|
555
581
|
def jpfield(
|
|
@@ -559,7 +585,7 @@ class StdAxesAdapter:
|
|
|
559
585
|
z,
|
|
560
586
|
*args,
|
|
561
587
|
interp_method: str = "natural_neighbor",
|
|
562
|
-
bin: int =
|
|
588
|
+
bin: int = DEFAULT_JP_SAMPLE_GRID,
|
|
563
589
|
nx: Optional[int] = None,
|
|
564
590
|
ny: Optional[int] = None,
|
|
565
591
|
xlim=None,
|