Files
claude-code-skills-reference/ppt-creator/references/ORCHESTRATION_DATA_CHARTS.md
daymade d1d531d14e Release v1.2.0: Split ORCHESTRATION.md for best practices compliance
Critical improvements:
- Split 900-line ORCHESTRATION.md into 3 specialized files
  - ORCHESTRATION_OVERVIEW.md (251 lines): Activation logic, workflow summary
  - ORCHESTRATION_DATA_CHARTS.md (141 lines): Data synthesis & chart generation
  - ORCHESTRATION_PPTX.md (656 lines): Dual-path PPTX creation & chart insertion
- Updated all cross-references in SKILL.md and WORKFLOW.md
- Fixed all resources/ path references in previous commits

Compliance improvements:
- Resolved BLOCKER #1: Path references (resources/ → references/)
- Resolved BLOCKER #2: File length (900 lines → 251/141/656 lines)
- Compliance score: 6.5/10 → 8.0/10
- Publication ready:  YES

Package details:
- 13 files total (SKILL.md + 9 references + 3 ORCHESTRATION splits + 1 script)
- 72KB packaged size
- Validated with quick_validate.py

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 08:25:12 +08:00

141 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ORCHESTRATION_DATA_CHARTS.md
> **Purpose**: Detailed specifications for Stage 8b (Data Synthesis) and Stage 8c (Chart Generation) in orchestration mode.
>
> **Navigation**: [← Back to Overview](ORCHESTRATION_OVERVIEW.md) | [Next: PPTX Creation →](ORCHESTRATION_PPTX.md)
---
## Stage 8b: Data Synthesis
### When to Synthesize Data
Generate synthetic data when:
1. refs.md contains data specifications (e.g., "Solar LCOE: $0.38/kWh → $0.05/kWh")
2. User did NOT upload CSV/Excel files
3. Charts require data to render (not just conceptual diagrams)
### Data Synthesis Guidelines
**Source of Truth**: Use refs.md data specifications
Example refs.md content:
```markdown
## Chart 1: Renewable Energy Cost Trends (2010-2024)
Data source: IRENA Renewable Power Generation Costs 2024
- Solar PV LCOE: $0.38/kWh (2010) → $0.05/kWh (2024), -87% decline
- Onshore Wind LCOE: $0.09/kWh (2010) → $0.04/kWh (2024), -56% decline
- Coal baseline (comparison): $0.11/kWh (stable)
Required CSV: data/cost_trend.csv
Columns: year, solar_pv_cost, onshore_wind_cost, coal_cost
```
**Python Code Pattern** (generate CSV):
```python
import pandas as pd
import numpy as np
# Synthesize cost_trend.csv
years = list(range(2010, 2025))
solar_costs = np.linspace(0.38, 0.05, len(years)) # -87% decline
wind_costs = np.linspace(0.09, 0.04, len(years)) # -56% decline
coal_costs = [0.11] * len(years) # stable baseline
df = pd.DataFrame({
'year': years,
'solar_pv_cost': solar_costs,
'onshore_wind_cost': wind_costs,
'coal_cost': coal_costs
})
df.to_csv('output/data/cost_trend.csv', index=False)
```
**Key Principles**:
- Match refs.md specifications exactly (start/end values, trends)
- Add realistic noise (±3-5%) to avoid straight lines
- Use authoritative source calibration (IRENA/IEA/IPCC/WHO/World Bank)
- Document assumptions in data file headers or README
**File Organization**:
```
/output/data/
├── cost_trend.csv
├── capacity_growth.csv
├── employment.csv
├── solar_roi.csv
└── README.md (documents synthesis methodology)
```
---
## Stage 8c: Chart Generation
### Chart Generation Script Pattern
Create a comprehensive `generate_charts.py` script that reads CSV data and generates all PNG charts.
**Template Structure**:
```python
#!/usr/bin/env python3
"""Generate all charts for presentation"""
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('Agg') # Non-interactive backend
# Chinese font configuration
plt.rcParams['font.sans-serif'] = ['SimHei', 'Arial Unicode MS', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
def create_chart_1():
"""Cost Trend Line Chart"""
df = pd.read_csv('data/cost_trend.csv')
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(df['year'], df['solar_pv_cost'], marker='o', label='太阳能光伏', linewidth=2)
ax.plot(df['year'], df['onshore_wind_cost'], marker='s', label='陆上风能', linewidth=2)
ax.plot(df['year'], df['coal_cost'], linestyle='--', label='煤电(对比)', linewidth=2, alpha=0.7)
ax.set_xlabel('年份', fontsize=12)
ax.set_ylabel('平准化度电成本 ($/kWh)', fontsize=12)
ax.set_title('可再生能源成本趋势 (2010-2024)', fontsize=14, fontweight='bold')
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.savefig('assets/cost_trend.png', dpi=180, bbox_inches='tight')
plt.close()
print("✓ Generated: assets/cost_trend.png")
# Call all chart generation functions
if __name__ == "__main__":
create_chart_1()
create_chart_2()
# ... (all charts)
print("\n✅ All charts generated successfully")
```
**Execution Pattern**:
```bash
# Background execution to avoid blocking
cd /output
python generate_charts.py
# OR using uv if dependencies unavailable
uv run --with pandas --with matplotlib generate_charts.py
```
**Quality Standards**:
- DPI: 180 (presentation-quality)
- Size: 10×6 inches (fits 16:9 slide with margins)
- File format: PNG with transparency
- Color palette: Use colorblind-friendly colors from STYLE-GUIDE.md
- Labels: Chinese/English matching slide language
- Source citation: Add footnote to chart (e.g., "数据来源: IRENA 2024")
---
**Navigation**: [← Back to Overview](ORCHESTRATION_OVERVIEW.md) | [Next: PPTX Creation →](ORCHESTRATION_PPTX.md)