R平方算法实现,箭头导出图片不显示问题处理

tykong-cidian
陈荣宏 2024-08-31 14:14:20 +08:00
parent 9e9b617c7a
commit d77f330713
3 changed files with 34 additions and 4 deletions

BIN
src/assets/images/arrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 B

View File

@ -136,6 +136,7 @@
import { productTypeMap } from "@/lib/variateMap"; import { productTypeMap } from "@/lib/variateMap";
import { truthFunVal, productSubTypeVal } from "@/lib/contract"; import { truthFunVal, productSubTypeVal } from "@/lib/contract";
import * as turf from "@turf/turf"; import * as turf from "@turf/turf";
import arrow from "@/assets/images/arrow.png"
export default { export default {
props: { props: {
realRes: { realRes: {
@ -174,7 +175,7 @@ export default {
tDatas: null, tDatas: null,
midValue: 10, midValue: 10,
erExpression: null, erExpression: null,
erR2: "r² = 0.037207", erR2: "",
}; };
}, },
created() { created() {
@ -313,13 +314,31 @@ export default {
} }
} }
}, },
calculateR2(y, yHat) {
// y: yhat
//
const meanY = y.reduce((acc, val) => acc + val, 0) / y.length;
// SSR
const totalSumOfSquares = yHat.map(val => Math.pow(val - meanY, 2)).reduce((acc, val) => acc + val, 0);
// SSE
const residualSum = y.map((val, index) => Math.pow(val - yHat[index], 2)).reduce((acc, val) => acc + val, 0);
// SST
const residualSumOfSquares = totalSumOfSquares + residualSum;
// R2
const rSquared = 1 - (residualSum / residualSumOfSquares);
return rSquared;
},
drawPie(errorVala) { drawPie(errorVala) {
let data = []; let data = [];
let xArr = []; let xArr = [];
const observedValues = [];
const predictedValues = [];
for (let i in errorVala) { for (let i in errorVala) {
const a = [errorVala[i].cre_imageValue, errorVala[i].cre_deviation]; const a = [errorVala[i].cre_imageValue, errorVala[i].cre_deviation];
xArr.push(errorVala[i].cre_imageValue); xArr.push(errorVala[i].cre_imageValue);
data.push(a); data.push(a);
observedValues.push(errorVala[i].cre_deviation);
predictedValues.push(errorVala[i].cre_imageValue);
} }
// const x_limit = Math.abs(Math.max(...xArr) / xArr.length); // const x_limit = Math.abs(Math.max(...xArr) / xArr.length);
// //
@ -328,6 +347,8 @@ export default {
}).reduce((acc, curr) => acc + curr, 0); }).reduce((acc, curr) => acc + curr, 0);
let rmseValue = "RMSE = "+ Math.sqrt(wcpf/data.length); let rmseValue = "RMSE = "+ Math.sqrt(wcpf/data.length);
let myRegression = this.echartRegression("polynomial", data, 1); let myRegression = this.echartRegression("polynomial", data, 1);
// R2
this.erR2 = "r² = " + this.calculateR2(observedValues, predictedValues);
var option = { var option = {
title: { title: {
text: this.pdSubTypeName + "误差结果图", text: this.pdSubTypeName + "误差结果图",
@ -416,10 +437,16 @@ export default {
{ {
name: "r2", name: "r2",
icon: "circle", icon: "circle",
itemStyle: {
color:"#FFF"
}
}, },
{ {
name:"RMSE", name:"RMSE",
icon: "circle", icon: "circle",
itemStyle: {
color:"#FFF"
}
} }
], ],
formatter: (name) => { formatter: (name) => {
@ -600,7 +627,8 @@ export default {
}, },
{ {
// symbol: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAAXNSR0IArs4c6QAAAjVJREFUeF7tmM1JAwEYBb90Yg1WYGeWYhd69OTVEjxagldlJeAfibtkIBOYgARk8/ZlJm/jupseKgI7VZvKTEJkH4KEJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREaAq3M9M8+nxrWQUwl+vf59Zl5m5mFm7vfPy+82PRKyCdfRg3/Df9tLWQQtP69rTpWQNZTWHfPfGp6+CTp4aVuE3M7MzbpzdtQRAlsYHry0LUIeE3LWD9qPS1tCzuri8+R/hNzNzNX5e118A+ySdfEkJG8A+1KXvJ+Lr9GfvTKF3RjKhPSvE5kQpE536ghGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLuQDLNIwmfEn5ZUAAAAASUVORK5CYII=", // symbol: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAAXNSR0IArs4c6QAAAjVJREFUeF7tmM1JAwEYBb90Yg1WYGeWYhd69OTVEjxagldlJeAfibtkIBOYgARk8/ZlJm/jupseKgI7VZvKTEJkH4KEJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREZAVqeFJERGQFanhSRERkBWp4UkREaAq3M9M8+nxrWQUwl+vf59Zl5m5mFm7vfPy+82PRKyCdfRg3/Df9tLWQQtP69rTpWQNZTWHfPfGp6+CTp4aVuE3M7MzbpzdtQRAlsYHry0LUIeE3LWD9qPS1tCzuri8+R/hNzNzNX5e118A+ySdfEkJG8A+1KXvJ+Lr9GfvTKF3RjKhPSvE5kQpE536ghGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLiQhHEskKSEIRi4kIRxLJCkhCEYuJCEcSyQpIQhGLuQDLNIwmfEn5ZUAAAAASUVORK5CYII=",
symbol: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAAv0lEQVR4nO3UsUmEQRCA0U801cASxECwAUOrMLEly7CGM7OAM/ZSCxBzA0ERLjqQQ3G5X//3YLPdYWZ2dgMAAAAAAAAAAIBd25/hDVxUR9Xzdw/OsVmn1bK6qk6qt+ppAnlN0mX1vrFeqtvqujr+Kum9CRe1HBT3sDrbsue+WlR31WpQHr9q8/Z3tR6rm8/CDibcrIdBcf/lZI3y4z9rypM12mo9OYv1JG01x2a9Vudzf14AAAAAAAAAAAD8RdUHTdhBNENzGoYAAAAASUVORK5CYII=", // symbol: "image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAYAAAA4TnrqAAAAv0lEQVR4nO3UsUmEQRCA0U801cASxECwAUOrMLEly7CGM7OAM/ZSCxBzA0ERLjqQQ3G5X//3YLPdYWZ2dgMAAAAAAAAAAIBd25/hDVxUR9Xzdw/OsVmn1bK6qk6qt+ppAnlN0mX1vrFeqtvqujr+Kum9CRe1HBT3sDrbsue+WlR31WpQHr9q8/Z3tR6rm8/CDibcrIdBcf/lZI3y4z9rypM12mo9OYv1JG01x2a9Vudzf14AAAAAAAAAAAD8RdUHTdhBNENzGoYAAAAASUVORK5CYII=",
symbol:"image://" + arrow,
symbolRotate: (number, params) => { symbolRotate: (number, params) => {
console.log(number, params); console.log(number, params);
return bearingArr[params.dataIndex]; return bearingArr[params.dataIndex];

View File

@ -35,7 +35,8 @@ module.exports = {
} }
}, },
[process.env.VUE_APP_REALITY_API]: { [process.env.VUE_APP_REALITY_API]: {
target: "https://124.16.188.131:28092/microwave", target: "http://192.168.88.199:18092/microwave",
// target: "https://124.16.188.131:28092/microwave",
// target: "http://192.168.1.227:18092/microwave", // target: "http://192.168.1.227:18092/microwave",
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
@ -43,7 +44,8 @@ module.exports = {
} }
}, },
[process.env.VUE_APP_FILE_API]: { [process.env.VUE_APP_FILE_API]: {
target: "https://124.16.188.131:28093/file", target: "http://192.168.88.199:18093/file",
// target: "https://124.16.188.131:28093/file",
// target: "http://192.168.1.227:18093/file", // target: "http://192.168.1.227:18093/file",
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {