Skip to content

Commit a26123e

Browse files
committed
remove use_defaults buttons and auto fill ranges with values if the user doesn't provide any
1 parent a2b780b commit a26123e

File tree

4 files changed

+71
-113
lines changed

4 files changed

+71
-113
lines changed

post-processing/config_handler.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ def from_template(self):
6464
"plot_type": None,
6565
"title": None,
6666
"x_axis": {"value": None, "units": {"custom": None},
67-
"range": {"use_default": True, "min": None, "max": None}},
67+
"range": {"min": None, "max": None}},
6868
"y_axis": {"value": None, "units": {"custom": None},
6969
"scaling": {"custom": None},
70-
"range": {"use_default": True, "min": None, "max": None}},
70+
"range": {"min": None, "max": None}},
7171
"filters": {"and": [], "or": []},
7272
"series": [],
7373
"column_types": {},

post-processing/plot_handler.py

+18-17
Original file line numberDiff line numberDiff line change
@@ -258,24 +258,25 @@ def get_axis_min_max(df, axis):
258258

259259
column = axis["value"]
260260
axis_range = axis["range"]
261-
axis_min = axis_range["min"] if axis_range["min"] != 'None' else None
262-
axis_max = axis_range["max"] if axis_range["max"] != 'None' else None
261+
axis_min = axis_range["min"] if axis_range["min"] else 0.0
262+
axis_max = axis_range["max"] if axis_range["max"] else 0.0
263263

264264
# FIXME: str types and user defined datetime ranges not currently supported
265-
axis_min_element = np.nanmin(df[column])
266-
axis_max_element = np.nanmax(df[column])
267-
268-
# use defaults if type is datetime
269-
if (is_datetime(df[column])):
270-
datetime_range = axis_max_element - axis_min_element
271-
buffer_time = datetime_range*0.2
272-
axis_min = axis_min_element - buffer_time
273-
axis_max = axis_max_element + buffer_time
274-
275-
elif axis_min is None or axis_max is None:
276-
axis_min = (axis_min_element*0.6 if min(df[column]) >= 0
277-
else math.floor(axis_min_element*1.2))
278-
axis_max = (axis_max_element*0.6 if max(df[column]) <= 0
279-
else math.ceil(axis_max_element*1.2))
265+
if (column):
266+
axis_min_element = np.nanmin(df[column])
267+
axis_max_element = np.nanmax(df[column])
268+
269+
# use defaults if type is datetime
270+
if (is_datetime(df[column])):
271+
datetime_range = axis_max_element - axis_min_element
272+
buffer_time = datetime_range*0.2
273+
axis_min = axis_min_element - buffer_time
274+
axis_max = axis_max_element + buffer_time
275+
276+
elif axis_min is None or axis_max is None or axis_min == axis_max:
277+
axis_min = (axis_min_element*0.6 if min(df[column]) >= 0
278+
else math.floor(axis_min_element*1.2))
279+
axis_max = (axis_max_element*0.6 if max(df[column]) <= 0
280+
else math.ceil(axis_max_element*1.2))
280281

281282
return axis_min, axis_max

post-processing/streamlit_post_processing.py

+15-22
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import streamlit as st
66
from config_handler import ConfigHandler, load_config, read_config
77
from post_processing import PostProcessing
8+
from plot_handler import get_axis_min_max
89

910
# drop-down lists
1011
operators = ["==", "!=", "<", ">", "<=", ">="]
@@ -179,20 +180,16 @@ def axis_select(label: str, axis: dict, plot_type: str):
179180
units_select(label, axis)
180181

181182
# FIXME: add ability to use a custom value for only one of min or max
182-
disable_user_range = plot_type != 'line'
183-
use_default_ranges = st.checkbox("default axis range",
184-
axis.get("range").get("use_default") if not disable_user_range else True,
185-
key="{0}_axis_range_use_default".format(label),
186-
disabled=disable_user_range,
187-
help="{0} {1}".format(
188-
"Uncheck to assign custom minimum and maximum values to axis.",
189-
"Custom ranges are not implemented for datetime types."))
190-
if not use_default_ranges:
191-
axis_range_min, axis_range_max = st.columns(2)
192-
with axis_range_min:
193-
st.number_input("{0}-axis minimum".format(label), key="{0}_axis_range_min".format(label))
194-
with axis_range_max:
195-
st.number_input("{0}-axis maximum".format(label), key="{0}_axis_range_max".format(label))
183+
range = get_axis_min_max(df, axis)
184+
axis_range_min, axis_range_max = st.columns(2)
185+
with axis_range_min:
186+
st.number_input("{0}-axis minimum".format(label),
187+
value=range[0],
188+
key="{0}_axis_range_min".format(label))
189+
with axis_range_max:
190+
st.number_input("{0}-axis maximum".format(label),
191+
value=range[1],
192+
key="{0}_axis_range_max".format(label))
196193

197194
# scaling select
198195
if label == "y":
@@ -311,9 +308,8 @@ def update_axes():
311308
x_column = state.x_axis_column
312309
x_units_column = state.x_axis_units_column
313310
x_units_custom = state.x_axis_units_custom
314-
x_range_use_default = state.x_axis_range_use_default
315-
x_range_min = None if x_range_use_default else state.x_axis_range_min
316-
x_range_max = None if x_range_use_default else state.x_axis_range_max
311+
x_range_min = state.x_axis_range_min
312+
x_range_max = state.x_axis_range_max
317313

318314
y_column = state.y_axis_column
319315
y_units_column = state.y_axis_units_column
@@ -322,9 +318,8 @@ def update_axes():
322318
y_scaling_series = state.y_axis_scaling_series
323319
y_scaling_x = state.y_axis_scaling_x_value
324320
y_scaling_custom = state.y_axis_custom_scaling_val
325-
y_range_use_default = state.y_axis_range_use_default
326-
y_range_min = None if y_range_use_default else state.y_axis_range_min
327-
y_range_max = None if y_range_use_default else state.y_axis_range_max
321+
y_range_min = state.y_axis_range_min
322+
y_range_max = state.y_axis_range_max
328323

329324
# update columns
330325
config.x_axis["value"] = x_column
@@ -344,10 +339,8 @@ def update_axes():
344339
config.y_axis["units"] = {"column": y_units_column}
345340
config.column_types[y_units_column] = "str"
346341

347-
config.x_axis["range"]["use_default"] = x_range_use_default
348342
config.x_axis["range"]["min"] = x_range_min
349343
config.x_axis["range"]["max"] = x_range_max
350-
config.y_axis["range"]["use_default"] = y_range_use_default
351344
config.y_axis["range"]["min"] = y_range_min
352345
config.y_axis["range"]["max"] = y_range_max
353346

0 commit comments

Comments
 (0)