majoplot 0.1.11__py3-none-any.whl → 0.1.12__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.
- majoplot/domain/scenarios/PPMS_Resistivity/RT.py +14 -18
- majoplot/domain/scenarios/PPMS_Resistivity/RT_Resistivity.py +136 -0
- majoplot/domain/scenarios/PPMS_Resistivity/{RT_Resistance.py → RT_normalized.py} +32 -9
- {majoplot-0.1.11.dist-info → majoplot-0.1.12.dist-info}/METADATA +1 -1
- {majoplot-0.1.11.dist-info → majoplot-0.1.12.dist-info}/RECORD +8 -7
- {majoplot-0.1.11.dist-info → majoplot-0.1.12.dist-info}/WHEEL +0 -0
- {majoplot-0.1.11.dist-info → majoplot-0.1.12.dist-info}/entry_points.txt +0 -0
- {majoplot-0.1.11.dist-info → majoplot-0.1.12.dist-info}/licenses/LICENSE +0 -0
|
@@ -7,8 +7,7 @@ FIGSIZE = (8, 6)
|
|
|
7
7
|
|
|
8
8
|
T = "Temperature (K)"
|
|
9
9
|
H = "Magnetic Field (Oe)"
|
|
10
|
-
R = "
|
|
11
|
-
_headers = (T,R)
|
|
10
|
+
R = "Resistance (Ohms)"
|
|
12
11
|
RI ={
|
|
13
12
|
1: {"R":"Bridge 1 Resistance (Ohms)", "I":"Bridge 1 Excitation (uA)"},
|
|
14
13
|
2: {"R":"Bridge 2 Resistance (Ohms)", "I":"Bridge 2 Excitation (uA)"},
|
|
@@ -53,17 +52,10 @@ class RT:
|
|
|
53
52
|
for H_stage, points in split_datas:
|
|
54
53
|
for i in range(1,4):
|
|
55
54
|
_headerTRI = (T,RI[i]["R"],RI[i]["I"])
|
|
55
|
+
_headers = (T,RI[i]["R"])
|
|
56
56
|
s_points = [ [point[headers[x]] for x in _headerTRI] for point in points]
|
|
57
|
-
# clear null
|
|
57
|
+
# clear null R points
|
|
58
58
|
s_points = np.array([point for point in s_points if point[1]])
|
|
59
|
-
# calculate resistivity
|
|
60
|
-
cross_section = raw_labels[f"sample{i}_cross_section"].value * 1e-6
|
|
61
|
-
if cross_section <= 0:
|
|
62
|
-
cross_section = np.nan
|
|
63
|
-
length = raw_labels[f"sample{i}_length"].value * 1e-3
|
|
64
|
-
if length <= 0:
|
|
65
|
-
length = np.nan
|
|
66
|
-
r_points = np.column_stack([s_points[:,0], s_points[:,1] * cross_section / length])
|
|
67
59
|
# record
|
|
68
60
|
Imin = np.min(s_points[:,2])
|
|
69
61
|
Imax = np.max(s_points[:,2])
|
|
@@ -84,8 +76,8 @@ class RT:
|
|
|
84
76
|
datas.append(Data(
|
|
85
77
|
labels=labels,
|
|
86
78
|
_headers=_headers,
|
|
87
|
-
points=
|
|
88
|
-
ignore_outliers=IgnoreOutlierSpec(min_gap_base=1e-
|
|
79
|
+
points=s_points[:,0:2],
|
|
80
|
+
ignore_outliers=IgnoreOutlierSpec(min_gap_base=1e-4,min_gap_multiple=10),
|
|
89
81
|
))
|
|
90
82
|
|
|
91
83
|
return datas
|
|
@@ -100,6 +92,8 @@ class RT:
|
|
|
100
92
|
major_grid=None,
|
|
101
93
|
major_tick=TickSpec(),
|
|
102
94
|
legend=LegendSpec(fontsize=5),
|
|
95
|
+
linewidth=1,
|
|
96
|
+
marker_size=2,
|
|
103
97
|
)
|
|
104
98
|
|
|
105
99
|
|
|
@@ -112,13 +106,15 @@ class RT:
|
|
|
112
106
|
title=None,
|
|
113
107
|
figsize=FIGSIZE,
|
|
114
108
|
linestyle_cycle= ("-",),
|
|
109
|
+
|
|
115
110
|
linecolor_cycle = (
|
|
116
|
-
"#
|
|
117
|
-
"#
|
|
118
|
-
"#
|
|
119
|
-
"#fdbb2d", "#fcfdbf",
|
|
111
|
+
"#515151", "#F14040", "#1A6FDF", "#37AD6B", "#B177DE",
|
|
112
|
+
"#CC9900", "#00CBCC", "#7D4E4E", "#8E8E00", "#FB6501",
|
|
113
|
+
"#6699CC", "#6FB802", "#f04f76", "#f86a5a", "#fb8c3c",
|
|
114
|
+
"#fdbb2d", "#fcfdbf","#2B2E83", "#E6007A", "#005F5F",
|
|
115
|
+
"#1F3D2B", "#E8C6E8","#FAB3d1",
|
|
120
116
|
),
|
|
121
|
-
linemarker_cycle = ("o",
|
|
117
|
+
linemarker_cycle = ("o",),
|
|
122
118
|
alpa_cycle = (1.0,),
|
|
123
119
|
)
|
|
124
120
|
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from ...base import *
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
FIGSIZE = (8, 6)
|
|
7
|
+
|
|
8
|
+
T = "Temperature (K)"
|
|
9
|
+
H = "Magnetic Field (Oe)"
|
|
10
|
+
R = "Resistivity (Ω·m)"
|
|
11
|
+
RI ={
|
|
12
|
+
1: {"R":"Bridge 1 Resistance (Ohms)", "I":"Bridge 1 Excitation (uA)"},
|
|
13
|
+
2: {"R":"Bridge 2 Resistance (Ohms)", "I":"Bridge 2 Excitation (uA)"},
|
|
14
|
+
3: {"R":"Bridge 3 Resistance (Ohms)", "I":"Bridge 3 Excitation (uA)"},
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
ResistivityI ={
|
|
18
|
+
1: {"R":"Bridge 1 Resistivity (Ω·m)", "I":"Bridge 1 Excitation (uA)"},
|
|
19
|
+
2: {"R":"Bridge 2 Resistivity (Ω·m)", "I":"Bridge 2 Excitation (uA)"},
|
|
20
|
+
3: {"R":"Bridge 3 Resistivity (Ω·m)", "I":"Bridge 3 Excitation (uA)"},
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
class RT_Resistivity:
|
|
24
|
+
data_summary_label_names = ["H"]
|
|
25
|
+
axes_label_names = ("date", "raw_data", "bridge", "sample_name")
|
|
26
|
+
figure_label_names = ("date", "raw_data", "bridge", "sample_name")
|
|
27
|
+
figure_summary_label_names = ("raw_data","bridge","sample_name")
|
|
28
|
+
max_axes_in_one_figure = 1
|
|
29
|
+
project_to_child_folder_label_names = {"date":"sample_name"}
|
|
30
|
+
parent_folder_name = "RT"
|
|
31
|
+
|
|
32
|
+
@classmethod
|
|
33
|
+
def preprocess(cls, raw_datas:list[Data])->list[Data]:
|
|
34
|
+
datas = []
|
|
35
|
+
for raw_data in raw_datas:
|
|
36
|
+
raw_labels = raw_data.labels
|
|
37
|
+
headers = raw_data.headers
|
|
38
|
+
raw_points = raw_data.points
|
|
39
|
+
|
|
40
|
+
# Split by H
|
|
41
|
+
split_datas = []
|
|
42
|
+
|
|
43
|
+
last_H_stage = round(raw_points[0][headers[H]])
|
|
44
|
+
current_points = [ last_H_stage, [ raw_points[0] ] ]
|
|
45
|
+
|
|
46
|
+
for point in raw_points[1:]:
|
|
47
|
+
cur_H_stage = round(point[headers[H]])
|
|
48
|
+
if cur_H_stage != last_H_stage:
|
|
49
|
+
split_datas.append(current_points)
|
|
50
|
+
last_H_stage = cur_H_stage
|
|
51
|
+
current_points = [ last_H_stage, [ point ] ]
|
|
52
|
+
else:
|
|
53
|
+
current_points[1].append(point)
|
|
54
|
+
else:
|
|
55
|
+
split_datas.append(current_points)
|
|
56
|
+
|
|
57
|
+
# 3 bridges
|
|
58
|
+
for H_stage, points in split_datas:
|
|
59
|
+
for i in range(1,4):
|
|
60
|
+
_headerTRI = (T,RI[i]["R"],RI[i]["I"])
|
|
61
|
+
_headers = (T,ResistivityI[i]["R"])
|
|
62
|
+
s_points = [ [point[headers[x]] for x in _headerTRI] for point in points]
|
|
63
|
+
# clear null Resistance points
|
|
64
|
+
s_points = np.array([point for point in s_points if point[1]])
|
|
65
|
+
# calculate resistivity
|
|
66
|
+
cross_section = raw_labels[f"sample{i}_cross_section"].value * 1e-6
|
|
67
|
+
if cross_section <= 0:
|
|
68
|
+
cross_section = np.nan
|
|
69
|
+
length = raw_labels[f"sample{i}_length"].value * 1e-3
|
|
70
|
+
if length <= 0:
|
|
71
|
+
length = np.nan
|
|
72
|
+
r_points = np.column_stack([s_points[:,0], s_points[:,1] * cross_section / length])
|
|
73
|
+
# record
|
|
74
|
+
Imin = np.min(s_points[:,2])
|
|
75
|
+
Imax = np.max(s_points[:,2])
|
|
76
|
+
if (Imax - Imin) / Imax < 0.03:
|
|
77
|
+
Irange = f"{np.mean(s_points[:,1]):.1e}"
|
|
78
|
+
else:
|
|
79
|
+
Irange = f"{Imin:.1e}~{Imax:.1e}"
|
|
80
|
+
labels = LabelDict()
|
|
81
|
+
labels["instrument"] = raw_labels["instrument"]
|
|
82
|
+
labels["raw_data"] = raw_labels["raw_data"]
|
|
83
|
+
labels["date"] = raw_labels["date"]
|
|
84
|
+
labels["bridge"] = LabelValue(i,unit="Bridge",unit_as_postfix=False)
|
|
85
|
+
labels["sample_name"] = raw_labels[f"sample{i}_name"]
|
|
86
|
+
labels["sample_units"] = raw_labels[f"sample{i}_units"]
|
|
87
|
+
labels["H"] = LabelValue(H_stage, unit="Oe")
|
|
88
|
+
labels["I_range"] = LabelValue(Irange,unit="μA")
|
|
89
|
+
labels.summary_names = cls.data_summary_label_names
|
|
90
|
+
datas.append(Data(
|
|
91
|
+
labels=labels,
|
|
92
|
+
_headers=_headers,
|
|
93
|
+
points=r_points,
|
|
94
|
+
ignore_outliers=IgnoreOutlierSpec(min_gap_base=1e-8,min_gap_multiple=10),
|
|
95
|
+
))
|
|
96
|
+
|
|
97
|
+
return datas
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
@classmethod
|
|
102
|
+
def make_axes_spec(cls, axes_labels, data_pool)->AxesSpec:
|
|
103
|
+
return AxesSpec(
|
|
104
|
+
x_axis_title=T,
|
|
105
|
+
y_axis_title=R,
|
|
106
|
+
major_grid=None,
|
|
107
|
+
major_tick=TickSpec(),
|
|
108
|
+
legend=LegendSpec(fontsize=5),
|
|
109
|
+
linewidth=1,
|
|
110
|
+
marker_size=2,
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
@classmethod
|
|
115
|
+
def make_figure_spec(cls,figure_labels, axes_pool:Iterable[Axes])->FigureSpec:
|
|
116
|
+
figure_name = figure_labels.brief_summary
|
|
117
|
+
|
|
118
|
+
return FigureSpec(
|
|
119
|
+
name=figure_name,
|
|
120
|
+
title=None,
|
|
121
|
+
figsize=FIGSIZE,
|
|
122
|
+
linestyle_cycle= ("-",),
|
|
123
|
+
linecolor_cycle = (
|
|
124
|
+
"#515151", "#F14040", "#1A6FDF", "#37AD6B", "#B177DE",
|
|
125
|
+
"#CC9900", "#00CBCC", "#7D4E4E", "#8E8E00", "#FB6501",
|
|
126
|
+
"#6699CC", "#6FB802", "#f04f76", "#f86a5a", "#fb8c3c",
|
|
127
|
+
"#fdbb2d", "#fcfdbf","#2B2E83", "#E6007A", "#005F5F",
|
|
128
|
+
"#1F3D2B", "#E8C6E8","#FAB3d1",
|
|
129
|
+
),
|
|
130
|
+
linemarker_cycle = ("o","s","^","v","d","*","x","+"),
|
|
131
|
+
alpa_cycle = (1.0,),
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
@classmethod
|
|
135
|
+
def make_muti_axes_spec(cls, axes_pool:list[Axes])->MutiAxesSpec|FAIL|None:
|
|
136
|
+
return None
|
|
@@ -13,8 +13,13 @@ RI ={
|
|
|
13
13
|
2: {"R":"Bridge 2 Resistance (Ohms)", "I":"Bridge 2 Excitation (uA)"},
|
|
14
14
|
3: {"R":"Bridge 3 Resistance (Ohms)", "I":"Bridge 3 Excitation (uA)"},
|
|
15
15
|
}
|
|
16
|
+
RI_normalized ={
|
|
17
|
+
1: {"R":"Bridge 1 Normalized Resistance", "I":"Bridge 1 Excitation (uA)"},
|
|
18
|
+
2: {"R":"Bridge 2 Normalied Resistance", "I":"Bridge 2 Excitation (uA)"},
|
|
19
|
+
3: {"R":"Bridge 3 Normalized Resistance", "I":"Bridge 3 Excitation (uA)"},
|
|
20
|
+
}
|
|
16
21
|
|
|
17
|
-
class
|
|
22
|
+
class RT_normalized:
|
|
18
23
|
data_summary_label_names = ["H"]
|
|
19
24
|
axes_label_names = ("date", "raw_data", "bridge", "sample_name")
|
|
20
25
|
figure_label_names = ("date", "raw_data", "bridge", "sample_name")
|
|
@@ -52,7 +57,7 @@ class RT_Resistance:
|
|
|
52
57
|
for H_stage, points in split_datas:
|
|
53
58
|
for i in range(1,4):
|
|
54
59
|
_headerTRI = (T,RI[i]["R"],RI[i]["I"])
|
|
55
|
-
_headers = (T,
|
|
60
|
+
_headers = (T,RI_normalized[i]["R"])
|
|
56
61
|
s_points = [ [point[headers[x]] for x in _headerTRI] for point in points]
|
|
57
62
|
# clear null R points
|
|
58
63
|
s_points = np.array([point for point in s_points if point[1]])
|
|
@@ -63,6 +68,7 @@ class RT_Resistance:
|
|
|
63
68
|
Irange = f"{np.mean(s_points[:,1]):.1e}"
|
|
64
69
|
else:
|
|
65
70
|
Irange = f"{Imin:.1e}~{Imax:.1e}"
|
|
71
|
+
|
|
66
72
|
labels = LabelDict()
|
|
67
73
|
labels["instrument"] = raw_labels["instrument"]
|
|
68
74
|
labels["raw_data"] = raw_labels["raw_data"]
|
|
@@ -77,9 +83,22 @@ class RT_Resistance:
|
|
|
77
83
|
labels=labels,
|
|
78
84
|
_headers=_headers,
|
|
79
85
|
points=s_points[:,0:2],
|
|
80
|
-
ignore_outliers=IgnoreOutlierSpec(min_gap_base=1e-4,min_gap_multiple=
|
|
86
|
+
ignore_outliers=IgnoreOutlierSpec(min_gap_base=1e-4,min_gap_multiple=5),
|
|
81
87
|
))
|
|
82
|
-
|
|
88
|
+
|
|
89
|
+
# normalize
|
|
90
|
+
for data in datas:
|
|
91
|
+
data: Data
|
|
92
|
+
ymax = np.max(np.abs(data.ylim))
|
|
93
|
+
data.points = np.column_stack( [data.points[:,0], np.asarray(data.points[:,1] / ymax)])
|
|
94
|
+
data.ignore_outliers = None
|
|
95
|
+
data._ignore_outliers_spec_cache = None
|
|
96
|
+
data._points_for_plot = None
|
|
97
|
+
data._x_for_plot = None
|
|
98
|
+
data._y_for_plot = None
|
|
99
|
+
data._xlim = None
|
|
100
|
+
data._ylim = None
|
|
101
|
+
|
|
83
102
|
return datas
|
|
84
103
|
|
|
85
104
|
|
|
@@ -92,6 +111,8 @@ class RT_Resistance:
|
|
|
92
111
|
major_grid=None,
|
|
93
112
|
major_tick=TickSpec(),
|
|
94
113
|
legend=LegendSpec(fontsize=5),
|
|
114
|
+
linewidth=1,
|
|
115
|
+
marker_size=2,
|
|
95
116
|
)
|
|
96
117
|
|
|
97
118
|
|
|
@@ -104,13 +125,15 @@ class RT_Resistance:
|
|
|
104
125
|
title=None,
|
|
105
126
|
figsize=FIGSIZE,
|
|
106
127
|
linestyle_cycle= ("-",),
|
|
128
|
+
|
|
107
129
|
linecolor_cycle = (
|
|
108
|
-
"#
|
|
109
|
-
"#
|
|
110
|
-
"#
|
|
111
|
-
"#fdbb2d", "#fcfdbf",
|
|
130
|
+
"#515151", "#F14040", "#1A6FDF", "#37AD6B", "#B177DE",
|
|
131
|
+
"#CC9900", "#00CBCC", "#7D4E4E", "#8E8E00", "#FB6501",
|
|
132
|
+
"#6699CC", "#6FB802", "#f04f76", "#f86a5a", "#fb8c3c",
|
|
133
|
+
"#fdbb2d", "#fcfdbf","#2B2E83", "#E6007A", "#005F5F",
|
|
134
|
+
"#1F3D2B", "#E8C6E8","#FAB3d1",
|
|
112
135
|
),
|
|
113
|
-
linemarker_cycle = ("o",
|
|
136
|
+
linemarker_cycle = ("o",),
|
|
114
137
|
alpa_cycle = (1.0,),
|
|
115
138
|
)
|
|
116
139
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: majoplot
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.12
|
|
4
4
|
Summary: Automates scenario-specific data preprocessing and plotting workflows for condensed-matter physics labs (OriginLab COM backend + Matplotlib for preview).
|
|
5
5
|
Project-URL: Homepage, https://github.com/ponyofshadows/majoplot
|
|
6
6
|
Project-URL: Source, https://github.com/ponyofshadows/majoplot
|
|
@@ -10,8 +10,9 @@ majoplot/domain/utils.py,sha256=X4Wdab6kSBA3eBVuRzpz62Wj-1WTWZp4e9TcYMkGeb8,3332
|
|
|
10
10
|
majoplot/domain/importers/PPMS_Resistivity.py,sha256=ME58Thg_N4tFQYPfnP1ZkiOP_vzYAevF-qSuxqWoAoc,7867
|
|
11
11
|
majoplot/domain/importers/VSM.py,sha256=sEZsz_3n67jtPLy1-grP9A8K1RPVnwuQLMUSrLOtZUk,3576
|
|
12
12
|
majoplot/domain/importers/XRD.py,sha256=_CN3jKLn4vZ3Oa2cm3IcH05R_mrao2so3VTVKVEND98,2840
|
|
13
|
-
majoplot/domain/scenarios/PPMS_Resistivity/RT.py,sha256=
|
|
14
|
-
majoplot/domain/scenarios/PPMS_Resistivity/
|
|
13
|
+
majoplot/domain/scenarios/PPMS_Resistivity/RT.py,sha256=DzIOqy8BlsHWKMLc6a-LF-4lwF3p51Vs3rZcTXRW2UA,4684
|
|
14
|
+
majoplot/domain/scenarios/PPMS_Resistivity/RT_Resistivity.py,sha256=Pq5ANx0_lk6m5trJwxK8lywMzHubrfXEcLysMfhii6U,5462
|
|
15
|
+
majoplot/domain/scenarios/PPMS_Resistivity/RT_normalized.py,sha256=UnJqY3KCPDl66rLWxQ914pmW4s4_Qmv82HQgupO8zxg,5458
|
|
15
16
|
majoplot/domain/scenarios/VSM/ChiT.py,sha256=NcPxf1-OIFrRNBo1uDaU0LzpaKXU_EUDDo9_78Pk2Vs,6643
|
|
16
17
|
majoplot/domain/scenarios/VSM/ChiT_onlyZFC.py,sha256=IFhw6kCha0OxDZ5AgWeCb9UwSFJ1JOrjxQ3N2lH4Kis,6568
|
|
17
18
|
majoplot/domain/scenarios/VSM/MT.py,sha256=lnqEi6sw6pzIOaGoqkC5OWJQzROWXL32-YvtOH__Rvg,4550
|
|
@@ -24,8 +25,8 @@ majoplot/gui/main.py,sha256=v5pyi-Gb26o_lmVM4GaM_Tt_-1rTTKVRekgOcBochA0,20291
|
|
|
24
25
|
majoplot/infra/plotters/matplot.py,sha256=DE3nCfFjL9FxNbuEgggJyXlolkP1nWKmNwJElt1bgHw,12281
|
|
25
26
|
majoplot/infra/plotters/origin.py,sha256=xB80d216pmo_mXo5Lx8sGQrjQC6N0NljzzoMNG37w1g,39034
|
|
26
27
|
majoplot/infra/plotters/origin_utils/originlab_type_library.py,sha256=zxOxF7nB57zwnXSaFSoCUV64ZTHhDBDRv57exatiBoU,37398
|
|
27
|
-
majoplot-0.1.
|
|
28
|
-
majoplot-0.1.
|
|
29
|
-
majoplot-0.1.
|
|
30
|
-
majoplot-0.1.
|
|
31
|
-
majoplot-0.1.
|
|
28
|
+
majoplot-0.1.12.dist-info/METADATA,sha256=YThy-qfUqKVRb5MyaVBgVNo-ySaCV4u1mkdkACo6Gmc,2878
|
|
29
|
+
majoplot-0.1.12.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
30
|
+
majoplot-0.1.12.dist-info/entry_points.txt,sha256=zEiPXZtNyJQMvVS-Zl9psx8SpTafOcs8F9S8xGtOaBM,52
|
|
31
|
+
majoplot-0.1.12.dist-info/licenses/LICENSE,sha256=fj2NqLupbHWfA5W-8tqCpT5yjO8A4F1HcKnt_maww20,1070
|
|
32
|
+
majoplot-0.1.12.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|