scitex 2.3.0__py3-none-any.whl → 2.4.1__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.
Files changed (99) hide show
  1. scitex/ai/classification/reporters/reporter_utils/_Plotter.py +1 -1
  2. scitex/ai/plt/__init__.py +2 -2
  3. scitex/ai/plt/{_plot_conf_mat.py → _stx_conf_mat.py} +3 -3
  4. scitex/config/PriorityConfig.py +195 -0
  5. scitex/config/__init__.py +24 -0
  6. scitex/io/_save.py +125 -34
  7. scitex/io/_save_modules/_image.py +37 -20
  8. scitex/plt/__init__.py +470 -17
  9. scitex/plt/_subplots/_AxisWrapper.py +98 -50
  10. scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin.py +559 -124
  11. scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin.py +49 -8
  12. scitex/plt/_subplots/_SubplotsWrapper.py +76 -91
  13. scitex/plt/_subplots/_export_as_csv.py +127 -58
  14. scitex/plt/_subplots/_export_as_csv_formatters/__init__.py +25 -16
  15. scitex/plt/_subplots/_export_as_csv_formatters/_format_contourf.py +54 -0
  16. scitex/plt/_subplots/_export_as_csv_formatters/_format_hexbin.py +41 -0
  17. scitex/plt/_subplots/_export_as_csv_formatters/_format_hist2d.py +41 -0
  18. scitex/plt/_subplots/_export_as_csv_formatters/_format_imshow.py +59 -47
  19. scitex/plt/_subplots/_export_as_csv_formatters/_format_matshow.py +42 -0
  20. scitex/plt/_subplots/_export_as_csv_formatters/_format_pie.py +42 -0
  21. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot.py +72 -35
  22. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_box.py +1 -1
  23. scitex/plt/_subplots/_export_as_csv_formatters/_format_plot_kde.py +2 -2
  24. scitex/plt/_subplots/_export_as_csv_formatters/_format_quiver.py +53 -0
  25. scitex/plt/_subplots/_export_as_csv_formatters/_format_stem.py +42 -0
  26. scitex/plt/_subplots/_export_as_csv_formatters/_format_step.py +42 -0
  27. scitex/plt/_subplots/_export_as_csv_formatters/_format_streamplot.py +48 -0
  28. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_conf_mat.py → _format_stx_conf_mat.py} +2 -2
  29. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_ecdf.py → _format_stx_ecdf.py} +2 -2
  30. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_fillv.py → _format_stx_fillv.py} +2 -2
  31. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_heatmap.py → _format_stx_heatmap.py} +2 -2
  32. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_image.py → _format_stx_image.py} +2 -2
  33. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_joyplot.py → _format_stx_joyplot.py} +2 -2
  34. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_line.py → _format_stx_line.py} +3 -3
  35. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_mean_ci.py → _format_stx_mean_ci.py} +2 -2
  36. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_mean_std.py → _format_stx_mean_std.py} +2 -2
  37. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_median_iqr.py → _format_stx_median_iqr.py} +2 -2
  38. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_raster.py → _format_stx_raster.py} +2 -2
  39. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_rectangle.py → _format_stx_rectangle.py} +1 -1
  40. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_scatter_hist.py → _format_stx_scatter_hist.py} +2 -2
  41. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_shaded_line.py → _format_stx_shaded_line.py} +2 -2
  42. scitex/plt/_subplots/_export_as_csv_formatters/{_format_plot_violin.py → _format_stx_violin.py} +2 -2
  43. scitex/plt/_subplots/_export_as_csv_formatters/verify_formatters.py +23 -23
  44. scitex/plt/ax/__init__.py +16 -15
  45. scitex/plt/ax/_plot/__init__.py +30 -30
  46. scitex/plt/ax/_plot/_add_fitted_line.py +65 -11
  47. scitex/plt/ax/_plot/_plot_statistical_shaded_line.py +104 -76
  48. scitex/plt/ax/_plot/{_plot_conf_mat.py → _stx_conf_mat.py} +10 -10
  49. scitex/plt/ax/_plot/_stx_ecdf.py +109 -0
  50. scitex/plt/ax/_plot/{_plot_fillv.py → _stx_fillv.py} +7 -7
  51. scitex/plt/ax/_plot/_stx_heatmap.py +366 -0
  52. scitex/plt/ax/_plot/{_plot_image.py → _stx_image.py} +1 -1
  53. scitex/plt/ax/_plot/_stx_joyplot.py +113 -0
  54. scitex/plt/ax/_plot/{_plot_raster.py → _stx_raster.py} +37 -25
  55. scitex/plt/ax/_plot/{_plot_rectangle.py → _stx_rectangle.py} +10 -9
  56. scitex/plt/ax/_plot/{_plot_scatter_hist.py → _stx_scatter_hist.py} +1 -1
  57. scitex/plt/ax/_plot/_stx_shaded_line.py +215 -0
  58. scitex/plt/ax/_plot/{_plot_violin.py → _stx_violin.py} +13 -6
  59. scitex/plt/ax/_style/__init__.py +3 -0
  60. scitex/plt/ax/_style/_style_barplot.py +13 -2
  61. scitex/plt/ax/_style/_style_boxplot.py +78 -32
  62. scitex/plt/ax/_style/_style_errorbar.py +17 -3
  63. scitex/plt/ax/_style/_style_scatter.py +17 -3
  64. scitex/plt/ax/_style/_style_violinplot.py +109 -0
  65. scitex/plt/color/_vizualize_colors.py +3 -3
  66. scitex/plt/styles/SCITEX_STYLE.yaml +104 -0
  67. scitex/plt/styles/__init__.py +57 -0
  68. scitex/plt/styles/_plot_defaults.py +209 -0
  69. scitex/plt/styles/_plot_postprocess.py +518 -0
  70. scitex/plt/styles/_style_loader.py +268 -0
  71. scitex/plt/styles/presets.py +208 -0
  72. scitex/plt/utils/_collect_figure_metadata.py +160 -18
  73. scitex/plt/utils/_colorbar.py +72 -10
  74. scitex/plt/utils/_configure_mpl.py +108 -52
  75. scitex/plt/utils/_crop.py +21 -7
  76. scitex/plt/utils/_figure_mm.py +21 -7
  77. scitex/stats/__init__.py +13 -1
  78. scitex/stats/_schema.py +578 -0
  79. scitex/stats/tests/__init__.py +13 -0
  80. scitex/stats/tests/correlation/__init__.py +13 -0
  81. scitex/stats/tests/correlation/_test_pearson.py +262 -0
  82. scitex/vis/__init__.py +6 -0
  83. scitex/vis/editor/__init__.py +23 -0
  84. scitex/vis/editor/_defaults.py +205 -0
  85. scitex/vis/editor/_edit.py +342 -0
  86. scitex/vis/editor/_mpl_editor.py +231 -0
  87. scitex/vis/editor/_tkinter_editor.py +466 -0
  88. scitex/vis/editor/_web_editor.py +1440 -0
  89. scitex/vis/model/plot_types.py +15 -15
  90. {scitex-2.3.0.dist-info → scitex-2.4.1.dist-info}/METADATA +2 -1
  91. {scitex-2.3.0.dist-info → scitex-2.4.1.dist-info}/RECORD +94 -67
  92. {scitex-2.3.0.dist-info → scitex-2.4.1.dist-info}/WHEEL +1 -1
  93. scitex/plt/ax/_plot/_plot_ecdf.py +0 -84
  94. scitex/plt/ax/_plot/_plot_heatmap.py +0 -277
  95. scitex/plt/ax/_plot/_plot_joyplot.py +0 -77
  96. scitex/plt/ax/_plot/_plot_shaded_line.py +0 -142
  97. scitex/plt/presets.py +0 -224
  98. {scitex-2.3.0.dist-info → scitex-2.4.1.dist-info}/entry_points.txt +0 -0
  99. {scitex-2.3.0.dist-info → scitex-2.4.1.dist-info}/licenses/LICENSE +0 -0
scitex/plt/presets.py DELETED
@@ -1,224 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
- # Time-stamp: "2025-11-19 13:45:00 (ywatanabe)"
4
- # File: ./src/scitex/plt/presets.py
5
-
6
- """
7
- Standard style presets for scitex.plt.subplots().
8
-
9
- Usage:
10
- from scitex.plt.presets import SCITEX_STYLE
11
-
12
- # Use the universal SciTeX preset (recommended)
13
- fig, ax = stx.plt.subplots(**SCITEX_STYLE)
14
-
15
- # Or use journal-specific presets
16
- from scitex.plt.presets import NATURE_STYLE, SCIENCE_STYLE
17
- fig, ax = stx.plt.subplots(**NATURE_STYLE)
18
-
19
- # Override specific parameters
20
- style = SCITEX_STYLE.copy()
21
- style['ax_width_mm'] = 50
22
- fig, ax = stx.plt.subplots(**style)
23
- """
24
-
25
- __all__ = [
26
- "SCITEX_STYLE",
27
- "NATURE_STYLE",
28
- "SCIENCE_STYLE",
29
- "CELL_STYLE",
30
- "PNAS_STYLE",
31
- ]
32
-
33
- # SciTeX default style
34
- # Universal publication-ready preset suitable for most journals
35
- # Based on common requirements across Nature, Science, Cell, PNAS
36
- SCITEX_STYLE = {
37
- "ax_width_mm": 40,
38
- "ax_height_mm": 28, # 1:0.7 ratio (width:height) for most plots
39
- "ax_thickness_mm": 0.2,
40
- "tick_length_mm": 0.8,
41
- "tick_thickness_mm": 0.2,
42
- "trace_thickness_mm": 0.2, # Regular line plots (use 0.12mm for signals like EEG)
43
- "errorbar_thickness_mm": 0.2, # Error bar line thickness
44
- "errorbar_cap_width_mm": 0.8, # Error bar cap width (0.8mm)
45
- "bar_edge_thickness_mm": 0.2, # Bar plot edge thickness
46
- "kde_line_thickness_mm": 0.2, # KDE line thickness
47
- "scatter_size_mm": 0.8, # Scatter marker size
48
- "axis_font_size_pt": 7,
49
- "tick_font_size_pt": 7,
50
- "title_font_size_pt": 8, # Slightly larger than axis labels (Nature-style)
51
- "suptitle_font_size_pt": 8,
52
- "legend_font_size_pt": 6,
53
- "label_pad_pt": 0.5, # Axis label to axis distance (Nature-style: extremely tight, default is 4pt)
54
- "tick_pad_pt": 2.0, # Tick label to tick distance (readable spacing, default is 3pt)
55
- "title_pad_pt": 1.0, # Title to axis top distance (Nature-style: extremely tight, default is ~6pt)
56
- "font_family": "Arial", # Arial font for publications
57
- "margin_left_mm": 20, # Large margins for labels, crop afterwards
58
- "margin_right_mm": 20, # Large margins for colorbars, crop afterwards
59
- "margin_bottom_mm": 20, # Large margins for x-axis labels, crop afterwards
60
- "margin_top_mm": 20, # Large margins for titles, crop afterwards
61
- "space_w_mm": 8, # Large spacing for multi-panel, crop afterwards
62
- "space_h_mm": 10, # Large spacing for multi-panel, crop afterwards
63
- "n_ticks": 4, # Target 3-4 ticks on each axis
64
- "transparent": True, # Transparent background for professional crop workflow
65
- "mode": "publication",
66
- "dpi": 300,
67
- "auto_scale_axes": True, # Automatically factor out powers of 10 from axis tick labels
68
- }
69
-
70
- # Nature journal style
71
- # Based on Nature's figure requirements:
72
- # - Single column: 89 mm (3.5 inches)
73
- # - Double column: 183 mm (7.2 inches)
74
- # - Text: 8pt for axis labels, 7pt for tick labels
75
- NATURE_STYLE = {
76
- "ax_width_mm": 40,
77
- "ax_height_mm": 28, # 1:0.7 ratio (width:height) for most plots
78
- "ax_thickness_mm": 0.2,
79
- "tick_length_mm": 0.8,
80
- "tick_thickness_mm": 0.2,
81
- "trace_thickness_mm": 0.2, # Regular line plots (use 0.12mm for signals like EEG)
82
- "errorbar_thickness_mm": 0.2, # Error bar line thickness
83
- "errorbar_cap_width_mm": 0.8, # Error bar cap width (0.8mm)
84
- "bar_edge_thickness_mm": 0.2, # Bar plot edge thickness
85
- "kde_line_thickness_mm": 0.2, # KDE line thickness
86
- "scatter_size_mm": 0.8, # Scatter marker size
87
- "errorbar_thickness_mm": 0.2, # Error bar line thickness
88
- "errorbar_cap_width_mm": 0.8, # Error bar cap width (0.8mm)
89
- "bar_edge_thickness_mm": 0.2, # Bar plot edge thickness
90
- "kde_line_thickness_mm": 0.2, # KDE line thickness
91
- "scatter_size_mm": 0.8, # Scatter marker size
92
- "axis_font_size_pt": 7,
93
- "tick_font_size_pt": 7,
94
- "title_font_size_pt": 8, # Slightly larger than axis labels (Nature-style)
95
- "suptitle_font_size_pt": 8,
96
- "legend_font_size_pt": 6,
97
- "label_pad_pt": 0.5, # Axis label to axis distance (Nature-style: extremely tight, default is 4pt)
98
- "tick_pad_pt": 2.0, # Tick label to tick distance (readable spacing, default is 3pt)
99
- "title_pad_pt": 1.0, # Title to axis top distance (Nature-style: extremely tight, default is ~6pt)
100
- "margin_left_mm": 20, # Large margins for labels, crop afterwards
101
- "margin_right_mm": 20, # Large margins for colorbars, crop afterwards
102
- "margin_bottom_mm": 20, # Large margins for x-axis labels, crop afterwards
103
- "margin_top_mm": 20, # Large margins for titles, crop afterwards
104
- "space_w_mm": 8, # Large spacing for multi-panel, crop afterwards
105
- "space_h_mm": 10, # Large spacing for multi-panel, crop afterwards
106
- "n_ticks": 4, # Target 3-4 ticks on each axis
107
- "transparent": True, # Transparent background for professional crop workflow
108
- "mode": "publication",
109
- "dpi": 300,
110
- "auto_scale_axes": True, # Automatically factor out powers of 10 from axis tick labels
111
- }
112
-
113
- # Science journal style
114
- # Based on Science's figure requirements:
115
- # - Single column: 90 mm (3.54 inches)
116
- # - Double column: 183 mm (7.2 inches)
117
- SCIENCE_STYLE = {
118
- "ax_width_mm": 45,
119
- "ax_height_mm": 31.5, # 1:0.7 ratio (width:height) for most plots
120
- "ax_thickness_mm": 0.25,
121
- "tick_length_mm": 1.0,
122
- "tick_thickness_mm": 0.25,
123
- "trace_thickness_mm": 0.15,
124
- "errorbar_thickness_mm": 0.2, # Error bar line thickness
125
- "errorbar_cap_width_mm": 0.8, # Error bar cap width (0.8mm)
126
- "bar_edge_thickness_mm": 0.2, # Bar plot edge thickness
127
- "kde_line_thickness_mm": 0.2, # KDE line thickness
128
- "scatter_size_mm": 0.8, # Scatter marker size
129
- "axis_font_size_pt": 7,
130
- "tick_font_size_pt": 7,
131
- "title_font_size_pt": 8, # Slightly larger than axis labels (Nature-style)
132
- "suptitle_font_size_pt": 8,
133
- "legend_font_size_pt": 6,
134
- "label_pad_pt": 0.5, # Axis label to axis distance (Nature-style: extremely tight, default is 4pt)
135
- "tick_pad_pt": 2.0, # Tick label to tick distance (readable spacing, default is 3pt)
136
- "title_pad_pt": 1.0, # Title to axis top distance (Nature-style: extremely tight, default is ~6pt)
137
- "margin_left_mm": 20, # Large margins for labels, crop afterwards
138
- "margin_right_mm": 20, # Large margins for colorbars, crop afterwards
139
- "margin_bottom_mm": 20, # Large margins for x-axis labels, crop afterwards
140
- "margin_top_mm": 20, # Large margins for titles, crop afterwards
141
- "space_w_mm": 8, # Large spacing for multi-panel, crop afterwards
142
- "space_h_mm": 10, # Large spacing for multi-panel, crop afterwards
143
- "n_ticks": 4, # Target 3-4 ticks on each axis
144
- "transparent": True, # Transparent background for professional crop workflow
145
- "mode": "publication",
146
- "dpi": 300,
147
- "auto_scale_axes": True, # Automatically factor out powers of 10 from axis tick labels
148
- }
149
-
150
- # Cell journal style
151
- # Based on Cell Press requirements:
152
- # - Single column: 85 mm (3.35 inches)
153
- # - Double column: 174 mm (6.85 inches)
154
- CELL_STYLE = {
155
- "ax_width_mm": 42,
156
- "ax_height_mm": 29.4, # 1:0.7 ratio (width:height) for most plots
157
- "ax_thickness_mm": 0.25,
158
- "tick_length_mm": 1.0,
159
- "tick_thickness_mm": 0.25,
160
- "trace_thickness_mm": 0.15,
161
- "errorbar_thickness_mm": 0.2, # Error bar line thickness
162
- "errorbar_cap_width_mm": 0.8, # Error bar cap width (0.8mm)
163
- "bar_edge_thickness_mm": 0.2, # Bar plot edge thickness
164
- "kde_line_thickness_mm": 0.2, # KDE line thickness
165
- "scatter_size_mm": 0.8, # Scatter marker size
166
- "axis_font_size_pt": 7,
167
- "tick_font_size_pt": 7,
168
- "title_font_size_pt": 8, # Slightly larger than axis labels (Nature-style)
169
- "suptitle_font_size_pt": 8,
170
- "legend_font_size_pt": 6,
171
- "label_pad_pt": 0.5, # Axis label to axis distance (Nature-style: extremely tight, default is 4pt)
172
- "tick_pad_pt": 2.0, # Tick label to tick distance (readable spacing, default is 3pt)
173
- "title_pad_pt": 1.0, # Title to axis top distance (Nature-style: extremely tight, default is ~6pt)
174
- "margin_left_mm": 20, # Large margins for labels, crop afterwards
175
- "margin_right_mm": 20, # Large margins for colorbars, crop afterwards
176
- "margin_bottom_mm": 20, # Large margins for x-axis labels, crop afterwards
177
- "margin_top_mm": 20, # Large margins for titles, crop afterwards
178
- "space_w_mm": 8, # Large spacing for multi-panel, crop afterwards
179
- "space_h_mm": 10, # Large spacing for multi-panel, crop afterwards
180
- "n_ticks": 4, # Target 3-4 ticks on each axis
181
- "transparent": True, # Transparent background for professional crop workflow
182
- "mode": "publication",
183
- "dpi": 300,
184
- "auto_scale_axes": True, # Automatically factor out powers of 10 from axis tick labels
185
- }
186
-
187
- # PNAS journal style
188
- # Based on PNAS figure requirements:
189
- # - Single column: 87 mm (3.42 inches)
190
- # - Double column: 178 mm (7.0 inches)
191
- PNAS_STYLE = {
192
- "ax_width_mm": 43,
193
- "ax_height_mm": 30.1, # 1:0.7 ratio (width:height) for most plots
194
- "ax_thickness_mm": 0.25,
195
- "tick_length_mm": 1.0,
196
- "tick_thickness_mm": 0.25,
197
- "trace_thickness_mm": 0.15,
198
- "errorbar_thickness_mm": 0.2, # Error bar line thickness
199
- "errorbar_cap_width_mm": 0.8, # Error bar cap width (0.8mm)
200
- "bar_edge_thickness_mm": 0.2, # Bar plot edge thickness
201
- "kde_line_thickness_mm": 0.2, # KDE line thickness
202
- "scatter_size_mm": 0.8, # Scatter marker size
203
- "axis_font_size_pt": 7,
204
- "tick_font_size_pt": 7,
205
- "title_font_size_pt": 8, # Slightly larger than axis labels (Nature-style)
206
- "suptitle_font_size_pt": 8,
207
- "legend_font_size_pt": 6,
208
- "label_pad_pt": 0.5, # Axis label to axis distance (Nature-style: extremely tight, default is 4pt)
209
- "tick_pad_pt": 2.0, # Tick label to tick distance (readable spacing, default is 3pt)
210
- "title_pad_pt": 1.0, # Title to axis top distance (Nature-style: extremely tight, default is ~6pt)
211
- "margin_left_mm": 20, # Large margins for labels, crop afterwards
212
- "margin_right_mm": 20, # Large margins for colorbars, crop afterwards
213
- "margin_bottom_mm": 20, # Large margins for x-axis labels, crop afterwards
214
- "margin_top_mm": 20, # Large margins for titles, crop afterwards
215
- "space_w_mm": 8, # Large spacing for multi-panel, crop afterwards
216
- "space_h_mm": 10, # Large spacing for multi-panel, crop afterwards
217
- "n_ticks": 4, # Target 3-4 ticks on each axis
218
- "transparent": True, # Transparent background for professional crop workflow
219
- "mode": "publication",
220
- "dpi": 300,
221
- "auto_scale_axes": True, # Automatically factor out powers of 10 from axis tick labels
222
- }
223
-
224
- # EOF