py2ls 0.1.9.5__py3-none-any.whl → 0.1.9.6__py3-none-any.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.
py2ls/plot.py CHANGED
@@ -10,7 +10,7 @@ from cycler import cycler
10
10
  import logging
11
11
  import os
12
12
 
13
- from .ips import fsave, fload, mkdir, listdir
13
+ from .ips import fsave, fload, mkdir, listdir, figsave
14
14
  from .stats import *
15
15
 
16
16
  # Suppress INFO messages from fontTools
@@ -311,13 +311,118 @@ def catplot(data, *args, **kwargs):
311
311
  violin_positions = np.nanmean(violin_positions, axis=0)
312
312
  for i, (x, ys) in enumerate(zip(violin_positions, data.T)):
313
313
  ys = ys[~np.isnan(ys)]
314
- kde = gaussian_kde(ys, bw_method=opt_v["BandWidth"])
315
- min_val, max_val = ys.min(), ys.max()
316
- y_vals = np.linspace(min_val, max_val, opt_v["NumPoints"])
317
- kde_vals = kde(y_vals)
318
- kde_vals = kde_vals / kde_vals.max() * opt_v["x_width"]
319
- if label is not None and i < len(label):
320
- if len(ys) > 1:
314
+ if np.all(ys == ys[0]): # Check if data is constant
315
+ print(
316
+ "Data is constant; KDE cannot be applied. Plotting a flat line instead."
317
+ )
318
+ if vertical:
319
+ ax.plot(
320
+ [x - opt_v["x_width"] / 2, x + opt_v["x_width"] / 2],
321
+ [ys[0], ys[0]],
322
+ color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
323
+ lw=2,
324
+ label=label[i] if label else None,
325
+ )
326
+ else:
327
+ ax.plot(
328
+ [ys[0], ys[0]],
329
+ [x - opt_v["x_width"] / 2, x + opt_v["x_width"] / 2],
330
+ color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
331
+ lw=2,
332
+ label=label[i] if label else None,
333
+ )
334
+ else:
335
+ kde = gaussian_kde(ys, bw_method=opt_v["BandWidth"])
336
+ min_val, max_val = ys.min(), ys.max()
337
+ y_vals = np.linspace(min_val, max_val, opt_v["NumPoints"])
338
+ kde_vals = kde(y_vals)
339
+ kde_vals = kde_vals / kde_vals.max() * opt_v["x_width"]
340
+ if label is not None and i < len(label):
341
+ if len(ys) > 1:
342
+ if "r" in opt_v["loc"].lower():
343
+ ax.fill_betweenx(
344
+ y_vals,
345
+ x,
346
+ x + kde_vals,
347
+ color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
348
+ alpha=opt_v["FaceAlpha"],
349
+ edgecolor=opt_v["EdgeColor"],
350
+ label=label[i],
351
+ lw=opt_v["LineWidth"],
352
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
353
+ )
354
+ elif (
355
+ "l" in opt_v["loc"].lower()
356
+ and not "f" in opt_v["loc"].lower()
357
+ ):
358
+ ax.fill_betweenx(
359
+ y_vals,
360
+ x - kde_vals,
361
+ x,
362
+ color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
363
+ alpha=opt_v["FaceAlpha"],
364
+ edgecolor=opt_v["EdgeColor"],
365
+ label=label[i],
366
+ lw=opt_v["LineWidth"],
367
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
368
+ )
369
+ elif (
370
+ "o" in opt_v["loc"].lower()
371
+ or "both" in opt_v["loc"].lower()
372
+ ):
373
+ ax.fill_betweenx(
374
+ y_vals,
375
+ x - kde_vals,
376
+ x + kde_vals,
377
+ color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
378
+ alpha=opt_v["FaceAlpha"],
379
+ edgecolor=opt_v["EdgeColor"],
380
+ label=label[i],
381
+ lw=opt_v["LineWidth"],
382
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
383
+ )
384
+ elif "i" in opt_v["loc"].lower():
385
+ if i % 2 == 1: # odd number
386
+ ax.fill_betweenx(
387
+ y_vals,
388
+ x - kde_vals,
389
+ x,
390
+ color=opt_v["FaceColor"][
391
+ i % len(opt_v["FaceColor"])
392
+ ],
393
+ alpha=opt_v["FaceAlpha"],
394
+ edgecolor=opt_v["EdgeColor"],
395
+ label=label[i],
396
+ lw=opt_v["LineWidth"],
397
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
398
+ )
399
+ else:
400
+ ax.fill_betweenx(
401
+ y_vals,
402
+ x,
403
+ x + kde_vals,
404
+ color=opt_v["FaceColor"][
405
+ i % len(opt_v["FaceColor"])
406
+ ],
407
+ alpha=opt_v["FaceAlpha"],
408
+ edgecolor=opt_v["EdgeColor"],
409
+ label=label[i],
410
+ lw=opt_v["LineWidth"],
411
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
412
+ )
413
+ elif "f" in opt_v["loc"].lower():
414
+ ax.fill_betweenx(
415
+ y_vals,
416
+ x - kde_vals,
417
+ x + kde_vals,
418
+ color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
419
+ alpha=opt_v["FaceAlpha"],
420
+ edgecolor=opt_v["EdgeColor"],
421
+ label=label[i],
422
+ lw=opt_v["LineWidth"],
423
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
424
+ )
425
+ else:
321
426
  if "r" in opt_v["loc"].lower():
