Skip to content

[Bug]: Axes.pcolorfast() not working with datetime #27559

Closed as not planned
Closed as not planned
@AndyXi163

Description

@AndyXi163

Bug summary

As of Dec. 11 2023, Axes.pcolorfast() seems to not work with datetime; see #27450 for more details.

Code for reproduction

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as dt
import matplotlib as mpl
import datetime

np.random.seed(19680801)


'''
Directly inputting datetime.datetime without processing them seems to generate compile errors for pcolorfast().
I have used date2num() to ensure that the graph prints correctly despite that such operations may defy the purpose of conducting such tests.
'''
basedate_x = datetime.datetime(2023, 12, 6, 1, 30, 30)
basedate_y = datetime.datetime(2024, 5, 5, 12, 15, 45)
dates_x = [(basedate_x + datetime.timedelta(days=1*i, hours=6*i, minutes=20*i,seconds=0)) for i in range(10)]
dates_y = [(basedate_y + datetime.timedelta(days=1*i, hours=8*i, minutes=30*i,seconds=0)) for i in range(10)]
data = np.random.rand(0, 100)


fig, ax = plt.subplots()

pc = ax.pcolorfast(dates_x, dates_y, data)

ax.set_xlabel('Sample datetime')
ax.set_ylabel('Sample data')
ax.set_title('Sample test case for pcolorfast()')

plt.show()

Actual outcome

Traceback (most recent call last):
File "personal directory omitted", line 23, in
pc = ax.pcolorfast(dates_x, dates_y, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\andyx\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\matplotlib_init_.py", line 1478, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\andyx\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\matplotlib\axes_axes.py", line 6501, in pcolorfast
self.update_datalim(np.array([[xl, yb], [xr, yt]]))
File "C:\Users\andyx\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\matplotlib\axes_base.py", line 2510, in update_datalim
if not np.any(np.isfinite(xys)):
^^^^^^^^^^^^^^^^
TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

Expected outcome

It has been assumed that a graph should be produced similar to the one below, but with actual datetime as axes:
pcolorfast_plot

Additional information

This is part of a test case for issue #26864 ; same issue has been met when the same code is ran on matplotlib ver 3.7.1 on Google Colab.

Operating system

Windows 10

Matplotlib Version

3.8.2

Matplotlib Backend

No response

Python version

3.11.7

Jupyter version

No response

Installation

pip

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions