-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata.py
More file actions
68 lines (52 loc) · 3.6 KB
/
data.py
File metadata and controls
68 lines (52 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from .configuration import *
from .statistics import *
from .data_helpers import *
def dataframes_from_config(config, histogram_or_empty='', histogram_index_or_none=None):
default_normalizing_dataframes = [None, None]
main_and_diff_distributions = [[], []]
already_normalized = [[], []]
settings = []
has_bands = False
# use axis labels as data column headers
x_title = read_configuration_value(config, key='x_title', index=histogram_index_or_none)
y_titles = read_configuration_subplot_values(config, key='y_title', defaults=['__no_default__', '__use_main__'], index=histogram_index_or_none)
# condition will be used as legend title by tsplot
condition = read_configuration_value(config, key='legend_title', default='')
bin_style = read_configuration_value(config, key='bin_style', default='step')
centered = bin_style == 'center'
x_lim = read_configuration_value(config, key='x_lim', default=None, index=histogram_index_or_none)
if read_configuration_value(config, key='err_estimator', default='asymmetric_hessian_error') == 'asymmetric_hessian_error':
err_estimator = asymmetric_hessian_error
else:
err_estimator = standard_error
data_path = read_configuration_value(config, key='data_path', default=".")
config_distributions = read_configuration_value(config, key='distributions')
for distribution in config_distributions:
main_and_diff_normalized_dataframe_or_none, distribution_has_bands, \
main_and_diff_distributions_are_normalized = read_distribution(data_path,
distribution,
centered,
condition,
x_title,
y_titles,
x_lim,
histogram_or_empty=histogram_or_empty,
err_estimator=err_estimator,
settings=settings,
main_and_diff_distributions=main_and_diff_distributions,
config_distributions=config_distributions)[1:]
for i in range(2):
if main_and_diff_normalized_dataframe_or_none[i] is not None:
default_normalizing_dataframes[i] = main_and_diff_normalized_dataframe_or_none[i]
already_normalized[i].append(main_and_diff_distributions_are_normalized[i])
if distribution_has_bands:
has_bands = distribution_has_bands
for i, default_normalizing_dataframe in enumerate(default_normalizing_dataframes):
if default_normalizing_dataframe is not None:
for distribution, is_already_normalized in zip(main_and_diff_distributions[i], already_normalized[i]):
if not is_already_normalized:
for df in distribution:
df[y_titles[i]] /= default_normalizing_dataframe[y_titles[i]]
for i in range(2):
main_and_diff_distributions[i] = [pd.concat(dataframes) if len(dataframes) else None for dataframes in main_and_diff_distributions[i]]
return main_and_diff_distributions[0], main_and_diff_distributions[1], settings, has_bands