Skip to content

Commit e6fcfd9

Browse files
authored
Merge pull request #717 from avcopan/dev
More plotting improvements/fixes
2 parents f21dd20 + e3633ef commit e6fcfd9

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/autochem/util/plot.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,17 @@ def regular_scale(val_range: tuple[float, float]) -> alt.Scale:
169169
return alt.Scale(domain=val_range)
170170

171171

172+
def regular_scale_axis(val_range: tuple[float, float]) -> alt.Axis:
173+
"""Generate a nice regular scale axis.
174+
175+
:param val_range: Range
176+
:return: Axis
177+
"""
178+
val_min, val_max = val_range
179+
fmt = ".1f" if (val_max - val_min) < 3 else ".0f"
180+
return alt.Axis(format=fmt)
181+
182+
172183
def log_scale(val_range: tuple[float, float]) -> alt.Scale:
173184
"""Generate a log scale specification.
174185
@@ -188,7 +199,7 @@ def log_scale_axis(val_range: tuple[float, float]) -> alt.Axis:
188199
fmt = ".0e" if max_exp > 3 else alt.Undefined
189200
vals = log_scale_values(val_range)
190201
label_expr_condition = " ||\n".join(
191-
f"(abs(datum.value - {v}) < 1e-5)" for v in vals
202+
f"(abs(datum.value - {v}) / abs({v}) < 1e-5)" for v in vals
192203
)
193204
label_expr = f"({label_expr_condition}) ? datum.label : ''"
194205
return alt.Axis(format=fmt, values=log_scale_ticks(val_range), labelExpr=label_expr)
@@ -291,6 +302,9 @@ def transformed_spline_interpolator(
291302
:param x_data: X data
292303
:return: Y interpolator
293304
"""
305+
valid = np.isfinite(y_data)
306+
x_data = np.compress(valid, x_data)
307+
y_data = np.compress(valid, y_data)
294308
interp_trans_ = CubicSpline(x_trans(x_data), y_trans(y_data))
295309

296310
def interp_(x: Any) -> np.ndarray:

0 commit comments

Comments
 (0)