XY is an open-source Python charting library for web applications, notebooks, and static exports. It supports declarative charts and matplotlib-style conventions, with customization through Python, CSS, or Tailwind; outputs include HTML, PNG, SVG, and PDF.
For small charts, XY sends individual points to the browser. For large datasets, its Rust core computes the data needed for the current screen resolution and can represent the result as a density surface. Panning, zooming, hovering, and selections rerun the process for the visible range, while selections can return the original data rows.
The library is installable with pip or uv and supports interactions such as pan, zoom, hover, crosshairs, callbacks, and linked charts, along with layers, facets, responsive layouts, themes, axes, legends, and tooltips. The repository describes XY as an alpha project and notes that its matplotlib compatibility does not yet cover all charts and functionality.