{"library":"nc-time-axis","title":"Matplotlib cftime Axis Support","description":"nc-time-axis (current version 1.4.1) provides seamless integration for plotting `cftime.datetime` objects on `matplotlib` axes. It handles various calendar types and automatically formats tick labels. The library is actively maintained with releases focusing on compatibility with `matplotlib` and `cftime` updates, as well as bug fixes and minor enhancements.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install nc-time-axis"],"cli":null},"imports":["import nc_time_axis","from nc_time_axis import CFTimeFormatter","from nc_time_axis import CalendarDateTime"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import cftime\nimport matplotlib.pyplot as plt\nimport nc_time_axis # This import registers the converters\nimport numpy as np\n\n# Create some sample cftime data\nx_values = np.linspace(0, 6 * np.pi, 100)\ny_values = 0.5 * x_values + np.sin(x_values)\ntimes = cftime.num2date(x_values, units=\"days since 2000-01-01\", calendar=\"noleap\")\n\n# Plotting with cftime.datetime objects on the x-axis\nfig, ax = plt.subplots(1, 1)\nax.plot(times, y_values)\n\nax.set_xlabel(\"Time\")\nax.set_ylabel(\"Value\")\nax.set_title(\"Plot with cftime.datetime Axis\")\n\n# For explicit tick formatting, use CFTimeFormatter\n# formatter = nc_time_axis.CFTimeFormatter(\"%Y-%m-%d\", \"noleap\")\n# ax.xaxis.set_major_formatter(formatter)\n\nplt.tight_layout()\nplt.show()","lang":"python","description":"This example demonstrates how to plot `cftime.datetime` objects on a Matplotlib axis using `nc-time-axis`. Simply importing `nc_time_axis` registers the necessary converters. You can optionally use `CFTimeFormatter` for custom tick label formatting.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"1.4.1","pypi_latest":"1.4.1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":7.7,"avg_import_s":0.91,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.8,"mem_mb":19.5,"disk_size":"183.4M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.7,"import_time_s":0.62,"mem_mb":19.5,"disk_size":"177M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.25,"mem_mb":21.2,"disk_size":"199.2M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.5,"import_time_s":1.14,"mem_mb":21.3,"disk_size":"192M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.02,"mem_mb":20.9,"disk_size":"186.0M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.9,"import_time_s":1.1,"mem_mb":20.9,"disk_size":"178M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.93,"mem_mb":21.3,"disk_size":"185.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.3,"import_time_s":1.04,"mem_mb":21.3,"disk_size":"177M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":null,"import_time_s":0.6,"mem_mb":18.6,"disk_size":"184.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"nc-time-axis","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"noisy","install_time_s":9,"import_time_s":0.64,"mem_mb":18.6,"disk_size":"181M"}]}}