> **Documentation Index:** Fetch the complete configuration index at https://yagr.tech/en/llms.txt

# About

Yagr is a high-level library used to render HTML5 Canvas charts based on the extra-fast library [uPlot](https://github.com/leeoniya/uPlot).

## Why Yagr?

Why not use uPlot directly? uPlot is a flexible library that comes with an amazing API you can use to create your own plugins and implement different visualizations, only it's too low-level. If you need a lot of common chart [features](#features) like a [legend tooltip](https://yagr.tech/en/plugins/tooltip.md#tooltip), [stacking](https://yagr.tech/en/api/scales.md#stacking), and [normalization](https://yagr.tech/en/api/scales.md#Normalization), you'll have to implement them manually with uPlot. Yagr already has many of those features in place. Yagr is also configurable, meaning you can extend it or customize its look and behavior, while it also lets you extend uPlot objects directly.

## Why not Yagr

If you aren't looking for Yagr features but instead need something specific that isn't in Yagr, use uPlot directly or check the [issues](https://github.com/yandex-cloud/yagr/issues). Otherwise, I recommend using and trying to expand Yagr, but also feel free to ask questions and bring up ideas on our [Issues Page](https://github.com/yandex-cloud/yagr/issues).

## Features

-   [Lines, areas, columns, and dots as visualization types. Configurable per series](https://yagr.tech/en/api/visualization.md#visualization-types)
-   [Configurable Legend Tooltip](https://yagr.tech/en/plugins/tooltip.md#tooltip)
-   [Axes with extra options for decimal-level precision](https://yagr.tech/en/api/axes.md#axes)
-   [Scales with configurable range functions and transformations](https://yagr.tech/en/api/scales.md#scales)
-   [Plot lines and bands. Configurable draw layer](https://yagr.tech/en/plugins/plot-lines.md#plot-lines)
-   [Responsive charts](https://yagr.tech/en/api/settings.md#settings.adaptive) (requires [ResizeObserver](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver))
-   [High-level support of stacked areas/columns](https://yagr.tech/en/api/scales.md#stacking)
-   [Light/Dark theme](https://yagr.tech/en/api/settings.md#Theme)
-   [Data normalization](https://yagr.tech/en/api/scales.md#Normalization)
-   [Configurable crosshairs, cursor markers and snapping](https://yagr.tech/en/api/cursor.md#cursor)
-   Typescript
-   [Localization](https://yagr.tech/en/api/settings.md#localization)
-   [CSS Variables in color names](https://yagr.tech/en/api/css.md#css)
-   [Paginated inline legend](https://yagr.tech/en/plugins/legend.md#legend)
-   [Error handling and extended hooks](https://yagr.tech/en/api/lifecycle.md#hooks)
-   [Data alignment and interpolation for missing data](https://yagr.tech/en/api/data-processing.md#data-alignment)
