# Cross Filter

{% hint style="warning" %}
This feature is in beta. The specifications may change without notice.
{% endhint %}

The Cross Filter feature allows you to synchronize the display targets of multiple charts when legends or axes are filtered on a specific chart.

Filtering is performed on data loaded in the frontend, so changing filters does not trigger additional job execution.

## Behavior

* Legends and axes selection status is synchronized across configured charts
  * When a legend on a chart is selected: Only data for the selected legends is displayed
  * When hovering over chart content: Highlighting of the hovered legend is synchronized
  * When selecting a range on an axis: Only data within the selected range is displayed

## Configuration

* Select Cross Filter from the menu that appears in the top-right corner when hovering over a chart on the Grid Page
* Set a `Key`
  * Set the same `Key` for charts that you want to synchronize with the same value
  * Depending on the selected chart, you can set `Keys` for both "Axis" and "Legend"
    * For table charts, set a `Key` for each column you want to target

## Specifications

* Supported Charts
  * XY Chart
  * XYZ Chart
  * Pie Chart
  * Funnel Chart
  * Table Chart
    * Selection states from other charts are reflected in table charts, but filtering content from table charts is not reflected in other charts
* Data Filtering Scope
  * Filtering is performed on data loaded in the frontend
  * SQL is not re-executed, so filtering data by time period on an XY chart axis cannot be reflected in pie chart aggregations
* Legend Filtering
  * Filtering is performed based on the "string or numeric" values of the selected legend names
* Axis Filtering
  * Range filtering is performed based on the "string or numeric" lower and upper bounds of the selected axis

## Notes

* Legend → Axis Coordination
  * Data display targets for axes are specified by range
  * Therefore, when multiple legends are selected on the legend side, not only the selected legends but also targets included in the range of the selected legends will be displayed
* Axis → Axis Coordination
  * When axes are set as strings, range specification is affected by display order, so if display orders are different, they may not coordinate correctly
