{"id":4900,"date":"2026-03-23T16:41:37","date_gmt":"2026-03-23T08:41:37","guid":{"rendered":"https:\/\/aot-tek.com\/newAOT2019\/?p=4900"},"modified":"2026-03-23T16:41:38","modified_gmt":"2026-03-23T08:41:38","slug":"%e5%8f%b0%e7%81%a3%e6%b6%b2%e5%86%b7%e5%b8%82%e5%a0%b4%e6%88%90%e9%95%b7%e9%a0%90%e4%bc%b0","status":"publish","type":"post","link":"https:\/\/aot-tek.com\/newAOT2019\/%e5%8f%b0%e7%81%a3%e6%b6%b2%e5%86%b7%e5%b8%82%e5%a0%b4%e6%88%90%e9%95%b7%e9%a0%90%e4%bc%b0\/","title":{"rendered":"\u53f0\u7063\u6db2\u51b7\u5e02\u5834\u6210\u9577\u9810\u4f30"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"zh-TW\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>\u53f0\u7063\u6db2\u51b7\u5e02\u5834\u6210\u9577\u9810\u4f30<\/title>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.js\"><\/script>\n<style>\n  * { box-sizing: border-box; margin: 0; padding: 0; }\n  body { font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; background: #fff; }\n\n  .chart-card {\n    background: #fff;\n    border: 1px solid #e5e7eb;\n    border-radius: 12px;\n    padding: 1.75rem 1.5rem 1.25rem;\n    max-width: 800px;\n    margin: 0 auto;\n  }\n  .chart-title {\n    font-size: 18px;\n    font-weight: 600;\n    color: #111827;\n    margin-bottom: 4px;\n  }\n  .chart-subtitle {\n    font-size: 13px;\n    color: #6b7280;\n    margin-bottom: 1.25rem;\n  }\n  .legend-row {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 14px;\n    margin-bottom: 1.25rem;\n    font-size: 12px;\n    color: #374151;\n  }\n  .legend-item { display: flex; align-items: center; gap: 5px; }\n  .legend-dot { width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0; }\n  .section-label {\n    font-size: 12px;\n    font-weight: 500;\n    color: #6b7280;\n    margin: 1.25rem 0 8px;\n  }\n  .source {\n    font-size: 11px;\n    color: #9ca3af;\n    margin-top: 1rem;\n    text-align: right;\n  }\n  canvas { display: block; }\n<\/style>\n<\/head>\n<body>\n<div class=\"chart-card\">\n  <div class=\"chart-title\">\u53f0\u7063\u6db2\u51b7\u5e02\u5834\u6210\u9577\u9810\u4f30<\/div>\n  <div class=\"chart-subtitle\">Taiwan Liquid Cooling Market Growth Forecast (2026\u20132030)<\/div>\n\n  <div class=\"legend-row\">\n    <span class=\"legend-item\"><span class=\"legend-dot\" style=\"background:#3b82f6;\"><\/span>\u6db2\u51b7\u6a5f\u6ac3\u6578 Racks<\/span>\n    <span class=\"legend-item\"><span class=\"legend-dot\" style=\"background:#f59e0b;\"><\/span>PG25 \u51b7\u537b\u6db2\u9700\u6c42 Coolant Demand (tons)<\/span>\n    <span class=\"legend-item\"><span class=\"legend-dot\" style=\"background:#10b981;\"><\/span>PG25 \u5e74\u5ea6\u71df\u6536 Annual Revenue (M TWD)<\/span>\n  <\/div>\n\n  <div style=\"position:relative; width:100%; height:320px;\">\n    <canvas id=\"mainChart\"><\/canvas>\n  <\/div>\n\n  <div class=\"section-label\">\u6a5f\u6ac3\u5e74\u5ea6\u6210\u9577\u7387 Rack YoY Growth Rate<\/div>\n  <div style=\"position:relative; width:100%; height:110px;\">\n    <canvas id=\"growthChart\"><\/canvas>\n  <\/div>\n\n  <div class=\"source\">\u8cc7\u6599\u4f86\u6e90 Source\uff1a\u53f0\u7063\u6db2\u51b7\u5e02\u5834\u6210\u9577\u9810\u4f30<\/div>\n<\/div>\n\n<script>\nconst years   = ['2026','2027','2028','2029','2030'];\nconst racks   = [10000, 14000, 19000, 24000, 30000];\nconst tons    = [200, 100, 100, 150, 250];\nconst revenue = [40, 20, 28, 36, 45];\nconst growthRates = racks.slice(1).map((v, i) => Math.round((v - racks[i]) \/ racks[i] * 100));\n\nconst gridColor = 'rgba(0,0,0,0.06)';\nconst textColor = '#6b7280';\n\nnew Chart(document.getElementById('mainChart'), {\n  type: 'bar',\n  data: {\n    labels: years,\n    datasets: [\n      {\n        label: '\u6db2\u51b7\u6a5f\u6ac3 Racks',\n        data: racks,\n        backgroundColor: 'rgba(59,130,246,0.8)',\n        borderColor: '#3b82f6',\n        borderWidth: 1,\n        borderRadius: 4,\n        yAxisID: 'y',\n        order: 2\n      },\n      {\n        label: 'PG25 \u51b7\u537b\u6db2 (tons)',\n        data: tons,\n        type: 'line',\n        borderColor: '#f59e0b',\n        backgroundColor: 'rgba(245,158,11,0.12)',\n        borderWidth: 2,\n        pointRadius: 5,\n        pointBackgroundColor: '#f59e0b',\n        tension: 0.35,\n        fill: false,\n        yAxisID: 'y2',\n        order: 1\n      },\n      {\n        label: '\u5e74\u5ea6\u71df\u6536 Revenue (M TWD)',\n        data: revenue,\n        type: 'line',\n        borderColor: '#10b981',\n        backgroundColor: 'rgba(16,185,129,0.12)',\n        borderWidth: 2,\n        pointRadius: 5,\n        pointBackgroundColor: '#10b981',\n        tension: 0.35,\n        fill: false,\n        yAxisID: 'y2',\n        order: 0\n      }\n    ]\n  },\n  options: {\n    responsive: true,\n    maintainAspectRatio: false,\n    plugins: {\n      legend: { display: false },\n      tooltip: {\n        callbacks: {\n          label: (ctx) => {\n            if (ctx.dataset.label.includes('Racks')) return ` ${ctx.parsed.y.toLocaleString()} \u6a5f\u6ac3`;\n            if (ctx.dataset.label.includes('tons'))  return ` ${ctx.parsed.y} \u5678`;\n            return ` TWD ${ctx.parsed.y}M`;\n          }\n        }\n      }\n    },\n    scales: {\n      x: {\n        ticks: { color: textColor, font: { size: 12 } },\n        grid: { color: gridColor },\n        border: { color: gridColor }\n      },\n      y: {\n        position: 'left',\n        title: { display: true, text: '\u6a5f\u6ac3\u6578 Racks', color: '#3b82f6', font: { size: 11 } },\n        ticks: {\n          color: '#3b82f6',\n          font: { size: 11 },\n          callback: v => v >= 1000 ? (v \/ 1000).toFixed(0) + 'K' : v\n        },\n        grid: { color: gridColor },\n        border: { color: gridColor }\n      },\n      y2: {\n        position: 'right',\n        title: { display: true, text: '\u5678 \/ M TWD', color: textColor, font: { size: 11 } },\n        ticks: { color: textColor, font: { size: 11 } },\n        grid: { drawOnChartArea: false },\n        border: { color: gridColor }\n      }\n    }\n  }\n});\n\nnew Chart(document.getElementById('growthChart'), {\n  type: 'bar',\n  data: {\n    labels: years.slice(1),\n    datasets: [{\n      data: growthRates,\n      backgroundColor: growthRates.map(v => v >= 30 ? 'rgba(59,130,246,0.85)' : 'rgba(59,130,246,0.45)'),\n      borderColor: '#3b82f6',\n      borderWidth: 1,\n      borderRadius: 4\n    }]\n  },\n  options: {\n    responsive: true,\n    maintainAspectRatio: false,\n    plugins: {\n      legend: { display: false },\n      tooltip: { callbacks: { label: ctx => ` +${ctx.parsed.y}%` } }\n    },\n    scales: {\n      x: { ticks: { color: textColor, font: { size: 11 } }, grid: { color: gridColor }, border: { color: gridColor } },\n      y: {\n        ticks: { color: textColor, font: { size: 11 }, callback: v => v + '%' },\n        grid: { color: gridColor },\n        border: { color: gridColor }\n      }\n    }\n  }\n});\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>\u53f0\u7063\u6db2\u51b7\u5e02\u5834\u6210\u9577\u9810\u4f30 \u53f0\u7063\u6db2\u51b7\u5e02\u5834\u6210\u9577\u9810\u4f30 Taiwan Liquid Cooling Market Growth Forecast (2026\u20132030) \u6db2\u51b7\u6a5f\u6ac3\u6578 Racks PG25 \u51b7\u537b\u6db2\u9700\u6c42 Coolant Demand (tons) PG25 \u5e74\u5ea6\u71df\u6536 Annual Revenue (M TWD) \u6a5f\u6ac3\u5e74\u5ea6\u6210\u9577\u7387 Rack YoY Growth Rate \u8cc7\u6599\u4f86\u6e90 Source\uff1a\u53f0\u7063\u6db2\u51b7\u5e02\u5834\u6210\u9577\u9810\u4f30<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[105],"tags":[102],"class_list":["post-4900","post","type-post","status-publish","format-standard","hentry","category-105","tag-hydrant"],"_links":{"self":[{"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/posts\/4900","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/comments?post=4900"}],"version-history":[{"count":1,"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/posts\/4900\/revisions"}],"predecessor-version":[{"id":4901,"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/posts\/4900\/revisions\/4901"}],"wp:attachment":[{"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/media?parent=4900"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/categories?post=4900"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aot-tek.com\/newAOT2019\/wp-json\/wp\/v2\/tags?post=4900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}