echarts正态分布图
时间: 2023-10-30 20:02:59 浏览: 193
echart直方图和正态分布曲线
要绘制echarts正态分布图,可以使用echarts中的柱状图(bar)和折线图(line)来实现。
首先,我们需要生成正态分布的数据,可以使用JS中的统计类库,例如mathjs。下面是一个生成1000个随机数的正态分布数据的示例代码:
```
var math = require('mathjs');
var data = math.random([1000], 'normal', 0, 1);
```
然后,在echarts中,我们可以使用柱状图来展示数据的分布情况。柱状图的高度表示数据的频率,柱状图宽度表示数据的区间。以下是一个绘制柱状图的示例代码:
```
var xAxisData = [];
var yAxisData = [];
var interval = 0.1;
var bins = math.range(-3, 3, interval).toArray();
for (var i = 0; i < bins.length - 1; i++) {
var count = 0;
for (var j = 0; j < data.length; j++) {
if (data[j] >= bins[i] && data[j] < bins[i + 1]) {
count++;
}
}
xAxisData.push((bins[i] + bins[i + 1]) / 2);
yAxisData.push(count);
}
var option = {
xAxis: {
type: 'value'
},
yAxis: {
type: 'value'
},
series: [{
type: 'bar',
data: yAxisData,
barWidth: interval * 50,
itemStyle: {
color: '#7cb5ec'
}
}]
};
var chart = echarts.init(document.getElementById('chart'));
chart.setOption(option);
```
接下来,我们可以使用折线图来展示正态分布的曲线。由于正态分布曲线是连续的,所以我们需要用折线图来模拟曲线。以下是一个绘制折线图的示例代码:
```
var curveData = [];
for (var i = -3; i < 3; i += interval) {
curveData.push(math.norm.pdf(i, 0, 1));
}
option.series.push({
type: 'line',
data: curveData,
itemStyle: {
color: '#434348'
},
lineStyle: {
color: '#434348'
}
});
chart.setOption(option);
```
最终的效果如下图所示:
![正态分布图](https://i.imgur.com/YD3v9B6.png)
阅读全文