---
updatedAt: 2026-10-08T14:40:04.000Z
agentTools:
  projectIndex: https://documentation.picsellia.com/llms.txt
---

# Charts

`Charts` let you build custom aggregate visualizations over your `Datalake` `Data`, alongside the *Query Language* and *Embeddings* exploration modes detailed [here](https://documentation.picsellia.com/docs/datalake-overview#3-exploration-modes-and-filtering).

For instance, you can track the volume of `Data` uploaded over time, or build a histogram of file sizes.

For a Computer Vision project, this kind of aggregate view is what surfaces problems that are invisible image by image: a `DataTag` breakdown can reveal a class imbalance before it skews training, a chart grouped by `Source` can confirm all your acquisition sites or cameras are still feeding the `Datalake`, and a volume-over-time chart can flag a sudden drop or spike in ingestion worth investigating.

This feature has also been designed to support very large volumes of `Data`. The computation of a chart is highly optimized and performed on Picsellia's side; this way, you do not need to fetch all your `Datalake` and associated properties/`Metadata`/`Tag` locally with the SDK anymore, which is painful and time-consuming, to build custom metrics. Everything is centralized on Picsellia and available for every member of the *Organization*.

## 1. Accessing Charts

`Charts` are available in two places:

* The *Charts* tab at the top of the `Datalake`, listing every chart created so far.

<Image src="https://files.readme.io/f3ac3296c1f7be5c7172554b2f3a5d85dc42cea214127872900c288c19dea56b-image.png" align="center" caption="Charts tab in the Datalake" border={true} />

* The *Charts* option of the exploration mode selector next to the search bar, which displays the `Data` grid alongside the `Charts` panel for side-by-side exploration.

  <Image src="https://files.readme.io/cf876b69a5aa8c34afbec67c41573fe8202095036b6c4eb084ed18279073ea92-image.png" align="center" caption="Charts exploration mode" border={true} />

Clicking on a bar of a chart automatically filters the `Data` displayed in the chosen view (*Grid*, *Table*, or *Details*) to only the ones matching that bar, by applying the equivalent query in the search bar. This drill-down is especially useful when `Charts` are opened in the side-by-side exploration mode: spotting an anomaly on a chart (a spike, a drop, an overrepresented `Tag`) and immediately visualizing the corresponding images or videos, right next to it, without having to rebuild the query yourself.

<Image src="https://files.readme.io/c390017d7ff577491eac8439fccab79b74055082db766d8144f674ef030caeba-image.png" align="center" caption="Clicking on a bar from a Chart will display associated images by automatically generating the associated query" border={true} />

<Callout icon="📘" theme="info">
  ### Charts are available across the platform

  This same `Charts` mechanism, including the click-to-filter drill-down, is also available on `DatasetVersion` (detailed [here](https://documentation.picsellia.com/docs/dataset-analytics-and-charts)), `Evaluation` (detailed [here](https://documentation.picsellia.com/docs/experiment-evaluation-charts)), and `Deployment` predictions overviews.
</Callout>

<Callout icon="📊" theme="success">
  ### Zoom in your chart

  You can zoom in on a specific part of your chart by drawing a square around the region of interest, this part will then be focused on. To reset the zoom you simply need to double click anywhere on the Chart.


  <Image src="https://files.readme.io/b9e51b2d74fa4da63d5d0987edfdd9bb8ac142647fe0195704b1576317bd54fa-image.png" align="center" caption="Zoom in" border={true} />

</Callout>

## 2. Creating a Chart

Click *+ Create chart* to open the creation form:

* **Name**: the name of your chart.
* **Aggregate Function**: `AVG`, `COUNT`, `MAX`, `MIN`, or `SUM`.
* **Aggregate Field**: the field to aggregate, for instance `ID` (to count `Data`) or a `Custom Metadata` field.
* **Group By Field**: the field used to bucket the results, for instance `CREATED_AT`, `CONTENT_TYPE`, `UPLOAD_STATUS`, `FILE_SIZE`, `TAG`, `SOURCE`, `METADATA`, `CUSTOM_METADATA`, `DATASET_VERSION`, or `DEPLOYMENT`. This field is optional: leaving it empty produces a *Metric* chart, a single aggregate value computed over the whole selection instead of a breakdown.
* **JSON Key**: when the aggregated or grouped field is a `Custom Metadata` one, an additional *JSON Key* input tells Picsellia which key to read. It suggests the keys declared in the `Custom Metadata` schema of the `Datalake` (see [Metadata](https://documentation.picsellia.com/docs/datalake-metadata#3-the-custom-metadata-schema)), so you do not have to remember how each one is spelled, and still accepts a key typed by hand when the schema does not declare it.
* **Advanced filtering**: optionally scope the chart to a subset of `Data` using the same *Query Language* as the *Search Bar*, detailed [here](https://documentation.picsellia.com/docs/datalake-query-language). It allows the Chart to only consider a subset of Data.

  <Image src="https://files.readme.io/b6b0d42a5b5f624c7e665f1cdd3760fe024768c5d9ae0f4a2ccee6868f57527d-image.png" align="center" caption="Chart creation form" border={true} />

  <Image src="https://files.readme.io/dde8748a3a5196bcba627a529e9aea38a812eef7d35320deeffced5812336f7e-image.png" align="center" caption="JSON key configuration in case of a chart using Custom Metadata" border={true} />

Once created and computed, your chart is displayed as a card showing the resulting visualization, for instance, a bar chart of the *Data count* aggregated by creation date.

Please note that the "Aggregate field" and "Group by field" vary depending on the object for which you are creating a `Chart`; indeed, you do not have access to the same properties/fields whether you are creating a `Chart` in your `Datalake`, `DatasetVersion` (annotation- or attributes-related fields will additionally be available), `Evaluation` (COCO metrics-related fields will be available) or `Deployment` predictions.

## 3. Managing Charts

From a chart's card, you can:

* **Recompute**: refresh the chart with the latest `Data`.
* **Update** or **Delete**: from the *...* menu.

<Image src="https://files.readme.io/a18ef0da68728aad9924666d6ebb1482a87a54e128594615fdfb16d9cc3bb5f6-image.png" align="center" caption="Manage a Chart" border={true} />