or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

chart-components.mdchart-plugins.mddata-transformation.mdform-data.mdindex.mdquery-building.md
tile.json

chart-plugins.mddocs/

Chart Plugins

Chart plugin classes provide different visualization types for time series data. Each plugin extends the base ECharts plugin architecture with specific chart configurations and behaviors.

Capabilities

Generic Timeseries Chart Plugin

The main timeseries chart plugin that supports configurable chart types through form data configuration.

/**
 * Generic timeseries chart plugin supporting multiple visualization types
 * Supports line, area, bar, scatter, and step chart configurations
 */
class EchartsTimeseriesChartPlugin extends EchartsChartPlugin<
  EchartsTimeseriesFormData,
  EchartsTimeseriesChartProps
> {
  constructor();
}

Usage:

import { EchartsTimeseriesChartPlugin } from "@superset-ui/plugin-chart-echarts";

const plugin = new EchartsTimeseriesChartPlugin();

Area Chart Plugin

Specialized plugin for area charts with filled regions below the line.

/**
 * Area chart plugin for visualizing data with filled areas
 * Automatically sets area: true in form data
 */
class EchartsAreaChartPlugin extends EchartsChartPlugin<
  EchartsTimeseriesFormData,
  EchartsTimeseriesChartProps
> {
  constructor();
}

Line Chart Plugin

Standard line chart visualization for showing trends over time.

/**
 * Line chart plugin for standard line visualizations
 * Sets seriesType to EchartsTimeseriesSeriesType.Line
 */
class EchartsTimeseriesLineChartPlugin extends EchartsChartPlugin<
  EchartsTimeseriesFormData,
  EchartsTimeseriesChartProps
> {
  constructor();
}

Bar Chart Plugin

Vertical bar chart visualization for discrete time periods.

/**
 * Bar chart plugin for bar-based time series visualization
 * Sets seriesType to EchartsTimeseriesSeriesType.Bar
 */
class EchartsTimeseriesBarChartPlugin extends EchartsChartPlugin<
  EchartsTimeseriesFormData,
  EchartsTimeseriesChartProps
> {
  constructor();
}

Scatter Chart Plugin

Scatter plot visualization for showing individual data points.

/**
 * Scatter chart plugin for scatter plot visualizations
 * Sets seriesType to EchartsTimeseriesSeriesType.Scatter
 */
class EchartsTimeseriesScatterChartPlugin extends EchartsChartPlugin<
  EchartsTimeseriesFormData,
  EchartsTimeseriesChartProps
> {
  constructor();
}

Smooth Line Chart Plugin

Smooth line chart with curve interpolation between data points.

/**
 * Smooth line chart plugin with curve interpolation
 * Sets seriesType to EchartsTimeseriesSeriesType.Smooth
 */
class EchartsTimeseriesSmoothLineChartPlugin extends EchartsChartPlugin<
  EchartsTimeseriesFormData,
  EchartsTimeseriesChartProps
> {
  constructor();
}

Step Chart Plugin

Step-based line visualization showing discrete value changes.

/**
 * Step chart plugin for step-based line visualization
 * Creates stepped lines between data points
 */
class EchartsTimeseriesStepChartPlugin extends EchartsChartPlugin<
  EchartsTimeseriesFormData,
  EchartsTimeseriesChartProps
> {
  constructor();
}

Plugin Metadata

Each plugin includes comprehensive metadata defining its capabilities:

interface ChartMetadata {
  behaviors: Behavior[];
  category: string;
  credits: string[];
  description: string;
  exampleGallery: { url: string }[];
  supportedAnnotationTypes: AnnotationType[];
  name: string;
  tags: string[];
  thumbnail: string;
}

Common Plugin Features

All timeseries plugins support:

  • Interactive Charts: Zoom, pan, and selection interactions
  • Drill-to-Detail: Navigate to detailed views
  • Drill-By: Explore data by different dimensions
  • Annotations: Event, Formula, Interval, and Timeseries annotations
  • Advanced Analytics: Forecasting and statistical operations
  • Cross-filtering: Dashboard filter interactions

Plugin Registration

import { chartPluginRegistry } from "@superset-ui/core";
import { EchartsTimeseriesLineChartPlugin } from "@superset-ui/plugin-chart-echarts";

// Register plugin
const plugin = new EchartsTimeseriesLineChartPlugin();
chartPluginRegistry.registerValue("echarts_timeseries_line", plugin);

Base Plugin Class

/**
 * Base ECharts chart plugin class
 */
class EchartsChartPlugin<
  T extends SqlaFormData = SqlaFormData,
  P extends ChartProps = ChartProps,
> extends ChartPlugin<T, P> {
  constructor(props: {
    buildQuery: (formData: T) => QueryContext[];
    controlPanel: ControlPanelConfig;
    loadChart: () => Promise<any>;
    metadata: ChartMetadata;
    transformProps: (chartProps: P) => any;
  });
}