Data Visualization Expert (2026 Edition)
English | Bahasa Indonesia
English
Orchestration & Integration
senior-frontend: React component architecture for chart components.
data-telemetry-expert: Analytics data pipelines feeding visualizations.
state-management-expert: Managing chart state, filters, and drill-down navigation.
performance-web-vitals: Optimizing chart rendering performance with large datasets.
sse-websocket-streaming-expert: Real-time data feeds for live dashboards.
Description
Expert guide for building production-quality data visualizations and analytics dashboards. Covers D3.js v7 (low-level SVG/Canvas), Recharts (React-native charts), Chart.js 4 (lightweight canvas), Nivo (D3-powered React components), Tremor (dashboard components), and Apache ECharts. Includes responsive charts, real-time updates, accessibility, large dataset optimization, and dashboard layout patterns.
Trigger Conditions
- Building analytics dashboards or admin panels with charts.
- Creating data visualizations (line, bar, pie, scatter, heatmap, treemap).
- Implementing real-time updating charts or live data feeds.
- Choosing a charting library for React, Vue, or vanilla JS.
- Optimizing chart performance with large datasets (10K+ data points).
Library Selection Guide
| Library |
Framework |
Rendering |
Customization |
Learning Curve |
Best For |
| D3.js v7 |
Agnostic |
SVG/Canvas |
★★★★★ |
High |
Custom visualizations |
| Recharts |
React |
SVG |
★★★★ |
Low |
Standard React charts |
| Nivo |
React |
SVG/Canvas |
★★★★★ |
Medium |
Beautiful, animated charts |
| Tremor |
React |
SVG (Recharts) |
★★★ |
Very Low |
Dashboards, KPI cards |
| Chart.js 4 |
Agnostic |
Canvas |
★★★ |
Low |
Lightweight, simple charts |
| ECharts |
Agnostic |
Canvas/SVG |
★★★★★ |
Medium |
Complex, interactive, large data |
Recommendation: Use Tremor for rapid dashboard prototyping. Use Recharts for standard React charts. Use D3.js only for highly custom visualizations.
Core Patterns
1. Recharts (React Standard)
import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';
function RevenueChart({ data }: { data: { date: string; revenue: number }[] }) {
return (
<ResponsiveContainer width="100%" height={400}>
<LineChart data={data}>
<CartesianGrid strokeDasharray="3 3" stroke="#374151" />
<XAxis dataKey="date" stroke="#9CA3AF" />
<YAxis stroke="#9CA3AF" tickFormatter={(v) => `$${(v / 1000).toFixed(0)}K`} />
<Tooltip
contentStyle={{ backgroundColor: '#1F2937', border: 'none', borderRadius: 8 }}
formatter={(value: number) => [`$${value.toLocaleString()}`, 'Revenue']}
/>
<Line type="monotone" dataKey="revenue" stroke="#8B5CF6" strokeWidth={2} dot={false} />
</LineChart>
</ResponsiveContainer>
);
}
2. Tremor Dashboard Components
import { Card, Metric, Text, AreaChart, BarList, Grid } from '@tremor/react';
function AnalyticsDashboard({ metrics, chartData, topPages }) {
return (
<Grid numItemsMd={2} numItemsLg={3} className="gap-6">
<Card>
<Text>Total Revenue</Text>
<Metric>$845,230</Metric>
</Card>
<Card>
<Text>Revenue Over Time</Text>
<AreaChart
data={chartData}
index="month"
categories={['Revenue', 'Expenses']}
colors={['violet', 'rose']}
valueFormatter={(v) => `$${(v / 1000).toFixed(0)}K`}
/>
</Card>
<Card>
<Text>Top Pages</Text>
<BarList data={topPages} className="mt-4" />
</Card>
</Grid>
);
}
3. Real-Time Chart Updates
import { useEffect, useState } from 'react';
function LiveMetricsChart() {
const [data, setData] = useState<{ time: string; value: number }[]>([]);
useEffect(() => {
const es = new EventSource('/api/metrics/stream');
es.onmessage = (event) => {
const point = JSON.parse(event.data);
setData((prev) => [...prev.slice(-60), point]); // Keep last 60 points
};
return () => es.close();
}, []);
return <LineChart data={data} /* ... */ />;
}
4. Large Dataset Optimization
- Use Canvas rendering (ECharts, Chart.js) for >5K data points.
- Implement data aggregation on the server (downsample to 500-1000 points for display).
- Use windowed rendering — only render visible data points.
- Apply debounced zoom/pan to prevent excessive re-renders.
Dashboard Layout Patterns
- KPI Row → Charts → Tables: Top metrics cards, then charts, then detail tables.
- Filter Sidebar: Global date range, category, and dimension filters.
- Drill-down: Click chart segment → navigate to detail view.
- Export: CSV/PNG/PDF export for all charts.
Bahasa Indonesia
Integrasi Orkestrasi
senior-frontend: Arsitektur komponen React untuk komponen chart.
data-telemetry-expert: Pipeline data analitik yang mengisi visualisasi.
state-management-expert: Mengelola state chart, filter, dan navigasi drill-down.
Deskripsi
Panduan ahli untuk membangun visualisasi data dan dashboard analitik berkualitas produksi. Mencakup D3.js v7, Recharts, Chart.js 4, Nivo, Tremor, dan Apache ECharts. Termasuk chart responsif, update real-time, aksesibilitas, optimasi dataset besar, dan pola layout dashboard.
Kondisi Pemicu
- Membangun dashboard analitik atau panel admin dengan chart.
- Membuat visualisasi data (line, bar, pie, scatter, heatmap, treemap).
- Mengimplementasikan chart yang update real-time atau feed data langsung.
- Memilih library charting untuk React, Vue, atau vanilla JS.
1---2name: data-visualization-expert3description: Expert guide for data visualization, charts, and dashboards using D3.js, Recharts, Chart.js, Nivo, and Tremor / Panduan ahli visualisasi data, chart, dan dashboard menggunakan D3.js, Recharts, Chart.js, Nivo, dan Tremor.4---56# Data Visualization Expert (2026 Edition)78[English](#english) | [Bahasa Indonesia](#bahasa-indonesia)910---1112<a name="english"></a>13## English1415### Orchestration & Integration16- **`senior-frontend`**: React component architecture for chart components.17- **`data-telemetry-expert`**: Analytics data pipelines feeding visualizations.18- **`state-management-expert`**: Managing chart state, filters, and drill-down navigation.19- **`performance-web-vitals`**: Optimizing chart rendering performance with large datasets.20- **`sse-websocket-streaming-expert`**: Real-time data feeds for live dashboards.2122### Description23Expert guide for building production-quality data visualizations and analytics dashboards. Covers D3.js v7 (low-level SVG/Canvas), Recharts (React-native charts), Chart.js 4 (lightweight canvas), Nivo (D3-powered React components), Tremor (dashboard components), and Apache ECharts. Includes responsive charts, real-time updates, accessibility, large dataset optimization, and dashboard layout patterns.2425### Trigger Conditions26- Building analytics dashboards or admin panels with charts.27- Creating data visualizations (line, bar, pie, scatter, heatmap, treemap).28- Implementing real-time updating charts or live data feeds.29- Choosing a charting library for React, Vue, or vanilla JS.30- Optimizing chart performance with large datasets (10K+ data points).3132---3334### Library Selection Guide3536| Library | Framework | Rendering | Customization | Learning Curve | Best For |37|---------|-----------|-----------|---------------|----------------|----------|38| D3.js v7 | Agnostic | SVG/Canvas | ★★★★★ | High | Custom visualizations |39| Recharts | React | SVG | ★★★★ | Low | Standard React charts |40| Nivo | React | SVG/Canvas | ★★★★★ | Medium | Beautiful, animated charts |41| Tremor | React | SVG (Recharts) | ★★★ | Very Low | Dashboards, KPI cards |42| Chart.js 4 | Agnostic | Canvas | ★★★ | Low | Lightweight, simple charts |43| ECharts | Agnostic | Canvas/SVG | ★★★★★ | Medium | Complex, interactive, large data |4445**Recommendation:** Use **Tremor** for rapid dashboard prototyping. Use **Recharts** for standard React charts. Use **D3.js** only for highly custom visualizations.4647### Core Patterns4849#### 1. Recharts (React Standard)5051```tsx52import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer } from 'recharts';5354function RevenueChart({ data }: { data: { date: string; revenue: number }[] }) {55 return (56 <ResponsiveContainer width="100%" height={400}>57 <LineChart data={data}>58 <CartesianGrid strokeDasharray="3 3" stroke="#374151" />59 <XAxis dataKey="date" stroke="#9CA3AF" />60 <YAxis stroke="#9CA3AF" tickFormatter={(v) => `$${(v / 1000).toFixed(0)}K`} />61 <Tooltip62 contentStyle={{ backgroundColor: '#1F2937', border: 'none', borderRadius: 8 }}63 formatter={(value: number) => [`$${value.toLocaleString()}`, 'Revenue']}64 />65 <Line type="monotone" dataKey="revenue" stroke="#8B5CF6" strokeWidth={2} dot={false} />66 </LineChart>67 </ResponsiveContainer>68 );69}70```7172#### 2. Tremor Dashboard Components7374```tsx75import { Card, Metric, Text, AreaChart, BarList, Grid } from '@tremor/react';7677function AnalyticsDashboard({ metrics, chartData, topPages }) {78 return (79 <Grid numItemsMd={2} numItemsLg={3} className="gap-6">80 <Card>81 <Text>Total Revenue</Text>82 <Metric>$845,230</Metric>83 </Card>84 <Card>85 <Text>Revenue Over Time</Text>86 <AreaChart87 data={chartData}88 index="month"89 categories={['Revenue', 'Expenses']}90 colors={['violet', 'rose']}91 valueFormatter={(v) => `$${(v / 1000).toFixed(0)}K`}92 />93 </Card>94 <Card>95 <Text>Top Pages</Text>96 <BarList data={topPages} className="mt-4" />97 </Card>98 </Grid>99 );100}101```102103#### 3. Real-Time Chart Updates104105```tsx106import { useEffect, useState } from 'react';107108function LiveMetricsChart() {109 const [data, setData] = useState<{ time: string; value: number }[]>([]);110111 useEffect(() => {112 const es = new EventSource('/api/metrics/stream');113 es.onmessage = (event) => {114 const point = JSON.parse(event.data);115 setData((prev) => [...prev.slice(-60), point]); // Keep last 60 points116 };117 return () => es.close();118 }, []);119120 return <LineChart data={data} /* ... */ />;121}122```123124#### 4. Large Dataset Optimization125- Use **Canvas** rendering (ECharts, Chart.js) for >5K data points.126- Implement **data aggregation** on the server (downsample to 500-1000 points for display).127- Use **windowed rendering** — only render visible data points.128- Apply **debounced zoom/pan** to prevent excessive re-renders.129130### Dashboard Layout Patterns131- **KPI Row → Charts → Tables**: Top metrics cards, then charts, then detail tables.132- **Filter Sidebar**: Global date range, category, and dimension filters.133- **Drill-down**: Click chart segment → navigate to detail view.134- **Export**: CSV/PNG/PDF export for all charts.135136---137138<a name="bahasa-indonesia"></a>139## Bahasa Indonesia140141### Integrasi Orkestrasi142- **`senior-frontend`**: Arsitektur komponen React untuk komponen chart.143- **`data-telemetry-expert`**: Pipeline data analitik yang mengisi visualisasi.144- **`state-management-expert`**: Mengelola state chart, filter, dan navigasi drill-down.145146### Deskripsi147Panduan ahli untuk membangun visualisasi data dan dashboard analitik berkualitas produksi. Mencakup D3.js v7, Recharts, Chart.js 4, Nivo, Tremor, dan Apache ECharts. Termasuk chart responsif, update real-time, aksesibilitas, optimasi dataset besar, dan pola layout dashboard.148149### Kondisi Pemicu150- Membangun dashboard analitik atau panel admin dengan chart.151- Membuat visualisasi data (line, bar, pie, scatter, heatmap, treemap).152- Mengimplementasikan chart yang update real-time atau feed data langsung.153- Memilih library charting untuk React, Vue, atau vanilla JS.