streamlit-echarts
A Streamlit component to display ECharts.
What it is and what it does
streamlit-echarts wraps the Apache ECharts JavaScript library as a Streamlit component, letting you embed rich, interactive charts directly into Streamlit apps. It accepts ECharts option dictionaries and renders them with support for theming, custom event handlers, and user interactions like point selection and canvas brushing. The package also provides a convenience wrapper for PyECharts chart instances, letting you convert existing PyECharts code to Streamlit with minimal changes.
The component is designed for developers building data dashboards and analytical apps who want chart interactivity beyond Streamlit's built-in plotting functions. It requires Python >= 3.10 and depends only on streamlit itself. You can optionally install the pyecharts extra to use the st_pyecharts wrapper, or work directly with ECharts option dictionaries for full control.
Use it for:
- Build interactive dashboards with bar, line, scatter, and map visualizations that respond to user clicks and selections.
- Render PyECharts chart instances directly in Streamlit without manual JSON conversion.
- Add custom JavaScript event handlers to charts for advanced interactions like dynamic filtering or drill-down behavior.
- Display geographic data using GeoJSON maps registered with the Map() helper.
- Create responsive charts that adapt to different screen sizes and CSS dimensions.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Renders interactive ECharts visualizations in Streamlit apps, with support for custom themes, event handling, selection interactions, and optional PyECharts integration.
Yes. Low install friction, active maintenance, MIT license, no known vulnerabilities, and a single clean dependency make this a safe choice. Install it if you need ECharts interactivity in Streamlit; the API is straightforward and the component is stable enough for production dashboards.
Install
streamlit-echarts on PyPI
pip
pip install streamlit-echartsuv
uv add streamlit-echartspoetry
poetry add streamlit-echartsInstalling streamlit-echarts
Before you install
Low friction: pure Python wheel with a single runtime dependency on streamlit. Actively maintained with a recent release 67 days ago and steady commit activity.
License in practice
MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects with minimal obligations.
Quickstart
pip install streamlit-echarts
import streamlit as st
from streamlit_echarts import st_echarts
options = {
"xAxis": {"type": "category", "data": ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]},
"yAxis": {"type": "value"},
"series": [{"data": [820, 932, 901, 934, 1290, 1330, 1320], "type": "bar"}],
}
st_echarts(options=options, height="400px")
Requires Python >= 3.10 and a working Streamlit environment.
Verify before relying
- Whether the component handles large datasets without performance degradation.
- Browser compatibility matrix and minimum supported browser versions.
- Whether custom event handlers have access to the full ECharts API surface.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — streamlit |
| Maintenance | actively maintained — 67 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 257,602/month — #8,440 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: streamlit_echarts-0.7.0-py3-none-any.whl
Tags
More Visualization packages
matplotlib creates static, animated, and…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
plotlyPlotly is an interactive, browser-based…
permissive · top 1,000 on PyPI
graphvizGenerates DOT language source code for graph…
permissive · top 1,000 on PyPI
streamlitStreamlit transforms Python scripts into…
permissive · top 1,000 on PyPI
leatherLeather is a lightweight Python charting…
permissive · top 1,000 on PyPI
altexAltex wraps Altair to provide a simple,…
permissive · top 15,000 on PyPI
pyechartspyecharts wraps Apache ECharts to generate…
permissive · top 5,000 on PyPI
streamlit-plotly-eventsCaptures click, select, and hover events from…
unclear · top 15,000 on PyPI
streamlit-cardA Streamlit component that renders interactive…
permissive · top 15,000 on PyPI
streamlit-pdfAdds a PDF viewer component to Streamlit apps…
permissive · top 15,000 on PyPI
streamlit-aggridEmbeds ag-grid, a feature-rich data grid…
permissive · top 5,000 on PyPI
streamlit-pdf-viewerStreamlit component that renders PDF documents…
unclear · top 15,000 on PyPI
streamlit-code-editorEmbeds an interactive code editor component…
unclear · top 15,000 on PyPI
reflex-components-rechartsProvides Recharts charting components for use…
permissive · top 15,000 on PyPI
streamlit-vertical-sliderAdds a vertical slider widget to Streamlit apps…
unclear · top 15,000 on PyPI