When ECharts overrides are enough to standardize Superset charts
A team that wants every chart to follow corporate colors, fonts, legends and axis rules does not need to rebuild Superset. ECharts overrides change the styling of chart types that already render with ECharts, which covers most of the standard chart library. Anything that needs a new chart type or a new control in the chart panel falls outside overrides and needs a plugin instead. Deciding which side of that line each requirement sits on is the first real task, and it determines whether the work is configuration or engineering. Apache Superset is released under the Apache License 2.0 (SPDX: Apache-2.0) and has no paid edition, so there is no license fee to budget for the change. The cost is the effort to design the standard, write the override configuration, apply it in your build or deployment, and test it across the chart types your users actually open. Ask any partner to split their quote along those lines: design and rule-writing, build and deployment changes, and testing. Also ask how the override will be handled at each Superset upgrade, since the upgrade path is where styling changes are most likely to break silently. This section is one part of the customization and plugins group for Superset, which also covers branding, themes, fonts, translations, map tiles and custom visualization plugins. Read this topic alongside the theming and branding pages if your standard includes a Superset UI theme, because overrides control chart appearance while themes control the application shell. Check the Apache Superset documentation on the project's GitHub repository to confirm which configuration keys your target version accepts before you commit the standard.
Override scopes and when each fits
This table compares the three places chart styling can be set in Superset: global ECharts overrides, overrides for one chart type, and settings made per chart in the editor. Read each row as a question about who owns the change and how far it spreads. The main takeaway is that broader scopes are cheaper to standardize but make every instance and every chart shift together when they change.
| Scope | What it changes | Who maintains it | Drift risk between instances |
|---|---|---|---|
| Global overrides | Default ECharts options applied to every chart type that reads them | Platform team, through the deployment configuration | Low if config is versioned and deployed the same way everywhere; high if set by hand in each instance |
| Single chart type | Options for one family, such as bar or line charts, leaving other types alone | Platform team, with a named owner for each chart family | Medium, since a change to one type can still differ across instances that lag on releases |
| Per-chart editor settings | Individual formatting choices saved on one chart or dashboard | Dashboard owners and analysts | High, because these choices live in the metadata database and are not copied with the configuration |
| Precedence when scopes conflict | The more specific setting usually wins, so a chart-level value can hide a global standard | Whoever reviews chart changes | High if no one checks; confirm the precedence behavior for your Superset version |
| Array-valued properties | Lists such as color palettes or series order replace whole values rather than merging | Platform team writing the override | Medium, because a partial list in one scope can silently change others |
| Corporate chart standard | Palette, fonts, axis and tooltip rules agreed across the organization | Brand or data governance owner with platform sign-off | Low when the standard is kept as code and tested in staging before release |
| Plugin instead of override | New chart types or behavior that overrides cannot express | Engineering team that builds and rebuilds the image | Depends on upgrade cost when Superset and its frontend libraries change |
Handling array properties such as color palettes and series settings
ECharts treats arrays as whole values, so an override that touches one array entry usually replaces all of them. The cards below cover how that replacement works, where mismatched lengths and ordering show up, and how to test overrides against multi-series charts before they reach dashboards.
Why arrays replace whole
An override for color or series replaces the entire array from the base chart definition, not just the entry you meant to change. If you supply a three-color palette, a chart that needs five colors will fall back to the palette's cycle or to defaults, depending on the chart type. Before writing an override, read the full array in the base option and decide whether you are supplying the complete replacement. Treat each array override as a full specification.
Palette length and color order
Series take colors from the palette by index, so the same metric can change color when a dashboard adds, removes or reorders a series. A palette shorter than the number of series cycles colors, which can give two unrelated series the same color. Map your corporate colors to a fixed series order for the categories that matter most, such as revenue or a regulated segment, and confirm the palette length covers the largest multi-series chart on your dashboards.
Series-level settings by index
Series-level options such as symbol, lineStyle, label and smooth are often supplied as an array in which each position maps to a series. An override that sets three entries will leave the fourth series with the chart's default styling, or with styling that belonged to a different series after a reorder. Confirm how each chart plugin orders its series, since the order can follow query column order, a sort control or the legend, and document which index belongs to which metric.
Axis lists and secondary axes
Axis options can also be arrays, with one entry for the primary axis and another for a secondary axis. Setting a single object where the chart expects a list can hide the secondary axis or change its scale, and a list with the wrong count can attach a series to the wrong axis. Check each axis override against a chart that uses both axes, including the case where a dual-axis chart is configured with a series moved to the secondary side.
Testing with multi-series charts
Test array overrides on a saved test dashboard that contains a single-series chart, a chart with the largest series count your team uses, a stacked chart and a dual-axis chart. Change the query order, add a series and remove one, then confirm colors, markers and axes still map to the intended metrics. Keep the test dashboard and its expected colors in version control so a Superset upgrade or a palette change can be checked the same way.
Setting up a corporate chart standard with overrides
This sequence turns a written chart standard into ECharts overrides that apply consistently across Superset, with each rule tested in staging before it reaches users. The result is a configuration a reviewer can trace from the standard to the rendered chart.
Document the chart standard as testable rules
The brand or analytics owner writes the standard as a short list of rules, such as the palette order, font sizes, axis label rules, legend position, number formats and gridline use. Each rule should name the chart types it covers and a value a reviewer can check on screen. Ask the design owner to approve the list before anyone edits configuration. The step is done when every rule has a single expected value and an owner who can answer questions about it.
Map each rule to an override scope
For each rule, decide whether it applies to all charts, to one chart type, or to a single chart that needs an exception. Rules such as a shared color palette usually belong at the global level, while a legend position for pie charts belongs at the chart-type level. Record the override key path for each rule from the ECharts option structure, and flag any rule that Superset's controls already handle so it is not duplicated. The step is done when the scope map lists every rule, its target and the reason for that scope.
Apply overrides in a staging instance
The Superset administrator adds the overrides to a staging instance that runs the same Superset version as production. Confirm where overrides are set for that version, since the location depends on the release in use and the vendor documentation for that version is the reference. Keep the overrides in version control so every change is reviewable. The step is done when the staging instance loads without errors and each rule appears in the browser's rendered chart options.
Test representative charts of each type
Build a fixed set of test charts in staging, with at least one example of each chart type the organization uses, including edge cases such as very long labels, negative values, empty results and large category counts. Compare each chart against the documented standard rule by rule. Where a chart breaks a rule, decide whether the scope map or the exception is wrong, then correct it. The step is done when every test chart matches the standard or has a documented exception.
Compare rendered charts and exports
Check that the same charts look correct on the dashboard, in the explore view and in exported output, including PNG or PDF exports and any scheduled reports the team relies on. Export differences often come from fonts, sizes or theme settings outside the overrides, so record any mismatch with a screenshot and the chart ID. Hold the change until the mismatches are either fixed or accepted by the standard owner. The step is done when the comparison log shows no unexplained differences.
Promote the configuration to production
Back up the production metadata database and the current configuration before the change, then deploy the tagged configuration from version control using the team's normal release process. Ask a second reviewer to confirm the production values match the staging test record. Keep the previous configuration available so the change can be reversed quickly. The step is done when production charts match the test set and the release record links to the approved standard.
Review the standard after each upgrade
After any Superset upgrade or ECharts-related change, rerun the representative chart set and the export comparison before users rely on the new version. Check the upgrade notes for breaking changes to chart options or override handling, and confirm the override location still applies. Record the result against the standard so the next reviewer can see what was checked. The step is done when the post-upgrade run is logged and any broken rule has a fix or a documented exception.
Choosing between an override and a custom visualization plugin
When the change is visual only, such as label fonts, axis line colors, tooltip styling, legend placement or a color palette applied to every chart, an ECharts override is usually enough. The chart type keeps its existing data mapping and control panel, and the override adjusts the options the chart passes to the ECharts library. Restyling is the lowest-risk category because it changes no query logic and adds no fields to the chart editor.
- Global styling: Typography, gridlines and tooltip treatment applied across all charts, which covers most corporate chart standards.
- Palette changes: Color sequences for categorical charts, applied through the override or the theme the chart already reads.
- Per-type rules: Label rotation, legend position or similar adjustments limited to one chart type.
- Configuration-level change: The override lives in configuration, so it can be reviewed and versioned like other settings, but it still needs regression testing after each Superset upgrade.
Before approving a standard, confirm that each requested change maps to an ECharts option the chart actually exposes, and render a sample of every affected chart type.
When the request changes what a chart type does by default, such as a different starting sort order, a default number format for every bar chart, or a different default time grain, the decision depends on whether the behavior is reachable through options the chart already has. If the change only sets a different starting value for an existing control, an override or a configuration choice may be enough. If it requires new logic in how values are grouped, computed or interpreted, the work moves toward a plugin.
- Defaults on existing controls: Setting a different starting value for a control that already exists is generally an override case.
- Data handling: Changing how values are bucketed, aggregated or transformed before rendering usually requires code in the chart plugin itself.
- Interaction behavior: Click actions, drill-downs and cross-filtering depend on event handling in the plugin, so they need separate testing.
- Blast radius: A changed default applies to every existing chart of that type, including charts owners built around the previous behavior.
List every dashboard that uses the affected chart type and confirm the change with the owners before it is applied to production.
Overrides cannot add a chart type, a new field in the chart editor, or a new input that feeds the query. Those requirements need a plugin, because the plugin defines the chart's control panel and its rendering code. Treat a plugin as a build and maintenance commitment rather than a styling task. Custom plugins are compiled into your Superset image, so they follow the frontend libraries Superset uses, and changes to those libraries can require rework at upgrade time.
- New chart type: A visualization that no existing chart type can produce needs a plugin.
- New control fields: Extra inputs in the chart editor require plugin code, since overrides only change how an existing chart renders.
- Image builds: Each plugin change means a new image build and deployment, which belongs in your release process.
- Upgrade exposure: Frontend library version changes can break plugins, so the upgrade cost should be estimated before the plugin is approved.
- Ownership: Name the team that maintains the plugin after handover and the people who approve changes to it.
Before choosing a plugin, confirm that an existing chart type with an override cannot meet the requirement, then read the plugin topic for structure, build steps and upgrade cost drivers.
Security and operational considerations for chart configuration
ECharts overrides look like cosmetic settings, but they change what every viewer sees and how charts behave after an upgrade. The cards below cover who may edit them, how changes get reviewed, how staging and production stay aligned, and where access control still has to live.
Who can change overrides
Chart and theme styling is set through configuration that Superset administrators and chart owners can often reach, so the first decision is who holds that right in production. Decide which roles may edit ECharts overrides at the instance level and which may only adjust a single chart. Confirm in your own instance which Superset roles can open chart properties and dashboard settings, and remove edit rights from roles that only need to view dashboards.
Change control and review
Treat override values as configuration, not as ad hoc edits made in the UI. Store the agreed values in version control, require a second reviewer for changes that affect every chart type, and keep a dated record of who changed what. For illustrative purposes, a single change to a shared axis label style can alter dozens of dashboards at once, so it deserves the same review as any other production change.
Staging and production consistency
Overrides that look correct in one environment can differ in another if the configuration, the theme or the chart data differs. Promote the same values through staging before production, and compare a set of reference dashboards in both environments after each change. Ask your team whether your deployment process can carry these settings between instances without manual re-entry.
Overrides do not control data access
ECharts overrides change how data is drawn, not which rows a user can query. Row level security, dataset permissions and database credentials still decide what data appears in a chart. A style change never hides a value, and a styled chart can still expose sensitive data to anyone with access to the dataset. Test access controls separately from visual changes.
Upgrades can change rendering
A Superset upgrade can alter how charts render, including how default properties and chart plugins behave, so an override that worked before may shift or break afterward. Before each upgrade, back up the metadata database, read the breaking change notes in UPDATING.md, and render a set of reference charts in staging. Record the results so a rollback decision is based on evidence.
Reference chart checklist
Maintain a short list of charts that exercise every override you have set, including a chart with many series, a chart with long labels and one with empty data. Review this checklist after each style change and each upgrade. Ask the people who own dashboards to confirm that the reference charts still match what their audiences expect.
Questions teams ask before changing Superset chart styling
What drives the cost of a Superset ECharts styling standard?
The cost follows the number of chart types the standard covers, how many dashboards and owners it touches, and how much review the palette, typography and axis rules need before sign-off. A standard that sets one palette and a few defaults is a small piece of work. A standard that covers every chart type, several themes and dashboard-level exceptions takes longer to specify and test. Costs split into one-time work (design, configuration, testing, documentation) and recurring work (reviewing changes when Superset or ECharts versions change). Ask any quote to list each chart type in scope, who signs off the visual standard, and whether the upgrade effort is included.
How long does it take to roll out a chart standard?
Duration depends mainly on chart count, the number of reviewers and how many charts already exist with hand-set styling. Each chart type needs its overrides written, checked in a staging instance and reviewed by the people who own brand decisions. Existing dashboards need a sample pass to find charts that break or look wrong once the defaults change. No duration is given here because the researched facts do not supply one. Ask for a timeline in the written scope that names the chart types, the review rounds and the staging checks.
What does the work need from our team?
The work needs a named owner for the visual standard, someone who can approve colors, fonts, label rules and number formats, and access to a staging Superset with representative datasets. Engineers need to be able to edit the Superset configuration and rebuild the image or deployment that carries it. Analysts should supply a set of dashboards that show real edge cases such as long labels, many series and negative values. Without these inputs, reviews stall and the standard gets decided late in the process.
Can our internal team write ECharts overrides without outside help?
Yes, if the team has someone comfortable with JavaScript objects and the Superset configuration, and if the scope stays limited to styling rules. Overrides are configuration rather than new chart code, so a platform engineer can usually learn the precedence rules and test them. The risk grows when the team needs changes that a plugin would handle, or when several versions of Superset run at once. Build a short test dashboard that every override is checked against, and record which override sets which property so that the next person can follow the logic.
Which override changes break after a Superset upgrade?
Changes that depend on internal chart behavior or default property names are the ones most likely to break. Before any upgrade, check the breaking change notes in UPDATING.md and test the overrides in staging, as the upgrade guide advises for all changes. Keep a list of every override with its purpose, so reviewers can judge whether it still matches the new defaults. Plan this check as recurring work, not a one-off task.
When should we build a plugin instead of changing overrides?
Use overrides when the change adjusts how an existing chart type looks, such as colors, fonts, grid lines or legend placement. Build a custom visualization plugin when the chart needs a new layout, new controls or new data handling that the existing chart type cannot express. Plugins add build, test and upgrade work because they are code that must follow the React and Ant Design versions Superset uses. Ask for a written decision on each chart request so that the standard does not quietly grow into a plugin project.
When should we bring in a partner for chart styling?
Bring in a partner when the standard must be approved across several business units, when the team lacks someone who can own the configuration over time, or when the chart work runs alongside a larger Superset rollout or an upgrade. A fixed-scope engagement sets the chart types, deliverables and review steps in writing before work starts. DeployOpen implements and documents self-hosted platforms in infrastructure you control, so the overrides, their tests and their handover notes stay in your environment.
Do overrides affect security or compliance?
Styling overrides do not change who can see data, but they do change what gets loaded into the browser. Font files, external stylesheets and any remote assets must be allowed by the Content Security Policy, and a change to those settings deserves the same review as other security configuration. Record the source of every external asset in the standard so that an auditor or security reviewer can trace it. Confirm the CSP and asset rules with your security team before rollout.
How DeployOpen scopes Superset chart standards
A chart standard only holds if it is written down before anyone touches the configuration. DeployOpen starts by turning your corporate chart rules into a short written specification: which chart types the overrides cover, which ECharts properties are fixed (palette, axis label format, legend position, tooltip behavior, number formatting), which charts are exempt, and who approves a change. The scope also records which charts need a custom visualization plugin instead, so that anything beyond property overrides is priced and planned as separate work. Fixed-scope agreements, which most DeployOpen engagements are, list these items and the acceptance checks in writing before work begins, so you can see exactly what a quote covers.
Delivery happens inside your own infrastructure. The overrides are kept as configuration in your deployment repository, applied through the Superset build or config path your team already runs, and tested on a staging instance that mirrors production. Where a plugin is in scope, the code, build pipeline and container image stay in your environment, and the work is handed over with the source, the build steps and a short runbook. Ask the vendor to confirm which Superset release the overrides were tested against, and whether any step depends on a feature that changes between releases, because that dependency drives the upgrade cost later.
Upgrades are where chart standards usually drift, since a new Superset release can change chart defaults or the ECharts version beneath them. DeployOpen can cover this through a retainer that re-tests the standard against each planned upgrade in staging, reviews the release notes and UPDATING.md entries for chart-related changes, and records the results. Before you sign, confirm the retainer's response expectations, who signs off the regression results, and whether plugin code is included or billed separately. The Apache Superset GitHub releases page is the place to confirm which releases are current when you plan the first upgrade.

