diff --git a/labellines/core.py b/labellines/core.py index 011a4d4..5b32e13 100644 --- a/labellines/core.py +++ b/labellines/core.py @@ -283,11 +283,22 @@ def labelLines( else: converter = ax.xaxis.get_converter() time_classes = (_SwitchableDateConverter, DateConverter, ConciseDateConverter) - if isinstance(converter, time_classes): - xvals = [ - num2date(x).replace(tzinfo=ax.xaxis.get_units()) - for x in xvals # type: ignore - ] + if xvals is None: + raise ValueError( + "xvals must be a tuple of two floats or a list of floats." + f"Got {xvals} instead." + ) + elif isinstance(converter, time_classes): + xvals_dates = [] + for x in xvals: + if isinstance(x, datetime): + x_datetime = x + elif isinstance(x, np.datetime64): + x_datetime = x.astype(datetime) + else: + x_datetime = num2date(x) + xvals_dates.append(x_datetime.replace(tzinfo=ax.xaxis.get_units())) + xvals = xvals_dates txts = [] try: