echarts
Apache EChartsを用いて、ReactやVue、JavaScriptでインタラクティブなグラフやダッシュボード、データに基づいた図を作成し、ビジネスの現場で分かりやすく情報を伝える表現を支援するSkill。
📜 元の英語説明(参考)
Create interactive data visualizations with Apache ECharts. Use when a user asks to build charts, dashboards, or data-driven graphics using ECharts in React, Vue, or vanilla JavaScript applications.
🇯🇵 日本人クリエイター向け解説
Apache EChartsを用いて、ReactやVue、JavaScriptでインタラクティブなグラフやダッシュボード、データに基づいた図を作成し、ビジネスの現場で分かりやすく情報を伝える表現を支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o echarts.zip https://jpskill.com/download/14856.zip && unzip -o echarts.zip && rm echarts.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/14856.zip -OutFile "$d\echarts.zip"; Expand-Archive "$d\echarts.zip" -DestinationPath $d -Force; ri "$d\echarts.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
echarts.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
echartsフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
ECharts — エンタープライズデータ可視化
概要
あなたは、複雑なデータ可視化のための強力なチャートライブラリである Apache ECharts の専門家です。開発者が、アニメーション、テーマ、および大規模データセットのサポート(数百万のデータポイントに対する Canvas + WebGL レンダリング)を備えた、線、棒、円、散布図、ヒートマップ、ツリー、サンキー、地理、およびカスタムチャートタイプを使用して、インタラクティブなダッシュボードを作成するのを支援します。
指示
React 統合
// echarts-for-react ラッパーの使用
import ReactECharts from "echarts-for-react";
function SalesChart({ data }) {
const option = {
title: { text: "Monthly Sales", left: "center" },
tooltip: {
trigger: "axis",
formatter: (params) => {
return params.map(p => `${p.seriesName}: $${p.value.toLocaleString()}`).join("<br/>");
},
},
legend: { bottom: 0, data: ["Revenue", "Costs", "Profit"] },
xAxis: { type: "category", data: data.map(d => d.month) },
yAxis: { type: "value", axisLabel: { formatter: "${value}" } },
series: [
{ name: "Revenue", type: "bar", data: data.map(d => d.revenue), color: "#4f46e5" },
{ name: "Costs", type: "bar", data: data.map(d => d.costs), color: "#ef4444" },
{ name: "Profit", type: "line", data: data.map(d => d.profit), color: "#22c55e",
smooth: true, areaStyle: { opacity: 0.1 } },
],
toolbox: {
feature: {
saveAsImage: {}, // PNG としてダウンロード
dataZoom: {}, // データにズーム
restore: {}, // ビューをリセット
},
},
dataZoom: [{ type: "slider", start: 0, end: 100 }], // タイムラインスクラバー
};
return <ReactECharts option={option} style={{ height: 500 }} />;
}
// ドリルダウン付きの円グラフ
function CategoryBreakdown({ data }) {
const option = {
tooltip: { trigger: "item", formatter: "{b}: {c} ({d}%)" },
series: [{
type: "pie",
radius: ["40%", "70%"], // ドーナツチャート
avoidLabelOverlap: true,
itemStyle: { borderRadius: 8, borderColor: "#fff", borderWidth: 2 },
label: { show: true, formatter: "{b}\n{d}%" },
emphasis: { label: { fontSize: 16, fontWeight: "bold" } },
data: data.map(d => ({ value: d.count, name: d.category })),
}],
};
return <ReactECharts option={option} style={{ height: 400 }} />;
}
// リアルタイムストリーミングチャート
function LiveMetrics() {
const chartRef = useRef(null);
useEffect(() => {
const interval = setInterval(() => {
const chart = chartRef.current?.getEchartsInstance();
if (!chart) return;
// 新しいデータポイントを追加し、最も古いものを削除
chart.setOption({
series: [{ data: [...currentData, newPoint].slice(-60) }],
});
}, 1000);
return () => clearInterval(interval);
}, []);
return <ReactECharts ref={chartRef} option={baseOption} />;
}
高度なチャート
// サンキーダイアグラム(フローの可視化)
const sankeyOption = {
series: [{
type: "sankey",
data: [
{ name: "Organic" }, { name: "Paid" }, { name: "Referral" },
{ name: "Signup" }, { name: "Activation" }, { name: "Paid User" },
],
links: [
{ source: "Organic", target: "Signup", value: 5000 },
{ source: "Paid", target: "Signup", value: 3000 },
{ source: "Referral", target: "Signup", value: 2000 },
{ source: "Signup", target: "Activation", value: 6000 },
{ source: "Signup", target: "Churned", value: 4000 },
{ source: "Activation", target: "Paid User", value: 3500 },
],
}],
};
// ヒートマップ(GitHub のコントリビューションのようなカレンダースタイル)
const calendarHeatmap = {
visualMap: { min: 0, max: 100, type: "piecewise", orient: "horizontal", left: "center" },
calendar: { range: "2026", cellSize: ["auto", 15] },
series: [{
type: "heatmap",
coordinateSystem: "calendar",
data: dailyData.map(d => [d.date, d.commits]),
}],
};
インストール
npm install echarts echarts-for-react # React
npm install echarts # Vanilla JS
例
例 1: ユーザーが echarts のセットアップを依頼
ユーザー: "プロジェクトのために echarts をセットアップするのを手伝ってください"
エージェントは以下を行う必要があります。
- システム要件と前提条件を確認する
- echarts をインストールまたは構成する
- 初期プロジェクト構造をセットアップする
- セットアップが正しく動作することを確認する
例 2: ユーザーが echarts で機能を構築することを依頼
ユーザー: "echarts を使用してダッシュボードを作成してください"
エージェントは以下を行う必要があります。
- コンポーネントまたは構成をスキャフォールドする
- 適切なデータソースに接続する
- 要求された機能を実装する
- 出力をテストおよび検証する
ガイドライン
- React には echarts-for-react — ライフサイクル管理のためにラッパーを使用します。命令的な API 呼び出しではなく、
optionをプロパティとして渡します。 - 大規模データには Canvas — ECharts はデフォルトで Canvas を使用します。100K 以上のポイントをスムーズに処理します。数百万の場合は WebGL に切り替えます。
- インタラクションには Toolbox — Toolbox で
saveAsImage、dataZoom、restoreを有効にします。ユーザーはズームとダウンロードを期待します。 - レスポンシブなリサイズ — ECharts はコンテナに合わせて自動的にリサイズされます。CSS の幅/高さを持つ div でラップします。
- テーマシステム — チャート全体で一貫したスタイルを実現するために、ECharts のテーマを使用します。https://echarts.apache.org/en/theme-builder.html でカスタムテーマを作成します。
- 遅延レンダリング — React でパフォーマンスのために
lazyUpdate={true}を使用します。不要な再レンダリングを防ぎます。 - 共有データには Dataset — 複数のシリーズが同じデータソースを共有する場合は、ECharts の
datasetコンポーネントを使用します。 - サーバーサイドレンダリング — サーバーサイドでチャート画像を生成するには、
echarts-node-exportを使用します(レポート、メール)。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
ECharts — Enterprise Data Visualization
Overview
You are an expert in Apache ECharts, the powerful charting library for complex data visualizations. You help developers create interactive dashboards with line, bar, pie, scatter, heatmap, tree, sankey, geographic, and custom chart types with animations, themes, and large dataset support (Canvas + WebGL rendering for millions of data points).
Instructions
React Integration
// Using echarts-for-react wrapper
import ReactECharts from "echarts-for-react";
function SalesChart({ data }) {
const option = {
title: { text: "Monthly Sales", left: "center" },
tooltip: {
trigger: "axis",
formatter: (params) => {
return params.map(p => `${p.seriesName}: $${p.value.toLocaleString()}`).join("<br/>");
},
},
legend: { bottom: 0, data: ["Revenue", "Costs", "Profit"] },
xAxis: { type: "category", data: data.map(d => d.month) },
yAxis: { type: "value", axisLabel: { formatter: "${value}" } },
series: [
{ name: "Revenue", type: "bar", data: data.map(d => d.revenue), color: "#4f46e5" },
{ name: "Costs", type: "bar", data: data.map(d => d.costs), color: "#ef4444" },
{ name: "Profit", type: "line", data: data.map(d => d.profit), color: "#22c55e",
smooth: true, areaStyle: { opacity: 0.1 } },
],
toolbox: {
feature: {
saveAsImage: {}, // Download as PNG
dataZoom: {}, // Zoom into data
restore: {}, // Reset view
},
},
dataZoom: [{ type: "slider", start: 0, end: 100 }], // Timeline scrubber
};
return <ReactECharts option={option} style={{ height: 500 }} />;
}
// Pie chart with drill-down
function CategoryBreakdown({ data }) {
const option = {
tooltip: { trigger: "item", formatter: "{b}: {c} ({d}%)" },
series: [{
type: "pie",
radius: ["40%", "70%"], // Donut chart
avoidLabelOverlap: true,
itemStyle: { borderRadius: 8, borderColor: "#fff", borderWidth: 2 },
label: { show: true, formatter: "{b}\n{d}%" },
emphasis: { label: { fontSize: 16, fontWeight: "bold" } },
data: data.map(d => ({ value: d.count, name: d.category })),
}],
};
return <ReactECharts option={option} style={{ height: 400 }} />;
}
// Real-time streaming chart
function LiveMetrics() {
const chartRef = useRef(null);
useEffect(() => {
const interval = setInterval(() => {
const chart = chartRef.current?.getEchartsInstance();
if (!chart) return;
// Append new data point, remove oldest
chart.setOption({
series: [{ data: [...currentData, newPoint].slice(-60) }],
});
}, 1000);
return () => clearInterval(interval);
}, []);
return <ReactECharts ref={chartRef} option={baseOption} />;
}
Advanced Charts
// Sankey diagram (flow visualization)
const sankeyOption = {
series: [{
type: "sankey",
data: [
{ name: "Organic" }, { name: "Paid" }, { name: "Referral" },
{ name: "Signup" }, { name: "Activation" }, { name: "Paid User" },
],
links: [
{ source: "Organic", target: "Signup", value: 5000 },
{ source: "Paid", target: "Signup", value: 3000 },
{ source: "Referral", target: "Signup", value: 2000 },
{ source: "Signup", target: "Activation", value: 6000 },
{ source: "Signup", target: "Churned", value: 4000 },
{ source: "Activation", target: "Paid User", value: 3500 },
],
}],
};
// Heatmap (calendar-style, like GitHub contributions)
const calendarHeatmap = {
visualMap: { min: 0, max: 100, type: "piecewise", orient: "horizontal", left: "center" },
calendar: { range: "2026", cellSize: ["auto", 15] },
series: [{
type: "heatmap",
coordinateSystem: "calendar",
data: dailyData.map(d => [d.date, d.commits]),
}],
};
Installation
npm install echarts echarts-for-react # React
npm install echarts # Vanilla JS
Examples
Example 1: User asks to set up echarts
User: "Help me set up echarts for my project"
The agent should:
- Check system requirements and prerequisites
- Install or configure echarts
- Set up initial project structure
- Verify the setup works correctly
Example 2: User asks to build a feature with echarts
User: "Create a dashboard using echarts"
The agent should:
- Scaffold the component or configuration
- Connect to the appropriate data source
- Implement the requested feature
- Test and validate the output
Guidelines
- echarts-for-react for React — Use the wrapper for lifecycle management; pass
optionas prop, not imperative API calls - Canvas for large data — ECharts uses Canvas by default; it handles 100K+ points smoothly; switch to WebGL for millions
- Toolbox for interaction — Enable
saveAsImage,dataZoom,restorein the toolbox; users expect to zoom and download - Responsive resize — ECharts auto-resizes with the container; wrap in a div with CSS width/height
- Theme system — Use ECharts themes for consistent styling across charts; create custom themes at https://echarts.apache.org/en/theme-builder.html
- Lazy rendering — Use
lazyUpdate={true}in React for performance; prevents unnecessary re-renders - Dataset for shared data — Use ECharts
datasetcomponent when multiple series share the same data source - Server-side rendering — Use
echarts-node-exportfor generating chart images server-side (reports, emails)