|
@@ -4,9 +4,9 @@
|
|
|
<span style="position: relative;">
|
|
|
<el-button style="margin-left:10px" @click="impquery">刷新</el-button>
|
|
|
<el-button style="margin-left:10px" @click="impdata">导出</el-button>
|
|
|
- </span>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <div style="height: 700px;width: 100%;background-color: rgb(237 237 237 / 23%);margin-top: 10px;display: flex;">
|
|
|
+ <div style="height: 700px;width: 100%;background-color: rgb(237 237 237 / 23%);margin-top: 10px;display: flex;">
|
|
|
<div style="height: 700px;width: 30%;margin-left: 1%;">
|
|
|
<div style="height: 30px;line-height: 30px;"><b>当前占比分布统计</b></div>
|
|
|
<el-table v-loading="loading" height="750px" :data="datalist">
|
|
@@ -28,8 +28,8 @@
|
|
|
style="width: 180px;"
|
|
|
v-model="queryMonth"
|
|
|
value-format="YYYY-MM"
|
|
|
- date-format="YYYY-MM"
|
|
|
- format="YYYY-MM"
|
|
|
+ date-format="YYYY-MM"
|
|
|
+ format="YYYY-MM"
|
|
|
:value-format="'YYYY-MM'"
|
|
|
type="month"
|
|
|
placeholder="请选择月"
|
|
@@ -75,7 +75,7 @@
|
|
|
props:{
|
|
|
},
|
|
|
components:{
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
setup(props,{emit}){
|
|
|
const { proxy } = getCurrentInstance();
|
|
@@ -140,7 +140,7 @@
|
|
|
});
|
|
|
}
|
|
|
//正态分布图
|
|
|
- function showEcharts1(seriesValuedata){
|
|
|
+ function showEcharts1(seriesValuedata){
|
|
|
//处理图表数据
|
|
|
function getChartData(baseData, cityName) {
|
|
|
var data = {
|
|
@@ -150,46 +150,46 @@
|
|
|
stdplotData: []//正态分布数值
|
|
|
};
|
|
|
var sumObj = {};//保存每个aqi数值的出现次数
|
|
|
- baseData.forEach(v=>{
|
|
|
- var aqi = Number(v.num);
|
|
|
+ baseData.forEach(v=>{
|
|
|
+ var aqi = Number(v.num);
|
|
|
data.baseData.push(aqi);
|
|
|
- if(!sumObj[aqi]){
|
|
|
+ if(!sumObj[aqi]){
|
|
|
sumObj[aqi] = 1;
|
|
|
- }else{
|
|
|
- sumObj[aqi]++;
|
|
|
- }
|
|
|
+ }else{
|
|
|
+ sumObj[aqi]++;
|
|
|
+ }
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//console.log(sumObj);
|
|
|
var stdObj = getBebeQ(data.baseData);
|
|
|
-
|
|
|
+
|
|
|
var max = stdObj.max;
|
|
|
for(var i = 0; i <= max; i++){
|
|
|
//console.log(sumObj[i]);
|
|
|
data.xAxisData.push(i);
|
|
|
data.realData.push(sumObj[i] || 0);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
var yArr = [];
|
|
|
-
|
|
|
+
|
|
|
//console.log(stdObj);
|
|
|
var mean = Number(stdObj.avg);//均值
|
|
|
var stdev = stdObj.stdDev;//标准差
|
|
|
var x = data.xAxisData;
|
|
|
-
|
|
|
+
|
|
|
for (var j = 0; j < x.length; j++) {
|
|
|
var res = fun(x[j], mean, stdev).toFixed(2);
|
|
|
yArr.push(res);
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
data.stdplotData = yArr;
|
|
|
-
|
|
|
+
|
|
|
return data;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//求均值和标准差
|
|
|
function getBebeQ(numbers, digit = 2) {
|
|
|
// 修复js浮点数精度误差问题
|
|
@@ -220,12 +220,12 @@
|
|
|
stdDev : stdDev.toFixed(digit)
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//正态分布值
|
|
|
function fun(x, u, a) {
|
|
|
return (1 / Math.sqrt(2 * Math.PI) * a) * Math.exp(-1 * ((x - u) * (x - u)) / (2 * a * a));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
function addParam(arr, target) {
|
|
|
//是否是等于
|
|
|
var flag = false;
|
|
@@ -235,13 +235,13 @@
|
|
|
arr.unshift(target.toString());
|
|
|
return arr;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//最大
|
|
|
if (target > parseFloat(arr[arr.length - 1])) {
|
|
|
arr.push(target.toString());
|
|
|
return arr;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
//中间
|
|
|
for (var i = 0; i < arr.length; i++) {
|
|
|
if (parseFloat(arr[i]) > target) {
|
|
@@ -258,7 +258,7 @@
|
|
|
}
|
|
|
}
|
|
|
var data = getChartData(seriesValuedata);
|
|
|
-
|
|
|
+
|
|
|
let option = {
|
|
|
"legend": {},
|
|
|
color: ['rgb(50, 255, 200)', '#f00'],
|
|
@@ -270,7 +270,7 @@
|
|
|
"yAxis": [{
|
|
|
"name": "次数"
|
|
|
},{
|
|
|
- name: '频率'
|
|
|
+ name: '概率密度'
|
|
|
}],
|
|
|
"series": [
|
|
|
{
|
|
@@ -385,4 +385,4 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-</script>
|
|
|
+</script>
|