batplot 1.8.34__tar.gz → 1.8.35__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.
- {batplot-1.8.34/batplot.egg-info → batplot-1.8.35}/PKG-INFO +1 -1
- {batplot-1.8.34 → batplot-1.8.35}/batplot/__init__.py +1 -1
- {batplot-1.8.34 → batplot-1.8.35}/batplot/data/CHANGELOG.md +4 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/electrochem_interactive.py +75 -21
- {batplot-1.8.34 → batplot-1.8.35/batplot.egg-info}/PKG-INFO +1 -1
- {batplot-1.8.34 → batplot-1.8.35}/pyproject.toml +1 -1
- {batplot-1.8.34 → batplot-1.8.35}/LICENSE +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/MANIFEST.in +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/NOTICE +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/README.md +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/args.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/batch.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/batplot.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/canvas_interactive.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/cif.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/cli.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/color_utils.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/config.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/converters.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/cpc_interactive.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/data/USER_MANUAL.md +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/dev_upgrade.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/interactive.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/manual.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/modes.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/operando.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/operando_ec_interactive.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/plotting.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/readers.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/session.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/showcol.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/style.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/ui.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/utils.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot/version_check.py +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot.egg-info/SOURCES.txt +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot.egg-info/dependency_links.txt +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot.egg-info/entry_points.txt +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot.egg-info/requires.txt +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/batplot.egg-info/top_level.txt +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/setup.cfg +0 -0
- {batplot-1.8.34 → batplot-1.8.35}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: batplot
|
|
3
|
-
Version: 1.8.
|
|
3
|
+
Version: 1.8.35
|
|
4
4
|
Summary: Interactive plotting tool for material science (1D plot) and electrochemistry (GC, CV, dQ/dV, CPC, operando) with batch processing
|
|
5
5
|
Author-email: Tian Dai <tianda@uio.no>
|
|
6
6
|
License: MIT License
|
|
@@ -281,12 +281,24 @@ def _apply_stored_smooth_settings(cycle_lines: Dict[int, Dict[str, Optional[Any]
|
|
|
281
281
|
continue
|
|
282
282
|
xdata = np.asarray(ln.get_xdata(), float)
|
|
283
283
|
ydata = np.asarray(ln.get_ydata(), float)
|
|
284
|
+
if xdata.size != ydata.size:
|
|
285
|
+
n = int(min(xdata.size, ydata.size))
|
|
286
|
+
if n < 3:
|
|
287
|
+
continue
|
|
288
|
+
xdata = xdata[:n]
|
|
289
|
+
ydata = ydata[:n]
|
|
284
290
|
if xdata.size < 3:
|
|
285
291
|
continue
|
|
286
292
|
# Get original data if available, otherwise use current data
|
|
287
293
|
if hasattr(ln, '_original_xdata'):
|
|
288
294
|
xdata = np.asarray(ln._original_xdata, float)
|
|
289
295
|
ydata = np.asarray(ln._original_ydata, float)
|
|
296
|
+
if xdata.size != ydata.size:
|
|
297
|
+
n = int(min(xdata.size, ydata.size))
|
|
298
|
+
if n < 3:
|
|
299
|
+
continue
|
|
300
|
+
xdata = xdata[:n]
|
|
301
|
+
ydata = ydata[:n]
|
|
290
302
|
else:
|
|
291
303
|
ln._original_xdata = np.array(xdata, copy=True)
|
|
292
304
|
ln._original_ydata = np.array(ydata, copy=True)
|
|
@@ -309,12 +321,24 @@ def _apply_stored_smooth_settings(cycle_lines: Dict[int, Dict[str, Optional[Any]
|
|
|
309
321
|
continue
|
|
310
322
|
xdata = np.asarray(ln.get_xdata(), float)
|
|
311
323
|
ydata = np.asarray(ln.get_ydata(), float)
|
|
324
|
+
if xdata.size != ydata.size:
|
|
325
|
+
n = int(min(xdata.size, ydata.size))
|
|
326
|
+
if n < 3:
|
|
327
|
+
continue
|
|
328
|
+
xdata = xdata[:n]
|
|
329
|
+
ydata = ydata[:n]
|
|
312
330
|
if xdata.size < 3:
|
|
313
331
|
continue
|
|
314
332
|
# Get original data if available, otherwise use current data
|
|
315
333
|
if hasattr(ln, '_original_xdata'):
|
|
316
334
|
xdata = np.asarray(ln._original_xdata, float)
|
|
317
335
|
ydata = np.asarray(ln._original_ydata, float)
|
|
336
|
+
if xdata.size != ydata.size:
|
|
337
|
+
n = int(min(xdata.size, ydata.size))
|
|
338
|
+
if n < 3:
|
|
339
|
+
continue
|
|
340
|
+
xdata = xdata[:n]
|
|
341
|
+
ydata = ydata[:n]
|
|
318
342
|
else:
|
|
319
343
|
ln._original_xdata = np.array(xdata, copy=True)
|
|
320
344
|
ln._original_ydata = np.array(ydata, copy=True)
|
|
@@ -341,12 +365,24 @@ def _apply_stored_smooth_settings(cycle_lines: Dict[int, Dict[str, Optional[Any]
|
|
|
341
365
|
continue
|
|
342
366
|
xdata = np.asarray(ln.get_xdata(), float)
|
|
343
367
|
ydata = np.asarray(ln.get_ydata(), float)
|
|
368
|
+
if xdata.size != ydata.size:
|
|
369
|
+
n = int(min(xdata.size, ydata.size))
|
|
370
|
+
if n < 5:
|
|
371
|
+
continue
|
|
372
|
+
xdata = xdata[:n]
|
|
373
|
+
ydata = ydata[:n]
|
|
344
374
|
if xdata.size < 5:
|
|
345
375
|
continue
|
|
346
376
|
# Get original data if available, otherwise use current data
|
|
347
377
|
if hasattr(ln, '_original_xdata'):
|
|
348
378
|
xdata = np.asarray(ln._original_xdata, float)
|
|
349
379
|
ydata = np.asarray(ln._original_ydata, float)
|
|
380
|
+
if xdata.size != ydata.size:
|
|
381
|
+
n = int(min(xdata.size, ydata.size))
|
|
382
|
+
if n < 5:
|
|
383
|
+
continue
|
|
384
|
+
xdata = xdata[:n]
|
|
385
|
+
ydata = ydata[:n]
|
|
350
386
|
else:
|
|
351
387
|
ln._original_xdata = np.array(xdata, copy=True)
|
|
352
388
|
ln._original_ydata = np.array(ydata, copy=True)
|
|
@@ -5741,27 +5777,33 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Optional[Dict[int, Dict[s
|
|
|
5741
5777
|
if ln is None or not ln.get_visible():
|
|
5742
5778
|
continue
|
|
5743
5779
|
xdata = np.asarray(ln.get_xdata(), float)
|
|
5744
|
-
|
|
5745
|
-
|
|
5746
|
-
|
|
5747
|
-
|
|
5748
|
-
|
|
5749
|
-
|
|
5750
|
-
|
|
5751
|
-
|
|
5752
|
-
|
|
5753
|
-
|
|
5754
|
-
|
|
5755
|
-
|
|
5756
|
-
|
|
5757
|
-
|
|
5758
|
-
|
|
5759
|
-
|
|
5760
|
-
|
|
5761
|
-
|
|
5762
|
-
|
|
5763
|
-
|
|
5764
|
-
|
|
5780
|
+
ydata = np.asarray(ln.get_ydata(), float)
|
|
5781
|
+
if xdata.size != ydata.size:
|
|
5782
|
+
n = int(min(xdata.size, ydata.size))
|
|
5783
|
+
if n < 3:
|
|
5784
|
+
continue
|
|
5785
|
+
xdata = xdata[:n]
|
|
5786
|
+
ydata = ydata[:n]
|
|
5787
|
+
if xdata.size < 3:
|
|
5788
|
+
continue
|
|
5789
|
+
if not hasattr(ln, '_original_xdata'):
|
|
5790
|
+
ln._original_xdata = np.array(xdata, copy=True)
|
|
5791
|
+
ln._original_ydata = np.array(ydata, copy=True)
|
|
5792
|
+
dv = np.abs(np.diff(xdata))
|
|
5793
|
+
mask = np.ones_like(xdata, dtype=bool)
|
|
5794
|
+
mask[1:] &= dv >= threshold_v
|
|
5795
|
+
mask[:-1] &= dv >= threshold_v
|
|
5796
|
+
filtered_x = xdata[mask]
|
|
5797
|
+
filtered_y = ydata[mask]
|
|
5798
|
+
before = len(xdata)
|
|
5799
|
+
after = len(filtered_x)
|
|
5800
|
+
if after < before:
|
|
5801
|
+
ln.set_xdata(filtered_x)
|
|
5802
|
+
ln.set_ydata(filtered_y)
|
|
5803
|
+
ln._smooth_applied = True
|
|
5804
|
+
filtered += 1
|
|
5805
|
+
total_before += before
|
|
5806
|
+
total_after += after
|
|
5765
5807
|
if filtered:
|
|
5766
5808
|
removed = total_before - total_after
|
|
5767
5809
|
pct = 100 * removed / total_before if total_before else 0
|
|
@@ -5867,6 +5909,12 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Optional[Dict[int, Dict[s
|
|
|
5867
5909
|
continue
|
|
5868
5910
|
xdata = np.asarray(ln.get_xdata(), float)
|
|
5869
5911
|
ydata = np.asarray(ln.get_ydata(), float)
|
|
5912
|
+
if xdata.size != ydata.size:
|
|
5913
|
+
n = int(min(xdata.size, ydata.size))
|
|
5914
|
+
if n < 3:
|
|
5915
|
+
continue
|
|
5916
|
+
xdata = xdata[:n]
|
|
5917
|
+
ydata = ydata[:n]
|
|
5870
5918
|
if xdata.size < 3:
|
|
5871
5919
|
continue
|
|
5872
5920
|
if not hasattr(ln, '_original_xdata'):
|
|
@@ -5976,6 +6024,12 @@ def electrochem_interactive_menu(fig, ax, cycle_lines: Optional[Dict[int, Dict[s
|
|
|
5976
6024
|
continue
|
|
5977
6025
|
xdata = np.asarray(ln.get_xdata(), float)
|
|
5978
6026
|
ydata = np.asarray(ln.get_ydata(), float)
|
|
6027
|
+
if xdata.size != ydata.size:
|
|
6028
|
+
n = int(min(xdata.size, ydata.size))
|
|
6029
|
+
if n < 5:
|
|
6030
|
+
continue
|
|
6031
|
+
xdata = xdata[:n]
|
|
6032
|
+
ydata = ydata[:n]
|
|
5979
6033
|
if xdata.size < 5:
|
|
5980
6034
|
continue
|
|
5981
6035
|
if not hasattr(ln, '_original_xdata'):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: batplot
|
|
3
|
-
Version: 1.8.
|
|
3
|
+
Version: 1.8.35
|
|
4
4
|
Summary: Interactive plotting tool for material science (1D plot) and electrochemistry (GC, CV, dQ/dV, CPC, operando) with batch processing
|
|
5
5
|
Author-email: Tian Dai <tianda@uio.no>
|
|
6
6
|
License: MIT License
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "batplot"
|
|
7
|
-
version = "1.8.
|
|
7
|
+
version = "1.8.35"
|
|
8
8
|
description = "Interactive plotting tool for material science (1D plot) and electrochemistry (GC, CV, dQ/dV, CPC, operando) with batch processing"
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "Tian Dai", email = "tianda@uio.no" }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|