<!-- 引入 ECharts 库 --> <script src="https://cdn.uv.cc/echarts/echarts.min.js"></script> <!-- 创建一个用于显示折线图的 div 容器,设置宽度为 600 像素,高度为 400 像素 --> <div id="lineChart" style="width: 600px;height:400px;"></div> <script> const lineOption = { title: { text: '多个高斯分布叠加' }, tooltip: {}, xAxis: { type: 'value' }, yAxis: { type: 'value' }, series: [ { name: '高斯分布1', type: 'line', data: generateGaussianData(0, 1, -5, 5, 0.1) // 均值0,标准差1 }, { name: '高斯分布2', type: 'line', data: generateGaussianData(2, 0.5, -5, 5, 0.1) // 均值2,标准差0.5 }, { name: '叠加结果', type: 'line', data: generateCombinedGaussian([ {mean: 0, std: 1, weight: 1}, {mean: 2, std: 0.5, weight: 1} ], -5, 5, 0.1) } ] }; // 生成单个高斯分布数据 function generateGaussianData(mean, std, start, end, step) { let data = []; for (let x = start; x <= end; x += step) { data.push([x, gaussian(x, mean, std)]); } return data; } // 生成多个高斯分布叠加数据 function generateCombinedGaussian(distributions, start, end, step) { let data = []; for (let x = start; x <= end; x += step) { let y = 0; distributions.forEach(dist => { y += dist.weight * gaussian(x, dist.mean, dist.std); }); data.push([x, y]); } return data; } // 高斯函数 function gaussian(x, mean, std) { return Math.exp(-0.5 * Math.pow((x - mean) / std, 2)) / (std * Math.sqrt(2 * Math.PI)); } // 初始化 ECharts 实例,并将其绑定到上述 div 容器 var lineChart = echarts.init(document.getElementById('lineChart')); // 使用 setOption 方法将配置项设置给 ECharts 实例,生成图表 lineChart.setOption(lineOption); </script>