322
427
  ax.fill_betweenx(
323
428
  y_vals,
@@ -326,7 +431,8 @@ def catplot(data, *args, **kwargs):
326
431
  color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
327
432
  alpha=opt_v["FaceAlpha"],
328
433
  edgecolor=opt_v["EdgeColor"],
329
- label=label[i],
434
+ lw=opt_v["LineWidth"],
435
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
330
436
  )
331
437
  elif (
332
438
  "l" in opt_v["loc"].lower() and not "f" in opt_v["loc"].lower()
@@ -338,7 +444,8 @@ def catplot(data, *args, **kwargs):
338
444
  color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
339
445
  alpha=opt_v["FaceAlpha"],
340
446
  edgecolor=opt_v["EdgeColor"],
341
- label=label[i],
447
+ lw=opt_v["LineWidth"],
448
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
342
449
  )
343
450
  elif "o" in opt_v["loc"].lower() or "both" in opt_v["loc"].lower():
344
451
  ax.fill_betweenx(
@@ -348,7 +455,8 @@ def catplot(data, *args, **kwargs):
348
455
  color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
349
456
  alpha=opt_v["FaceAlpha"],
350
457
  edgecolor=opt_v["EdgeColor"],
351
- label=label[i],
458
+ lw=opt_v["LineWidth"],
459
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
352
460
  )
353
461
  elif "i" in opt_v["loc"].lower():
354
462
  if i % 2 == 1: # odd number
@@ -359,7 +467,8 @@ def catplot(data, *args, **kwargs):
359
467
  color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
360
468
  alpha=opt_v["FaceAlpha"],
361
469
  edgecolor=opt_v["EdgeColor"],
362
- label=label[i],
470
+ lw=opt_v["LineWidth"],
471
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
363
472
  )
364
473
  else:
365
474
  ax.fill_betweenx(
@@ -369,7 +478,8 @@ def catplot(data, *args, **kwargs):
369
478
  color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
370
479
  alpha=opt_v["FaceAlpha"],
371
480
  edgecolor=opt_v["EdgeColor"],
372
- label=label[i],
481
+ lw=opt_v["LineWidth"],
482
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
373
483
  )
374
484
  elif "f" in opt_v["loc"].lower():
375
485
  ax.fill_betweenx(
@@ -379,64 +489,9 @@ def catplot(data, *args, **kwargs):
379
489
  color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
380
490
  alpha=opt_v["FaceAlpha"],
381
491
  edgecolor=opt_v["EdgeColor"],
382
- label=label[i],
492
+ lw=opt_v["LineWidth"],
493
+ hatch=opt_v["hatch"][i % len(opt_v["FaceColor"])],
383
494
  )
384
- else:
385
- if "r" in opt_v["loc"].lower():
386
- ax.fill_betweenx(
387
- y_vals,
388
- x,
389
- x + kde_vals,
390
- color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
391
- alpha=opt_v["FaceAlpha"],
392
- edgecolor=opt_v["EdgeColor"],
393
- )
394
- elif "l" in opt_v["loc"].lower() and not "f" in opt_v["loc"].lower():
395
- ax.fill_betweenx(
396
- y_vals,
397
- x - kde_vals,
398
- x,
399
- color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
400
- alpha=opt_v["FaceAlpha"],
401
- edgecolor=opt_v["EdgeColor"],
402
- )
403
- elif "o" in opt_v["loc"].lower() or "both" in opt_v["loc"].lower():
404
- ax.fill_betweenx(
405
- y_vals,
406
- x - kde_vals,
407
- x + kde_vals,
408
- color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
409
- alpha=opt_v["FaceAlpha"],
410
- edgecolor=opt_v["EdgeColor"],
411
- )
412
- elif "i" in opt_v["loc"].lower():
413
- if i % 2 == 1: # odd number
414
- ax.fill_betweenx(
415
- y_vals,
416
- x - kde_vals,
417
- x,
418
- color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
419
- alpha=opt_v["FaceAlpha"],
420
- edgecolor=opt_v["EdgeColor"],
421
- )
422
- else:
423
- ax.fill_betweenx(
424
- y_vals,
425
- x,
426
- x + kde_vals,
427
- color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
428
- alpha=opt_v["FaceAlpha"],
429
- edgecolor=opt_v["EdgeColor"],
430
- )
431
- elif "f" in opt_v["loc"].lower():
432
- ax.fill_betweenx(
433
- y_vals,
434
- x - kde_vals,
435
- x + kde_vals,
436
- color=opt_v["FaceColor"][i % len(opt_v["FaceColor"])],
437
- alpha=opt_v["FaceAlpha"],
438
- edgecolor=opt_v["EdgeColor"],
439
- )
440
495
 
