Skip to content

Commit 71c1385

Browse files
committed
Silence warning in _determine_cmap_params
1 parent 6acd92f commit 71c1385

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

xarray/plot/utils.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,15 @@ def _determine_cmap_params(
189189
else:
190190
mpl = attempt_import("matplotlib")
191191

192+
if plot_data.dtype.kind == "m":
193+
unit, _ = np.datetime_data(plot_data.dtype)
194+
zero = np.timedelta64(0, unit)
195+
elif plot_data.dtype.kind == "M":
196+
unit, _ = np.datetime_data(plot_data.dtype)
197+
zero = np.datetime64(0, unit)
198+
else:
199+
zero = 0.0
200+
192201
if isinstance(levels, Iterable):
193202
levels = sorted(levels)
194203

@@ -197,15 +206,15 @@ def _determine_cmap_params(
197206
# Handle all-NaN input data gracefully
198207
if calc_data.size == 0:
199208
# Arbitrary default for when all values are NaN
200-
calc_data = np.array(0.0)
209+
calc_data = np.array(zero)
201210

202211
# Setting center=False prevents a divergent cmap
203212
possibly_divergent = center is not False
204213

205214
# Set center to 0 so math below makes sense but remember its state
206215
center_is_none = False
207216
if center is None:
208-
center = 0
217+
center = zero
209218
center_is_none = True
210219

211220
# Setting both vmin and vmax prevents a divergent cmap
@@ -240,10 +249,10 @@ def _determine_cmap_params(
240249

241250
if possibly_divergent:
242251
levels_are_divergent = (
243-
isinstance(levels, Iterable) and levels[0] * levels[-1] < 0
252+
isinstance(levels, Iterable) and levels[0] * levels[-1] < zero
244253
)
245254
# kwargs not specific about divergent or not: infer defaults from data
246-
divergent = (vmin < 0 < vmax) or not center_is_none or levels_are_divergent
255+
divergent = (vmin < zero < vmax) or not center_is_none or levels_are_divergent
247256
else:
248257
divergent = False
249258

0 commit comments

Comments
 (0)