Skip to main content

data-visualization

Data visualization principles. Chart selection, D3, Recharts, Chart.js, accessibility, performance.

소스 정보

저장소
skeletorflet/opencode-kit
최근 소스 활동
2026년 4월 3일 15:32
감지된 SKILL.md 언어
영어
스타
9
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
data-visualization
description
Data visualization principles. Chart selection, D3, Recharts, Chart.js, accessibility, performance.
# Data Visualization > Visualizations should reduce cognitive load, not add it. --- ## 1. Chart Selection Matrix | Question | Chart Type | |----------|-----------| | How does X change over time? | Line, Area | | How do categories compare? | Bar, Column | | What\'s the distribution? | Histogram, Box plot | | What\'s the relationship? | Scatter, Bubble | | What\'s the composition? | Stacked Bar, Donut | | Where is it? | Map, Choropleth | | How far from goal? | Gauge, Bullet chart | | What\'s the flow? | Sankey, Funnel | | What\'s the hierarchy? | Treemap, Sunburst | --- ## 2. Library Selection | Library | Best For | Bundle Size | |---------|----------|------------| | **Recharts** | React, declarative | ~300kb | | **Chart.js** | Quick setup, canvas | ~200kb | | **D3.js** | Custom, complex | ~80kb (modular) | | **Plotly.js** | Scientific, 3D | ~3MB | | **Vega-Lite** | Grammar of graphics | ~800kb | | **Observable Plot** | Exploratory, modern | ~100kb | --- ## 3. Color Principles ### Sequential (single metric intensity) ``` Light → Dark of one hue #EFF6FF → #1D4ED8 (blue scale) ``` ### Diverging (pos/neg from center) ``` Red ← 0 → Blue Use for: profit/loss, temperature, sentiment ``` ### Categorical (distinct groups) ``` Use max 8 colors Tableau 10 / ColorBrewer are proven palettes Always test for color blindness (deuteranopia most common) ``` --- ## 4. Axes & Labels ``` Axes rules: ├── Always label axes with units ├── Start y-axis at 0 for bar charts ├── Truncated y-axis OK for line charts (show context) ├── Use consistent tick intervals └── Rotate labels only as last resort Number formatting: ├── 1,234,567 → 1.2M ├── 0.1234 → 12.3% ├── $1,000,000 → $1M └── Tooltip shows full precision ``` --- ## 5. Interaction Patterns | Interaction | Implementation | |-------------|---------------| | **Hover tooltip** | Show exact values, context | | **Click to filter** | Highlight selected, gray others | | **Zoom/pan** | For time series with large ranges | | **Legend toggle** | Click to show/hide series | | **Drill-down** | Click segment to see breakdown | | **Brush select** | Drag to select date range | --- ## 6. Recharts Quick Patterns ```jsx // Responsive container (always wrap) <ResponsiveContainer width="100%" height={300}> <LineChart data={data}> <CartesianGrid strokeDasharray="3 3" stroke="#f0f0f0" /> <XAxis dataKey="date" tickFormatter={formatDate} /> <YAxis tickFormatter={v => `$${v/1000}k`} /> <Tooltip content={<CustomTooltip />} /> <Legend /> <Line type="monotone" dataKey="revenue" stroke="#3B82F6" strokeWidth={2} dot={false} /> </LineChart> </ResponsiveContainer> ``` --- ## 7. Performance ``` Optimization strategies: ├── Canvas over SVG for > 1000 data points ├── Aggregate/bin data server-side ├── Virtualize large datasets ├── Debounce resize handlers ├── Use useMemo for data transformations └── WebWorkers for heavy computations Thresholds: ├── SVG: < 500 elements ├── Canvas (Chart.js): < 10,000 points ├── WebGL (Deck.gl): millions of points ``` --- ## 8. Accessibility - Always provide data table alternative - Use `aria-label` on chart containers - Don\'t rely on color alone (add patterns/shapes) - Keyboard-navigable tooltips - Test with screen readers (NVDA, VoiceOver) --- ## 9. Anti-Patterns | ❌ Don\'t | ✅ Do | |----------|-------| | 3D charts | Flat 2D | | Pie with > 5 slices | Bar chart | | Dual y-axis | Two separate charts | | Animation on every render | Animate only on data change | | Unlabeled axes | Always label + units | | Truncated bar chart y-axis | Start at 0 | """
GitHub에서 보기