441
496
  def plot_ridgeplot(data, x, y, opt_r, **kwargs_figsets):
442
497
  # in the sns.FacetGrid class, the 'hue' argument is the one that is the one that will be represented by colors with 'palette'
@@ -939,11 +994,13 @@ def catplot(data, *args, **kwargs):
939
994
  opt["v"].setdefault("x_dist", opt["v"]["x_width"])
940
995
  opt["v"].setdefault("loc", "r")
941
996
  opt["v"].setdefault("EdgeColor", "none")
997
+ opt["v"].setdefault("LineWidth", 0.5)
942
998
  opt["v"].setdefault("FaceColor", color_custom)
943
999
  opt["v"].setdefault("FaceAlpha", 1)
944
1000
  opt["v"].setdefault("BandWidth", "scott")
945
1001
  opt["v"].setdefault("Function", "pdf")
946
1002
  opt["v"].setdefault("Kernel", "gau")
1003
+ opt["v"].setdefault("hatch", None)
947
1004
  opt["v"].setdefault("NumPoints", 500)
948
1005
  opt["v"].setdefault("BoundaryCorrection", "reflection")
949
1006
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: py2ls
3
- Version: 0.1.9.5
3
+ Version: 0.1.9.6
4
4
  Summary: py(thon)2(too)ls
5
5
  Author: Jianfeng
6
6
  Author-email: Jianfeng.Liu0413@gmail.com
@@ -175,12 +175,12 @@ py2ls/export_requirements.py,sha256=x2WgUF0jYKz9GfA1MVKN-MdsM-oQ8yUeC6Ua8oCymio,
175
175
  py2ls/freqanalysis.py,sha256=F4218VSPbgL5tnngh6xNCYuNnfR-F_QjECUUxrPYZss,32594
176
176
  py2ls/ips.py,sha256=N7MdOCgJXDQu73YkJQTtDN3RSntzXX7V0MOJ1NYBLEk,100572
177
177
  py2ls/netfinder.py,sha256=KJIvg3JZSsy1dJZHNJvd9Y3oyYG0mbdTjtXimdRs8e8,49182
178
- py2ls/plot.py,sha256=DeGchynrr5KHivV-vgrOj3pUMi75SaBVRbUc3XkZe7c,82630
178
+ py2ls/plot.py,sha256=Cpx0cZoU-TN-q3Awmk75DYZsN4nGpnB_dHh262l_-Is,86130
179
179
  py2ls/setuptools-70.1.0-py3-none-any.whl,sha256=2bi3cUVal8ip86s0SOvgspteEF8SKLukECi-EWmFomc,882588
180
180
  py2ls/sleep_events_detectors.py,sha256=bQA3HJqv5qnYKJJEIhCyhlDtkXQfIzqksnD0YRXso68,52145
181
181
  py2ls/stats.py,sha256=U2yeTYUkInI4JXtfhdSbSAzna_h8rh8MZmY31o51_EU,38169
182
182
  py2ls/translator.py,sha256=bc5FB-wqC4TtQz9gyCP1mE38HqNRJ_pmuRIgKnAlMzM,30581
183
183
  py2ls/wb_detector.py,sha256=7y6TmBUj9exCZeIgBAJ_9hwuhkDh1x_-yg4dvNY1_GQ,6284
184
- py2ls-0.1.9.5.dist-info/METADATA,sha256=sQK7r2gM_Az7cKffERl81if1FJ7Qn0viiNTkijjcmvI,20017
185
- py2ls-0.1.9.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
186
- py2ls-0.1.9.5.dist-info/RECORD,,
184
+ py2ls-0.1.9.6.dist-info/METADATA,sha256=S9HnH0pZxgJJvYW3BmDw9zdlB1V2gQ3jYVSTrh4uCiw,20017
185
+ py2ls-0.1.9.6.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
186
+ py2ls-0.1.9.6.dist-info/RECORD,,