| 1 | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720" |
| 2 | font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif" |
| 3 | font-size="12"> |
| 4 | <!-- |
| 5 | Heatmap Chart Template |
| 6 | Usage: Matrix data visualization, correlation analysis |
| 7 | Scenarios: Activity heatmaps, time-series analysis, user behavior |
| 8 | Supports: 7×7 or 7x8 matrix grid |
| 9 | --> |
| 10 | <defs> |
| 11 | <!-- Heatmap Gradient Scale (Blue to Red) --> |
| 12 | <linearGradient id="heatGradient" x1="0%" y1="0%" x2="100%" y2="0%"> |
| 13 | <stop offset="0%" style="stop-color:#DBEAFE"/> |
| 14 | <stop offset="25%" style="stop-color:#93C5FD"/> |
| 15 | <stop offset="50%" style="stop-color:#FCD34D"/> |
| 16 | <stop offset="75%" style="stop-color:#F97316"/> |
| 17 | <stop offset="100%" style="stop-color:#DC2626"/> |
| 18 | </linearGradient> |
| 19 | </defs> |
| 20 | <!-- Background --> |
| 21 | <rect width="1280" height="720" fill="#F8FAFC"/> |
| 22 | <!-- Title --> |
| 23 | <g id="header" data-pptx-bounds="60 25 720 75"> |
| 24 | <text x="60" y="55" |
| 25 | font-size="32" font-weight="700" fill="#0F172A">User Activity Heatmap Analysis</text> |
| 26 | <text x="60" y="90" |
| 27 | font-size="18" fill="#64748B">Active Users by Day and Time · Values in Thousands (K)</text> |
| 28 | </g> |
| 29 | <!-- Heatmap Area --> |
| 30 | <g id="heatmapArea" transform="translate(180, 135)" data-pptx-bounds="60 105 680 515"> |
| 31 | <!-- Column Titles (Days) --> |
| 32 | <text x="40" y="-15" |
| 33 | font-size="14" font-weight="600" fill="#475569" text-anchor="middle">Mon</text> |
| 34 | <text x="120" y="-15" |
| 35 | font-size="14" font-weight="600" fill="#475569" text-anchor="middle">Tue</text> |
| 36 | <text x="200" y="-15" |
| 37 | font-size="14" font-weight="600" fill="#475569" text-anchor="middle">Wed</text> |
| 38 | <text x="280" y="-15" |
| 39 | font-size="14" font-weight="600" fill="#475569" text-anchor="middle">Thu</text> |
| 40 | <text x="360" y="-15" |
| 41 | font-size="14" font-weight="600" fill="#475569" text-anchor="middle">Fri</text> |
| 42 | <text x="440" y="-15" |
| 43 | font-size="14" font-weight="600" fill="#EF4444" text-anchor="middle">Sat</text> |
| 44 | <text x="520" y="-15" |
| 45 | font-size="14" font-weight="600" fill="#EF4444" text-anchor="middle">Sun</text> |
| 46 | <!-- Row Titles (Time) --> |
| 47 | <text x="-15" y="35" |
| 48 | font-size="13" fill="#64748B" text-anchor="end">06:00 - 09:00</text> |
| 49 | <text x="-15" y="95" |
| 50 | font-size="13" fill="#64748B" text-anchor="end">09:00 - 12:00</text> |
| 51 | <text x="-15" y="155" |
| 52 | font-size="13" fill="#64748B" text-anchor="end">12:00 - 14:00</text> |
| 53 | <text x="-15" y="215" |
| 54 | font-size="13" fill="#64748B" text-anchor="end">14:00 - 17:00</text> |
| 55 | <text x="-15" y="275" |
| 56 | font-size="13" fill="#64748B" text-anchor="end">17:00 - 19:00</text> |
| 57 | <text x="-15" y="335" |
| 58 | font-size="13" fill="#64748B" text-anchor="end">19:00 - 21:00</text> |
| 59 | <text x="-15" y="395" |
| 60 | font-size="13" fill="#64748B" text-anchor="end">21:00 - 23:00</text> |
| 61 | <text x="-15" y="455" |
| 62 | font-size="13" fill="#64748B" text-anchor="end">23:00 - 06:00</text> |
| 63 | <!-- Heatmap Cells --> |
| 64 | <!-- Row 1 --> |
| 65 | <rect x="0" y="5" width="78" height="58" rx="4" fill="#93C5FD"/><text x="40" y="40" font-size="13" fill="#1E3A8A" text-anchor="middle">35</text> |
| 66 | <rect x="80" y="5" width="78" height="58" rx="4" fill="#60A5FA"/><text x="120" y="40" font-size="13" fill="#1E3A8A" text-anchor="middle">42</text> |
| 67 | <rect x="160" y="5" width="78" height="58" rx="4" fill="#60A5FA"/><text x="200" y="40" font-size="13" fill="#1E3A8A" text-anchor="middle">40</text> |
| 68 | <rect x="240" y="5" width="78" height="58" rx="4" fill="#93C5FD"/><text x="280" y="40" font-size="13" fill="#1E3A8A" text-anchor="middle">38</text> |
| 69 | <rect x="320" y="5" width="78" height="58" rx="4" fill="#BFDBFE"/><text x="360" y="40" font-size="13" fill="#1E3A8A" text-anchor="middle">28</text> |
| 70 | <rect x="400" y="5" width="78" height="58" rx="4" fill="#DBEAFE"/><text x="440" y="40" font-size="13" fill="#1E3A8A" text-anchor="middle">15</text> |
| 71 | <rect x="480" y="5" width="78" height="58" rx="4" fill="#EFF6FF"/><text x="520" y="40" font-size="13" fill="#1E3A8A" text-anchor="middle">10</text> |
| 72 | <!-- Row 2 --> |
| 73 | <rect x="0" y="65" width="78" height="58" rx="4" fill="#FEF08A"/><text x="40" y="100" font-size="13" fill="#9A3412" text-anchor="middle">58</text> |
| 74 | <rect x="80" y="65" width="78" height="58" rx="4" fill="#FCD34D"/><text x="120" y="100" font-size="13" fill="#9A3412" text-anchor="middle">65</text> |
| 75 | <rect x="160" y="65" width="78" height="58" rx="4" fill="#FACC15"/><text x="200" y="100" font-size="13" fill="#FFFFFF" text-anchor="middle">72</text> |
| 76 | <rect x="240" y="65" width="78" height="58" rx="4" fill="#FCD34D"/><text x="280" y="100" font-size="13" fill="#9A3412" text-anchor="middle">68</text> |
| 77 | <rect x="320" y="65" width="78" height="58" rx="4" fill="#FEF08A"/><text x="360" y="100" font-size="13" fill="#9A3412" text-anchor="middle">55</text> |
| 78 | <rect x="400" y="65" width="78" height="58" rx="4" fill="#60A5FA"/><text x="440" y="100" font-size="13" fill="#1E3A8A" text-anchor="middle">45</text> |
| 79 | <rect x="480" y="65" width="78" height="58" rx="4" fill="#93C5FD"/><text x="520" y="100" font-size="13" fill="#1E3A8A" text-anchor="middle">38</text> |
| 80 | <!-- Row 3 --> |
| 81 | <rect x="0" y="125" width="78" height="58" rx="4" fill="#FDBA74"/><text x="40" y="160" font-size="13" fill="#7C2D12" text-anchor="middle">75</text> |
| 82 | <rect x="80" y="125" width="78" height="58" rx="4" fill="#FB923C"/><text x="120" y="160" font-size="13" fill="#FFFFFF" text-anchor="middle">82</text> |
| 83 | <rect x="160" y="125" width="78" height="58" rx="4" fill="#F97316"/><text x="200" y="160" font-size="13" fill="#FFFFFF" text-anchor="middle">88</text> |
| 84 | <rect x="240" y="125" width="78" height="58" rx="4" fill="#FB923C"/><text x="280" y="160" font-size="13" fill="#FFFFFF" text-anchor="middle">80</text> |
| 85 | <rect x="320" y="125" width="78" height="58" rx="4" fill="#FDBA74"/><text x="360" y="160" font-size="13" fill="#7C2D12" text-anchor="middle">70</text> |
| 86 | <rect x="400" y="125" width="78" height="58" rx="4" fill="#FEF08A"/><text x="440" y="160" font-size="13" fill="#9A3412" text-anchor="middle">60</text> |
| 87 | <rect x="480" y="125" width="78" height="58" rx="4" fill="#FCD34D"/><text x="520" y="160" font-size="13" fill="#9A3412" text-anchor="middle">65</text> |
| 88 | <!-- Row 4 --> |
| 89 | <rect x="0" y="185" width="78" height="58" rx="4" fill="#FEF08A"/><text x="40" y="220" font-size="13" fill="#9A3412" text-anchor="middle">55</text> |
| 90 | <rect x="80" y="185" width="78" height="58" rx="4" fill="#FCD34D"/><text x="120" y="220" font-size="13" fill="#9A3412" text-anchor="middle">62</text> |
| 91 | <rect x="160" y="185" width="78" height="58" rx="4" fill="#FCD34D"/><text x="200" y="220" font-size="13" fill="#9A3412" text-anchor="middle">68</text> |
| 92 | <rect x="240" y="185" width="78" height="58" rx="4" fill="#FEF08A"/><text x="280" y="220" font-size="13" fill="#9A3412" text-anchor="middle">60</text> |
| 93 | <rect x="320" y="185" width="78" height="58" rx="4" fill="#60A5FA"/><text x="360" y="220" font-size="13" fill="#1E3A8A" text-anchor="middle">48</text> |
| 94 | <rect x="400" y="185" width="78" height="58" rx="4" fill="#FDBA74"/><text x="440" y="220" font-size="13" fill="#7C2D12" text-anchor="middle">72</text> |
| 95 | <rect x="480" y="185" width="78" height="58" rx="4" fill="#FB923C"/><text x="520" y="220" font-size="13" fill="#FFFFFF" text-anchor="middle">78</text> |
| 96 | <!-- Row 5 --> |
| 97 | <rect x="0" y="245" width="78" height="58" rx="4" fill="#93C5FD"/><text x="40" y="280" font-size="13" fill="#1E3A8A" text-anchor="middle">32</text> |
| 98 | <rect x="80" y="245" width="78" height="58" rx="4" fill="#93C5FD"/><text x="120" y="280" font-size="13" fill="#1E3A8A" text-anchor="middle">35</text> |
| 99 | <rect x="160" y="245" width="78" height="58" rx="4" fill="#93C5FD"/><text x="200" y="280" font-size="13" fill="#1E3A8A" text-anchor="middle">38</text> |
| 100 | <rect x="240" y="245" width="78" height="58" rx="4" fill="#93C5FD"/><text x="280" y="280" font-size="13" fill="#1E3A8A" text-anchor="middle">35</text> |
| 101 | <rect x="320" y="245" width="78" height="58" rx="4" fill="#BFDBFE"/><text x="360" y="280" font-size="13" fill="#1E3A8A" text-anchor="middle">28</text> |
| 102 | <rect x="400" y="245" width="78" height="58" rx="4" fill="#FCD34D"/><text x="440" y="280" font-size="13" fill="#9A3412" text-anchor="middle">65</text> |
| 103 | <rect x="480" y="245" width="78" height="58" rx="4" fill="#FDBA74"/><text x="520" y="280" font-size="13" fill="#7C2D12" text-anchor="middle">70</text> |
| 104 | <!-- Row 6 (Peak) --> |
| 105 | <rect x="0" y="305" width="78" height="58" rx="4" fill="#FB923C"/><text x="40" y="340" font-size="13" fill="#FFFFFF" text-anchor="middle">78</text> |
| 106 | <rect x="80" y="305" width="78" height="58" rx="4" fill="#F97316"/><text x="120" y="340" font-size="13" fill="#FFFFFF" text-anchor="middle">85</text> |
| 107 | <rect x="160" y="305" width="78" height="58" rx="4" fill="#F97316"/><text x="200" y="340" font-size="13" fill="#FFFFFF" text-anchor="middle">88</text> |
| 108 | <rect x="240" y="305" width="78" height="58" rx="4" fill="#F97316"/><text x="280" y="340" font-size="13" fill="#FFFFFF" text-anchor="middle">86</text> |
| 109 | <rect x="320" y="305" width="78" height="58" rx="4" fill="#FB923C"/><text x="360" y="340" font-size="13" fill="#FFFFFF" text-anchor="middle">80</text> |
| 110 | <rect x="400" y="305" width="78" height="58" rx="4" fill="#EF4444"/><text x="440" y="340" font-size="13" fill="#FFFFFF" text-anchor="middle">95</text> |
| 111 | <rect x="480" y="305" width="78" height="58" rx="4" fill="#DC2626"/><text x="520" y="340" font-size="14" font-weight="700" fill="#FFFFFF" text-anchor="middle">98</text> |
| 112 | <!-- Row 7 --> |
| 113 | <rect x="0" y="365" width="78" height="58" rx="4" fill="#FCD34D"/><text x="40" y="400" font-size="13" fill="#9A3412" text-anchor="middle">62</text> |
| 114 | <rect x="80" y="365" width="78" height="58" rx="4" fill="#FDBA74"/><text x="120" y="400" font-size="13" fill="#7C2D12" text-anchor="middle">70</text> |
| 115 | <rect x="160" y="365" width="78" height="58" rx="4" fill="#FDBA74"/><text x="200" y="400" font-size="13" fill="#7C2D12" text-anchor="middle">72</text> |
| 116 | <rect x="240" y="365" width="78" height="58" rx="4" fill="#FDBA74"/><text x="280" y="400" font-size="13" fill="#7C2D12" text-anchor="middle">68</text> |
| 117 | <rect x="320" y="365" width="78" height="58" rx="4" fill="#FCD34D"/><text x="360" y="400" font-size="13" fill="#9A3412" text-anchor="middle">65</text> |
| 118 | <rect x="400" y="365" width="78" height="58" rx="4" fill="#F97316"/><text x="440" y="400" font-size="13" fill="#FFFFFF" text-anchor="middle">85</text> |
| 119 | <rect x="480" y="365" width="78" height="58" rx="4" fill="#FB923C"/><text x="520" y="400" font-size="13" fill="#FFFFFF" text-anchor="middle">82</text> |
| 120 | <!-- Row 8 --> |
| 121 | <rect x="0" y="425" width="78" height="58" rx="4" fill="#DBEAFE"/><text x="40" y="460" font-size="13" fill="#1E3A8A" text-anchor="middle">18</text> |
| 122 | <rect x="80" y="425" width="78" height="58" rx="4" fill="#DBEAFE"/><text x="120" y="460" font-size="13" fill="#1E3A8A" text-anchor="middle">15</text> |
| 123 | <rect x="160" y="425" width="78" height="58" rx="4" fill="#DBEAFE"/><text x="200" y="460" font-size="13" fill="#1E3A8A" text-anchor="middle">12</text> |
| 124 | <rect x="240" y="425" width="78" height="58" rx="4" fill="#DBEAFE"/><text x="280" y="460" font-size="13" fill="#1E3A8A" text-anchor="middle">15</text> |
| 125 | <rect x="320" y="425" width="78" height="58" rx="4" fill="#BFDBFE"/><text x="360" y="460" font-size="13" fill="#1E3A8A" text-anchor="middle">22</text> |
| 126 | <rect x="400" y="425" width="78" height="58" rx="4" fill="#93C5FD"/><text x="440" y="460" font-size="13" fill="#1E3A8A" text-anchor="middle">35</text> |
| 127 | <rect x="480" y="425" width="78" height="58" rx="4" fill="#BFDBFE"/><text x="520" y="460" font-size="13" fill="#1E3A8A" text-anchor="middle">28</text> |
| 128 | </g> |
| 129 | <!-- Color Legend --> |
| 130 | <g id="colorLegend" transform="translate(800, 135)" data-pptx-bounds="800 118 400 75"> |
| 131 | <text x="0" y="0" |
| 132 | font-size="14" font-weight="600" fill="#0F172A">Activity Intensity</text> |
| 133 | <rect x="0" y="15" width="400" height="20" rx="4" fill="url(#heatGradient)"/> |
| 134 | <text x="0" y="52" |
| 135 | fill="#64748B">Low (0)</text> |
| 136 | <text x="200" y="52" |
| 137 | fill="#64748B" text-anchor="middle">Med (50)</text> |
| 138 | <text x="400" y="52" |
| 139 | fill="#64748B" text-anchor="end">High (100)</text> |
| 140 | </g> |
| 141 | <!-- Stats Panel --> |
| 142 | <g id="statsPanel" transform="translate(800, 230)" data-pptx-bounds="800 230 400 190"> |
| 143 | <rect x="0" y="0" width="400" height="190" rx="8" fill="#F1F5F9" stroke="#E2E8F0" stroke-width="1"/> |
| 144 | <text x="200" y="28" |
| 145 | font-size="14" font-weight="600" fill="#0F172A" text-anchor="middle">Key Statistics</text> |
| 146 | <line x1="15" y1="42" x2="385" y2="42" stroke="#E2E8F0" stroke-width="1"/> |
| 147 | <text x="20" y="68" |
| 148 | font-size="13" font-weight="600" fill="#475569">🔥 Peak Time</text> |
| 149 | <text x="20" y="88" |
| 150 | fill="#DC2626">Sun 19:00-21:00 (98K)</text> |
| 151 | <text x="20" y="115" |
| 152 | font-size="13" font-weight="600" fill="#475569">❄️ Low Time</text> |
| 153 | <text x="20" y="135" |
| 154 | fill="#2563EB">Sun 06:00-09:00 (10K)</text> |
| 155 | <text x="20" y="162" |
| 156 | font-size="13" font-weight="600" fill="#475569">📊 Daily Avg</text> |
| 157 | <text x="300" y="162" |
| 158 | font-size="14" font-weight="700" fill="#0F172A">54.2K</text> |
| 159 | </g> |
| 160 | <!-- Insight Card --> |
| 161 | <g id="insightCard" transform="translate(800, 440)" data-pptx-bounds="800 440 400 140"> |
| 162 | <rect x="0" y="0" width="400" height="140" rx="8" fill="#F0FDF4" stroke="#22C55E" stroke-width="1"/> |
| 163 | <text x="20" y="28" |
| 164 | font-size="14" font-weight="600" fill="#166534">💡 Key Insights</text> |
| 165 | <text x="20" y="58" |
| 166 | fill="#475569">• Peak activity on weekend nights</text> |
| 167 | <text x="20" y="80" |
| 168 | fill="#475569">• Mid-day spikes on weekdays</text> |
| 169 | <text x="20" y="102" |
| 170 | fill="#475569">• Lowest traffic in early hours</text> |
| 171 | <text x="20" y="126" |
| 172 | font-weight="600" fill="#64748B">Action: Scale servers on weekends</text> |
| 173 | </g> |
| 174 | <!-- Data Source --> |
| 175 | <g id="source" data-pptx-bounds="60 675 380 25"> |
| 176 | <text x="60" y="695" |
| 177 | font-size="14" fill="#94A3B8">Source: User Behavior Analytics Platform</text> |
| 178 | </g> |
| 179 | </svg> |
| 180 |