import cftime
import holoviews as hv
import xarray as xr
from bokeh.io import output_notebook
hv.extension('bokeh', 'matplotlib')
Because the gregorian calendar is always assumed for the time axis, these plots each look the same (however in reality there should be no Feb. 29th in the noleap calendar case).
gregorian_dates = [cftime.DatetimeGregorian(2000, 2, 28),
cftime.DatetimeGregorian(2000, 3, 1),
cftime.DatetimeGregorian(2000, 3, 2)]
noleap_dates = [cftime.DatetimeNoLeap(2000, 2, 28),
cftime.DatetimeNoLeap(2000, 3, 1),
cftime.DatetimeNoLeap(2000, 3, 2)]
ds_gregorian = xr.DataArray(range(3), [('time', gregorian_dates)], name='gregorian').to_dataset()
ds_noleap = xr.DataArray(range(3), [('time', noleap_dates)], name='noleap').to_dataset()
hv_gregorian = hv.Dataset(ds_gregorian)
hv_gregorian.to(hv.Curve)
hv_noleap = hv.Dataset(ds_noleap)
hv_noleap.to(hv.Curve)