- Replace Pflugerville with SITER in SVG files - Remove outdated -k option reference from README 🤖 Generated with [Crush](https://crush.cli.software) Assisted-by: GLM-5 via Crush <crush@charm.land>
121 lines
7.4 KiB
XML
121 lines
7.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 450">
|
||
<defs>
|
||
<linearGradient id="barGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
||
<stop offset="0%" style="stop-color:#f59e0b;stop-opacity:1" />
|
||
<stop offset="100%" style="stop-color:#d97706;stop-opacity:1" />
|
||
</linearGradient>
|
||
<linearGradient id="consumptionGrad" x1="0%" y1="0%" x2="0%" y2="100%">
|
||
<stop offset="0%" style="stop-color:#3b82f6;stop-opacity:1" />
|
||
<stop offset="100%" style="stop-color:#1d4ed8;stop-opacity:1" />
|
||
</linearGradient>
|
||
</defs>
|
||
|
||
<!-- Background -->
|
||
<rect width="800" height="450" fill="#f8fafc"/>
|
||
|
||
<!-- Title -->
|
||
<text x="400" y="30" text-anchor="middle" font-family="Arial, sans-serif" font-size="18" font-weight="bold" fill="#1e293b">Solar Production vs Monthly Consumption</text>
|
||
<text x="400" y="50" text-anchor="middle" font-family="Arial, sans-serif" font-size="12" fill="#64748b">16 × 250W panels = 4.0 kW DC | SITER, SITER, TX</text>
|
||
|
||
<!-- Y-axis -->
|
||
<line x1="80" y1="70" x2="80" y2="340" stroke="#cbd5e1" stroke-width="1"/>
|
||
<text x="40" y="205" text-anchor="middle" font-family="Arial, sans-serif" font-size="11" fill="#64748b" transform="rotate(-90, 40, 205)">kWh</text>
|
||
|
||
<!-- Y-axis labels -->
|
||
<text x="70" y="344" text-anchor="end" font-family="Arial, sans-serif" font-size="10" fill="#94a3b8">0</text>
|
||
<text x="70" y="289" text-anchor="end" font-family="Arial, sans-serif" font-size="10" fill="#94a3b8">750</text>
|
||
<text x="70" y="234" text-anchor="end" font-family="Arial, sans-serif" font-size="10" fill="#94a3b8">1,500</text>
|
||
<text x="70" y="179" text-anchor="end" font-family="Arial, sans-serif" font-size="10" fill="#94a3b8">2,250</text>
|
||
<text x="70" y="124" text-anchor="end" font-family="Arial, sans-serif" font-size="10" fill="#94a3b8">3,000</text>
|
||
<text x="70" y="74" text-anchor="end" font-family="Arial, sans-serif" font-size="10" fill="#94a3b8">3,750</text>
|
||
|
||
<!-- Grid lines -->
|
||
<g stroke="#e2e8f0" stroke-width="1">
|
||
<line x1="80" y1="284" x2="760" y2="284"/>
|
||
<line x1="80" y1="229" x2="760" y2="229"/>
|
||
<line x1="80" y1="174" x2="760" y2="174"/>
|
||
<line x1="80" y1="119" x2="760" y2="119"/>
|
||
<line x1="80" y1="74" x2="760" y2="74"/>
|
||
</g>
|
||
|
||
<!-- X-axis -->
|
||
<line x1="80" y1="340" x2="760" y2="340" stroke="#cbd5e1" stroke-width="1"/>
|
||
|
||
<!-- Monthly data: Consumption (blue) vs Solar (orange) -->
|
||
<!-- Scale: 3500 kWh = 270px height, so each kWh = 0.077px -->
|
||
<!-- Y offset: 340 - value * 0.077 -->
|
||
|
||
<!-- Jan: Consumption ~1333 (winter avg), Solar 450 -->
|
||
<rect x="95" y="237" width="22" height="103" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="120" y="305" width="22" height="35" fill="url(#barGrad)" rx="2"/>
|
||
<text x="117" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Jan</text>
|
||
|
||
<!-- Feb: Consumption ~1333, Solar 453 -->
|
||
<rect x="150" y="237" width="22" height="103" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="175" y="305" width="22" height="35" fill="url(#barGrad)" rx="2"/>
|
||
<text x="172" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Feb</text>
|
||
|
||
<!-- Mar: Consumption ~1777 (shoulder), Solar 492 -->
|
||
<rect x="205" y="203" width="22" height="137" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="230" y="302" width="22" height="38" fill="url(#barGrad)" rx="2"/>
|
||
<text x="227" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Mar</text>
|
||
|
||
<!-- Apr: Consumption ~1777, Solar 508 -->
|
||
<rect x="260" y="203" width="22" height="137" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="285" y="301" width="22" height="39" fill="url(#barGrad)" rx="2"/>
|
||
<text x="282" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Apr</text>
|
||
|
||
<!-- May: Consumption ~1777, Solar 534 -->
|
||
<rect x="315" y="203" width="22" height="137" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="340" y="299" width="22" height="41" fill="url(#barGrad)" rx="2"/>
|
||
<text x="337" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">May</text>
|
||
|
||
<!-- Jun: Consumption ~2912 (summer), Solar 514 -->
|
||
<rect x="370" y="116" width="22" height="224" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="395" y="300" width="22" height="40" fill="url(#barGrad)" rx="2"/>
|
||
<text x="392" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Jun</text>
|
||
|
||
<!-- Jul: Consumption ~2912, Solar 555 -->
|
||
<rect x="425" y="116" width="22" height="224" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="450" y="297" width="22" height="43" fill="url(#barGrad)" rx="2"/>
|
||
<text x="447" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Jul</text>
|
||
|
||
<!-- Aug: Consumption ~2912, Solar 571 (peak) -->
|
||
<rect x="480" y="116" width="22" height="224" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="505" y="296" width="22" height="44" fill="url(#barGrad)" rx="2"/>
|
||
<text x="502" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Aug</text>
|
||
|
||
<!-- Sep: Consumption ~2912, Solar 514 -->
|
||
<rect x="535" y="116" width="22" height="224" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="560" y="300" width="22" height="40" fill="url(#barGrad)" rx="2"/>
|
||
<text x="557" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Sep</text>
|
||
|
||
<!-- Oct: Consumption ~1777, Solar 516 -->
|
||
<rect x="590" y="203" width="22" height="137" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="615" y="300" width="22" height="40" fill="url(#barGrad)" rx="2"/>
|
||
<text x="612" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Oct</text>
|
||
|
||
<!-- Nov: Consumption ~1333, Solar 469 -->
|
||
<rect x="645" y="237" width="22" height="103" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="670" y="304" width="22" height="36" fill="url(#barGrad)" rx="2"/>
|
||
<text x="667" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Nov</text>
|
||
|
||
<!-- Dec: Consumption ~1333, Solar 429 -->
|
||
<rect x="700" y="237" width="22" height="103" fill="url(#consumptionGrad)" rx="2"/>
|
||
<rect x="725" y="307" width="22" height="33" fill="url(#barGrad)" rx="2"/>
|
||
<text x="722" y="355" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#64748b">Dec</text>
|
||
|
||
<!-- Legend -->
|
||
<rect x="250" y="375" width="300" height="60" rx="6" fill="white" stroke="#e2e8f0"/>
|
||
<rect x="270" y="395" width="20" height="15" fill="url(#consumptionGrad)" rx="2"/>
|
||
<text x="300" y="407" font-family="Arial, sans-serif" font-size="11" fill="#64748b">Monthly Consumption (avg by season)</text>
|
||
<rect x="270" y="415" width="20" height="15" fill="url(#barGrad)" rx="2"/>
|
||
<text x="300" y="427" font-family="Arial, sans-serif" font-size="11" fill="#64748b">Solar Production (NREL estimate)</text>
|
||
|
||
<!-- Summary stats -->
|
||
<rect x="580" y="375" width="180" height="60" rx="4" fill="#fef3c7"/>
|
||
<text x="670" y="395" text-anchor="middle" font-family="Arial, sans-serif" font-size="11" fill="#92400e">Annual Production: 6,004 kWh</text>
|
||
<text x="670" y="412" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#a16207">Annual Consumption: ~22,600 kWh</text>
|
||
<text x="670" y="427" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" fill="#92400e" font-weight="bold">Offset: 26.6%</text>
|
||
</svg> |