rapid-spreadjs 1.0.94 → 1.0.96
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.js +504 -394
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.min.js +1 -1
- package/dist/index.cjs.min.js.map +1 -1
- package/dist/index.esm.js +504 -394
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/utils/sheet.d.ts +8 -2
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -607,9 +607,10 @@ const SheetUtils = {
|
|
|
607
607
|
* 获取工作表中所有纯值、无值或公式单元格的范围选择字符串
|
|
608
608
|
* @param sheet 工作表对象
|
|
609
609
|
* @param getType 获取类型(1:纯值、2:无值、3:公式),默认为:1
|
|
610
|
+
* @param range 单元格范围,格式为:{ row: number; col: number; rowCount: number; colCount: number }
|
|
610
611
|
*/
|
|
611
|
-
getCellsRangeStr: (sheet, getType
|
|
612
|
-
const range = { row: 0, col: 1, rowCount: sheet.getRowCount(), colCount: 77 };
|
|
612
|
+
getCellsRangeStr: (sheet, getType, range) => {
|
|
613
|
+
// const range = { row: 0, col: 1, rowCount: sheet.getRowCount(), colCount: 77 };
|
|
613
614
|
// 所有单元格对象集合
|
|
614
615
|
const allCells = SheetUtils.getAllCellObjsByRanges(sheet, [range]);
|
|
615
616
|
// 最终需要的单元格对象集合
|
|
@@ -4070,430 +4071,539 @@ const EChartsUtilsAll = {
|
|
|
4070
4071
|
yDataSource1 = yDataArr[0], // [2.25, 2.29, 2.34, 2.29, 2.23],
|
|
4071
4072
|
yDataSource2 = isTwoLine ? yDataArr[1] : []; // [2.27, 2.32, 2.36, 2.33, 2.26];
|
|
4072
4073
|
let title = config.chartTitle, xName = config.chartXName, yName = config.chartYName, legendName = '图例1';
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
item
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
if (dxsJs >= yData.length) {
|
|
4091
|
-
dxsJs = yData.length - 1;
|
|
4092
|
-
}
|
|
4093
|
-
let xMin = Math.min(...xData), xMax = Math.max(...xData), yMin = Math.min(...yData), yMax = Math.max(...yData), xAxisMax = Math.ceil(xMax + 0.1), xAxisMin = Math.trunc(xMin - 0.1), yAxisMax = Number(EChartsUtilsComm.getRound(yMax + 0.02, 0.01)), yAxisMin = Number(EChartsUtilsComm.getRound(yMin - 0.02, 0.01));
|
|
4094
|
-
//如果界面设置了校正最佳含水率和最大干密度,则显示界面中的顶点坐标(此时就不显示辅助线了)
|
|
4095
|
-
let cellValJzZjhsl, cellValJzZdgmd;
|
|
4096
|
-
if (chartExtJson != null && chartExtJson.jsIsJz) {
|
|
4097
|
-
if (chartExtJson.jsZjhslJz != null && chartExtJson.jsZjhslJz != undefined) {
|
|
4098
|
-
cellValJzZjhsl = sheet.getValue(chartExtJson.jsZjhslJz.row, chartExtJson.jsZjhslJz.col);
|
|
4074
|
+
try {
|
|
4075
|
+
const lineFunc = (xDataSource, yDataSource, isShowMarkPoint, isShowMarkLine, isTwoLineData) => {
|
|
4076
|
+
//原始数据
|
|
4077
|
+
let dxsJs = chartExtJson != null ? chartExtJson.dxsJs : 5, xData = [], yData = [], seriesData = []; //处理原始数据为空的值,不然参与mathjs计算会报错
|
|
4078
|
+
//处理原始数据为空的值,不然参与mathjs计算会报错
|
|
4079
|
+
xDataSource.forEach((item, index) => {
|
|
4080
|
+
if (/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(item) &&
|
|
4081
|
+
item != 0 &&
|
|
4082
|
+
/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(yDataSource[index]) &&
|
|
4083
|
+
yDataSource[index] != 0) {
|
|
4084
|
+
xData.push(item);
|
|
4085
|
+
yData.push(yDataSource[index]);
|
|
4086
|
+
}
|
|
4087
|
+
});
|
|
4088
|
+
//y轴没有任何数据的时候,不参与绘制图表
|
|
4089
|
+
if (yData.length == 0) {
|
|
4090
|
+
return;
|
|
4099
4091
|
}
|
|
4100
|
-
if (
|
|
4101
|
-
|
|
4092
|
+
if (dxsJs >= yData.length) {
|
|
4093
|
+
dxsJs = yData.length - 1;
|
|
4102
4094
|
}
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
|
|
4095
|
+
let xMin = Math.min(...xData), xMax = Math.max(...xData), yMin = Math.min(...yData), yMax = Math.max(...yData), xAxisMax = Math.ceil(xMax + 0.1), xAxisMin = Math.trunc(xMin - 0.1), yAxisMax = Number(EChartsUtilsComm.getRound(yMax + 0.02, 0.01)), yAxisMin = Number(EChartsUtilsComm.getRound(yMin - 0.02, 0.01));
|
|
4096
|
+
//如果界面设置了校正最佳含水率和最大干密度,则显示界面中的顶点坐标(此时就不显示辅助线了)
|
|
4097
|
+
let cellValJzZjhsl, cellValJzZdgmd;
|
|
4098
|
+
if (chartExtJson != null && chartExtJson.jsIsJz) {
|
|
4099
|
+
if (chartExtJson.jsZjhslJz != null && chartExtJson.jsZjhslJz != undefined) {
|
|
4100
|
+
cellValJzZjhsl = sheet.getValue(chartExtJson.jsZjhslJz.row, chartExtJson.jsZjhslJz.col);
|
|
4101
|
+
}
|
|
4102
|
+
if (chartExtJson.jsZdgmdJz != null && chartExtJson.jsZdgmdJz != undefined) {
|
|
4103
|
+
cellValJzZdgmd = sheet.getValue(chartExtJson.jsZdgmdJz.row, chartExtJson.jsZdgmdJz.col);
|
|
4104
|
+
}
|
|
4105
|
+
//如果界面输入的最大干密度大于了y轴最大值,则需要重新设置y轴的最大值
|
|
4106
|
+
if (/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(cellValJzZdgmd) && cellValJzZdgmd > yAxisMax) {
|
|
4107
|
+
yAxisMax = Number(EChartsUtilsComm.getRound(cellValJzZdgmd + 0.02, 0.01));
|
|
4108
|
+
}
|
|
4106
4109
|
}
|
|
4107
|
-
|
|
4108
|
-
|
|
4109
|
-
|
|
4110
|
-
points.push([item, yData[index]]);
|
|
4111
|
-
});
|
|
4112
|
-
// 构造范德蒙德矩阵的函数
|
|
4113
|
-
function vandermondeMatrix(x, N) {
|
|
4114
|
-
const matrix = [];
|
|
4115
|
-
for (let i = 0; i < x.length; i++) {
|
|
4116
|
-
const row = [];
|
|
4117
|
-
for (let j = 0; j <= N; j++) {
|
|
4118
|
-
// 注意这里从0到N,包含N
|
|
4119
|
-
row.push(math.pow(x[i], j));
|
|
4120
|
-
}
|
|
4121
|
-
matrix.push(row);
|
|
4122
|
-
}
|
|
4123
|
-
return math.matrix(matrix);
|
|
4124
|
-
}
|
|
4125
|
-
// 构造原始的范德蒙德矩阵
|
|
4126
|
-
const vandermonde_matrix = vandermondeMatrix(xData, dxsJs); // 注意这里N=4,因为我们从0开始计数
|
|
4127
|
-
// 使用最小二乘法求解
|
|
4128
|
-
const A = vandermonde_matrix;
|
|
4129
|
-
const AT = math.transpose(A);
|
|
4130
|
-
const ATA = math.multiply(AT, A);
|
|
4131
|
-
const ATb = math.multiply(AT, math.matrix(yData));
|
|
4132
|
-
// 解线性方程组
|
|
4133
|
-
let result = null, coefficients = [];
|
|
4134
|
-
try {
|
|
4135
|
-
result = math.lusolve(ATA, ATb);
|
|
4136
|
-
coefficients = result.valueOf();
|
|
4137
|
-
}
|
|
4138
|
-
catch (err) {
|
|
4139
|
-
for (let index = 0; index < xData.length; index++) {
|
|
4140
|
-
coefficients.push([0]);
|
|
4141
|
-
}
|
|
4142
|
-
// console.log('无法解决该线性系统');
|
|
4143
|
-
}
|
|
4144
|
-
// const result = math.lusolve(ATA, ATb);
|
|
4145
|
-
// const coefficients = result.valueOf();
|
|
4146
|
-
function funequation(x) {
|
|
4147
|
-
let y = 0;
|
|
4148
|
-
coefficients.forEach((item, index) => {
|
|
4149
|
-
//fx^0
|
|
4150
|
-
//fx^0+ax^1
|
|
4151
|
-
//fx^0+ax^1+bx^2
|
|
4152
|
-
//fx^0+ax^1+bx^2+cx^3
|
|
4153
|
-
//fx^0+x^1+x^2+x^3+x^4
|
|
4154
|
-
y += item * Math.pow(x, index);
|
|
4110
|
+
let points = [];
|
|
4111
|
+
xData.forEach((item, index) => {
|
|
4112
|
+
points.push([item, yData[index]]);
|
|
4155
4113
|
});
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4114
|
+
// 构造范德蒙德矩阵的函数
|
|
4115
|
+
function vandermondeMatrix(x, N) {
|
|
4116
|
+
const matrix = [];
|
|
4117
|
+
for (let i = 0; i < x.length; i++) {
|
|
4118
|
+
const row = [];
|
|
4119
|
+
for (let j = 0; j <= N; j++) {
|
|
4120
|
+
// 注意这里从0到N,包含N
|
|
4121
|
+
row.push(math.pow(x[i], j));
|
|
4122
|
+
}
|
|
4123
|
+
matrix.push(row);
|
|
4124
|
+
}
|
|
4125
|
+
return math.matrix(matrix);
|
|
4126
|
+
}
|
|
4127
|
+
// 构造原始的范德蒙德矩阵
|
|
4128
|
+
const vandermonde_matrix = vandermondeMatrix(xData, dxsJs); // 注意这里N=4,因为我们从0开始计数
|
|
4129
|
+
// 使用最小二乘法求解
|
|
4130
|
+
const A = vandermonde_matrix;
|
|
4131
|
+
const AT = math.transpose(A);
|
|
4132
|
+
const ATA = math.multiply(AT, A);
|
|
4133
|
+
const ATb = math.multiply(AT, math.matrix(yData));
|
|
4134
|
+
// 解线性方程组
|
|
4135
|
+
let result = null, coefficients = [];
|
|
4136
|
+
try {
|
|
4137
|
+
result = math.lusolve(ATA, ATb);
|
|
4138
|
+
coefficients = result.valueOf();
|
|
4139
|
+
}
|
|
4140
|
+
catch (err) {
|
|
4141
|
+
for (let index = 0; index < xData.length; index++) {
|
|
4142
|
+
coefficients.push([0]);
|
|
4143
|
+
}
|
|
4144
|
+
// console.log('无法解决该线性系统');
|
|
4145
|
+
}
|
|
4146
|
+
// const result = math.lusolve(ATA, ATb);
|
|
4147
|
+
// const coefficients = result.valueOf();
|
|
4148
|
+
function funequation(x) {
|
|
4149
|
+
let y = 0;
|
|
4150
|
+
coefficients.forEach((item, index) => {
|
|
4151
|
+
//fx^0
|
|
4152
|
+
//fx^0+ax^1
|
|
4153
|
+
//fx^0+ax^1+bx^2
|
|
4154
|
+
//fx^0+ax^1+bx^2+cx^3
|
|
4155
|
+
//fx^0+x^1+x^2+x^3+x^4
|
|
4156
|
+
y += item * Math.pow(x, index);
|
|
4157
|
+
});
|
|
4158
|
+
return y;
|
|
4196
4159
|
}
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4160
|
+
// console.log('计算公式:', coefficients);
|
|
4161
|
+
function lagrangeInterpolation(points, x) {
|
|
4162
|
+
let result = 0;
|
|
4163
|
+
for (let i = 0; i < points.length; i++) {
|
|
4164
|
+
let term = points[i][1];
|
|
4165
|
+
let xi = points[i][0];
|
|
4166
|
+
for (let j = 0; j < points.length; j++) {
|
|
4167
|
+
if (j !== i) {
|
|
4168
|
+
let xj = points[j][0];
|
|
4169
|
+
term *= (x - xj) / (xi - xj);
|
|
4170
|
+
}
|
|
4171
|
+
}
|
|
4172
|
+
result += term;
|
|
4173
|
+
}
|
|
4174
|
+
return result;
|
|
4201
4175
|
}
|
|
4202
|
-
|
|
4203
|
-
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4176
|
+
// x=[3.5, 4, 4.5, 5, 5.5,6 ],y= [2.262, 2.321, 2.319, 2.292, 2.285, 2.28]
|
|
4177
|
+
let arrX = [];
|
|
4178
|
+
let arrY = [];
|
|
4179
|
+
for (let i = xMin; i <= xMax; i += 0.01) {
|
|
4180
|
+
let temp = Number(EChartsUtilsComm.getRound(i, 0.01));
|
|
4181
|
+
//重新设置i,防止i丢失精度
|
|
4182
|
+
i = Number(temp);
|
|
4183
|
+
//arrY.push(lagrangeInterpolation(points, temp));
|
|
4184
|
+
arrY.push(funequation(temp));
|
|
4185
|
+
arrX.push(temp);
|
|
4186
|
+
}
|
|
4187
|
+
let max = Math.max(...arrY);
|
|
4188
|
+
// 找到最大值的索引
|
|
4189
|
+
let maxIndex = arrY.findIndex((value) => value === max);
|
|
4190
|
+
// console.log('最大点数据:', arrX[maxIndex], max);
|
|
4191
|
+
// console.log(chartExtJson);
|
|
4192
|
+
//默认输出精度
|
|
4193
|
+
let outJdZjhsl = 0.01, outJdZdgmd = 0.001;
|
|
4194
|
+
//顶点数据
|
|
4195
|
+
let outValZjhsl = 0, outValZdgmd = 0;
|
|
4196
|
+
//设置Sheet单元格的值(最佳含水率和最大干密度)
|
|
4197
|
+
if (chartExtJson != null) {
|
|
4198
|
+
// console.log(4444, chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, arrX[maxIndex]);
|
|
4199
|
+
if (chartExtJson.jsZjhslJd != null && chartExtJson.jsZjhslJd != undefined) {
|
|
4200
|
+
outJdZjhsl = chartExtJson.jsZjhslJd;
|
|
4201
|
+
}
|
|
4202
|
+
if (chartExtJson.jsZdgmdJd != null && chartExtJson.jsZdgmdJd != undefined) {
|
|
4203
|
+
outJdZdgmd = chartExtJson.jsZdgmdJd;
|
|
4204
|
+
}
|
|
4205
|
+
if (arrX[maxIndex] == 0 && max == 0) {
|
|
4206
|
+
sheet.setValue(chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, '/');
|
|
4207
|
+
sheet.setValue(chartExtJson.jsZdgmd.row, chartExtJson.jsZdgmd.col, '/');
|
|
4208
|
+
}
|
|
4209
|
+
else {
|
|
4210
|
+
outValZjhsl = EChartsUtilsComm.getRound(arrX[maxIndex], outJdZjhsl);
|
|
4211
|
+
outValZdgmd = EChartsUtilsComm.getRound(max, outJdZdgmd);
|
|
4212
|
+
sheet.setValue(chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, outValZjhsl);
|
|
4213
|
+
sheet.setValue(chartExtJson.jsZdgmd.row, chartExtJson.jsZdgmd.col, outValZdgmd);
|
|
4214
|
+
}
|
|
4207
4215
|
}
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
// 自定义标签内容
|
|
4227
|
-
if (Number(data.data.xAxis) == 0 && Number(data.data.yAxis) == 0) {
|
|
4228
|
-
return '';
|
|
4229
|
-
}
|
|
4230
|
-
else {
|
|
4231
|
-
return '( ' + data.data.xAxis + ',' + data.data.yAxis + ')';
|
|
4232
|
-
}
|
|
4233
|
-
},
|
|
4234
|
-
},
|
|
4235
|
-
itemStyle: { color: 'transparent' },
|
|
4236
|
-
},
|
|
4237
|
-
],
|
|
4238
|
-
}, markLineObj = {
|
|
4239
|
-
symbol: ['none', 'none'], //去掉箭头
|
|
4240
|
-
itemStyle: {
|
|
4241
|
-
lineStyle: {
|
|
4242
|
-
type: 'solid',
|
|
4243
|
-
color: '#333',
|
|
4244
|
-
width: 2,
|
|
4245
|
-
},
|
|
4246
|
-
},
|
|
4247
|
-
data: [
|
|
4248
|
-
[
|
|
4216
|
+
arrX.forEach((item, index) => {
|
|
4217
|
+
if (xData.includes(item)) {
|
|
4218
|
+
seriesData.push({ value: [item, arrY[index]] });
|
|
4219
|
+
}
|
|
4220
|
+
else {
|
|
4221
|
+
seriesData.push({
|
|
4222
|
+
value: [item, arrY[index]],
|
|
4223
|
+
symbol: 'none',
|
|
4224
|
+
});
|
|
4225
|
+
}
|
|
4226
|
+
});
|
|
4227
|
+
//xData.forEach((item, index) => {
|
|
4228
|
+
//seriesData.push([item, yData[index]]);
|
|
4229
|
+
//});
|
|
4230
|
+
//计算峰值----目前没有公式 值写死的
|
|
4231
|
+
const peakvalue = [arrX[maxIndex], Number(EChartsUtilsComm.getRound(max, outJdZdgmd))], coordX = [peakvalue[0], yAxisMin], coordY = [xAxisMin, peakvalue[1]];
|
|
4232
|
+
let markPointObj = {
|
|
4233
|
+
data: [
|
|
4249
4234
|
{
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4235
|
+
xAxis: EChartsUtilsComm.getRound(peakvalue[0], outJdZjhsl),
|
|
4236
|
+
yAxis: EChartsUtilsComm.getRound(peakvalue[1], outJdZdgmd),
|
|
4237
|
+
symbolOffset: [0, 15],
|
|
4238
|
+
symbol: 'circle',
|
|
4239
|
+
symbolSize: 6,
|
|
4240
|
+
label: {
|
|
4241
|
+
show: true,
|
|
4242
|
+
color: '#000',
|
|
4243
|
+
formatter: function (data) {
|
|
4244
|
+
// 自定义标签内容
|
|
4245
|
+
if (Number(data.data.xAxis) == 0 && Number(data.data.yAxis) == 0) {
|
|
4246
|
+
return '';
|
|
4247
|
+
}
|
|
4248
|
+
else {
|
|
4249
|
+
return '( ' + data.data.xAxis + ',' + data.data.yAxis + ')';
|
|
4250
|
+
}
|
|
4251
|
+
},
|
|
4254
4252
|
},
|
|
4255
|
-
|
|
4256
|
-
{
|
|
4257
|
-
coord: peakvalue,
|
|
4253
|
+
itemStyle: { color: 'transparent' },
|
|
4258
4254
|
},
|
|
4259
4255
|
],
|
|
4260
|
-
|
|
4261
|
-
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4265
|
-
|
|
4266
|
-
|
|
4267
|
-
},
|
|
4268
|
-
{
|
|
4269
|
-
coord: peakvalue,
|
|
4256
|
+
}, markLineObj = {
|
|
4257
|
+
symbol: ['none', 'none'], //去掉箭头
|
|
4258
|
+
itemStyle: {
|
|
4259
|
+
lineStyle: {
|
|
4260
|
+
type: 'solid',
|
|
4261
|
+
color: '#333',
|
|
4262
|
+
width: 2,
|
|
4270
4263
|
},
|
|
4264
|
+
},
|
|
4265
|
+
data: [
|
|
4266
|
+
[
|
|
4267
|
+
{
|
|
4268
|
+
coord: coordX,
|
|
4269
|
+
lineStyle: {
|
|
4270
|
+
color: '#333', //X轴
|
|
4271
|
+
type: 'dashed',
|
|
4272
|
+
},
|
|
4273
|
+
},
|
|
4274
|
+
{
|
|
4275
|
+
coord: peakvalue,
|
|
4276
|
+
},
|
|
4277
|
+
],
|
|
4278
|
+
[
|
|
4279
|
+
{
|
|
4280
|
+
coord: coordY,
|
|
4281
|
+
lineStyle: {
|
|
4282
|
+
color: '#333', //y轴
|
|
4283
|
+
type: 'dashed',
|
|
4284
|
+
},
|
|
4285
|
+
},
|
|
4286
|
+
{
|
|
4287
|
+
coord: peakvalue,
|
|
4288
|
+
},
|
|
4289
|
+
],
|
|
4271
4290
|
],
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
|
|
4279
|
-
|
|
4280
|
-
|
|
4281
|
-
|
|
4282
|
-
|
|
4283
|
-
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
|
|
4294
|
-
|
|
4295
|
-
|
|
4296
|
-
|
|
4297
|
-
|
|
4298
|
-
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4302
|
-
|
|
4303
|
-
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4307
|
-
|
|
4308
|
-
|
|
4309
|
-
|
|
4310
|
-
|
|
4311
|
-
|
|
4312
|
-
|
|
4291
|
+
};
|
|
4292
|
+
//如果界面设置了校正最佳含水率和最大干密度,则显示界面中的顶点坐标(此时就不显示辅助线了)
|
|
4293
|
+
if (chartExtJson.jsIsJz && /^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(cellValJzZjhsl) && /^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(cellValJzZdgmd)) {
|
|
4294
|
+
markLineObj = null;
|
|
4295
|
+
markPointObj.data[0].label = null;
|
|
4296
|
+
markPointObj.data[0].symbolOffset = null;
|
|
4297
|
+
markPointObj.data[0].itemStyle.color = '#F56C6C';
|
|
4298
|
+
markPointObj.data[0].xAxis = cellValJzZjhsl;
|
|
4299
|
+
markPointObj.data[0].yAxis = cellValJzZdgmd;
|
|
4300
|
+
markLineObj = null;
|
|
4301
|
+
}
|
|
4302
|
+
let seriesDataObj = {
|
|
4303
|
+
name: legendName,
|
|
4304
|
+
type: 'line',
|
|
4305
|
+
smooth: true, //平滑的线条
|
|
4306
|
+
//设置数据点形状(实心),参考文档:https://echarts.apache.org/zh/option.html#series-line.symbol
|
|
4307
|
+
symbol: 'circle', //符号类型
|
|
4308
|
+
symbolSize: 6, //符号大小
|
|
4309
|
+
//线条的颜色
|
|
4310
|
+
lineStyle: {
|
|
4311
|
+
color: lineData[isTwoLineData ? 1 : 0].lineColor,
|
|
4312
|
+
//线条类型(solid:实线、dashed:粗虚线、dotted:细虚线)
|
|
4313
|
+
type: isTwoLineData ? 'dotted' : 'solid',
|
|
4314
|
+
},
|
|
4315
|
+
//线条上数据点的颜色
|
|
4316
|
+
itemStyle: {
|
|
4317
|
+
color: lineData[isTwoLineData ? 1 : 0].lineColor,
|
|
4318
|
+
},
|
|
4319
|
+
data: seriesData,
|
|
4320
|
+
markPoint: isShowMarkPoint ? markPointObj : null,
|
|
4321
|
+
markLine: isShowMarkLine ? markLineObj : null,
|
|
4322
|
+
};
|
|
4323
|
+
return {
|
|
4324
|
+
xAxisMin: xAxisMin,
|
|
4325
|
+
xAxisMax: xAxisMax,
|
|
4326
|
+
yAxisMin: yAxisMin,
|
|
4327
|
+
yAxisMax: yAxisMax,
|
|
4328
|
+
xData: xData,
|
|
4329
|
+
seriesDataObj: seriesDataObj,
|
|
4330
|
+
maxPointData: [arrX[maxIndex], max],
|
|
4331
|
+
};
|
|
4313
4332
|
};
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
lineObj2 = lineFunc(xDataSource2, yDataSource2, false, false, true);
|
|
4319
|
-
}
|
|
4320
|
-
//此处的作用是,有可能x和y轴的数据都为空,造成lineObj1为undefined,避免报错
|
|
4321
|
-
if (lineObj1 == undefined || lineObj1 == null) {
|
|
4322
|
-
return;
|
|
4323
|
-
}
|
|
4324
|
-
//一条线的时候
|
|
4325
|
-
if (!isTwoLine) {
|
|
4326
|
-
xAxisMin = lineObj1.xAxisMin;
|
|
4327
|
-
xAxisMax = lineObj1.xAxisMax;
|
|
4328
|
-
yAxisMin = lineObj1.yAxisMin;
|
|
4329
|
-
yAxisMax = lineObj1.yAxisMax;
|
|
4330
|
-
xData = lineObj1.xData;
|
|
4331
|
-
seriesData.push(lineObj1.seriesDataObj);
|
|
4332
|
-
}
|
|
4333
|
-
//2条线的时候
|
|
4334
|
-
else {
|
|
4335
|
-
if (lineObj2 == undefined || lineObj2 == null) {
|
|
4336
|
-
return;
|
|
4337
|
-
}
|
|
4338
|
-
xAxisMax = lineObj1.xAxisMax;
|
|
4339
|
-
if (lineObj2.xAxisMax > xAxisMax) {
|
|
4340
|
-
xAxisMax = lineObj2.xAxisMax;
|
|
4341
|
-
}
|
|
4342
|
-
xAxisMin = lineObj1.xAxisMin;
|
|
4343
|
-
if (lineObj2.xAxisMin < xAxisMin) {
|
|
4344
|
-
xAxisMin = lineObj2.xAxisMin;
|
|
4333
|
+
let xAxisMin = 0, xAxisMax = 0, yAxisMin = 0, yAxisMax = 0, xData = [], seriesData = [], maxPointDataX = 0, maxPointDataY = 0;
|
|
4334
|
+
let lineObj1 = lineFunc(xDataSource1, yDataSource1, !isTwoLine, !isTwoLine, false), lineObj2;
|
|
4335
|
+
if (isTwoLine) {
|
|
4336
|
+
lineObj2 = lineFunc(xDataSource2, yDataSource2, false, false, true);
|
|
4345
4337
|
}
|
|
4346
|
-
|
|
4347
|
-
if (
|
|
4348
|
-
|
|
4338
|
+
//此处的作用是,有可能x和y轴的数据都为空,造成lineObj1为undefined,避免报错
|
|
4339
|
+
if (lineObj1 == undefined || lineObj1 == null) {
|
|
4340
|
+
return;
|
|
4349
4341
|
}
|
|
4350
|
-
|
|
4351
|
-
if (
|
|
4352
|
-
|
|
4342
|
+
//一条线的时候
|
|
4343
|
+
if (!isTwoLine) {
|
|
4344
|
+
xAxisMin = lineObj1.xAxisMin;
|
|
4345
|
+
xAxisMax = lineObj1.xAxisMax;
|
|
4346
|
+
yAxisMin = lineObj1.yAxisMin;
|
|
4347
|
+
yAxisMax = lineObj1.yAxisMax;
|
|
4348
|
+
xData = lineObj1.xData;
|
|
4349
|
+
seriesData.push(lineObj1.seriesDataObj);
|
|
4353
4350
|
}
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
xData.push(item);
|
|
4359
|
-
});
|
|
4360
|
-
seriesData.push(lineObj1.seriesDataObj);
|
|
4361
|
-
seriesData.push(lineObj2.seriesDataObj);
|
|
4362
|
-
maxPointDataX = (lineObj1.maxPointData[0] + lineObj2.maxPointData[0]) / 2;
|
|
4363
|
-
maxPointDataY = (lineObj1.maxPointData[1] + lineObj2.maxPointData[1]) / 2;
|
|
4364
|
-
// console.log(
|
|
4365
|
-
// "两条线最大点的平均值:",
|
|
4366
|
-
// maxPointDataX,
|
|
4367
|
-
// maxPointDataY
|
|
4368
|
-
// );
|
|
4369
|
-
//默认输出精度
|
|
4370
|
-
let outJdZjhsl = 0.01, outJdZdgmd = 0.001;
|
|
4371
|
-
//顶点数据
|
|
4372
|
-
let outValZjhsl = 0, outValZdgmd = 0;
|
|
4373
|
-
//设置Sheet单元格的值(最佳含水率和最大干密度)
|
|
4374
|
-
if (chartExtJson != null) {
|
|
4375
|
-
// console.log(4444, chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, arrX[maxIndex]);
|
|
4376
|
-
if (chartExtJson.jsZjhslJd != null && chartExtJson.jsZjhslJd != undefined) {
|
|
4377
|
-
outJdZjhsl = chartExtJson.jsZjhslJd;
|
|
4378
|
-
}
|
|
4379
|
-
if (chartExtJson.jsZdgmdJd != null && chartExtJson.jsZdgmdJd != undefined) {
|
|
4380
|
-
outJdZdgmd = chartExtJson.jsZdgmdJd;
|
|
4381
|
-
}
|
|
4382
|
-
if (maxPointDataX == 0 && maxPointDataY == 0) {
|
|
4383
|
-
sheet.setValue(chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, '/');
|
|
4384
|
-
sheet.setValue(chartExtJson.jsZdgmd.row, chartExtJson.jsZdgmd.col, '/');
|
|
4351
|
+
//2条线的时候
|
|
4352
|
+
else {
|
|
4353
|
+
if (lineObj2 == undefined || lineObj2 == null) {
|
|
4354
|
+
return;
|
|
4385
4355
|
}
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4356
|
+
xAxisMax = lineObj1.xAxisMax;
|
|
4357
|
+
if (lineObj2.xAxisMax > xAxisMax) {
|
|
4358
|
+
xAxisMax = lineObj2.xAxisMax;
|
|
4359
|
+
}
|
|
4360
|
+
xAxisMin = lineObj1.xAxisMin;
|
|
4361
|
+
if (lineObj2.xAxisMin < xAxisMin) {
|
|
4362
|
+
xAxisMin = lineObj2.xAxisMin;
|
|
4363
|
+
}
|
|
4364
|
+
yAxisMax = lineObj1.yAxisMax;
|
|
4365
|
+
if (lineObj2.yAxisMax > yAxisMax) {
|
|
4366
|
+
yAxisMax = lineObj2.yAxisMax;
|
|
4367
|
+
}
|
|
4368
|
+
yAxisMin = lineObj1.yAxisMin;
|
|
4369
|
+
if (lineObj2.yAxisMin < yAxisMin) {
|
|
4370
|
+
yAxisMin = lineObj2.yAxisMin;
|
|
4371
|
+
}
|
|
4372
|
+
lineObj1.xData.forEach((item) => {
|
|
4373
|
+
xData.push(item);
|
|
4374
|
+
});
|
|
4375
|
+
lineObj2.xData.forEach((item) => {
|
|
4376
|
+
xData.push(item);
|
|
4377
|
+
});
|
|
4378
|
+
seriesData.push(lineObj1.seriesDataObj);
|
|
4379
|
+
seriesData.push(lineObj2.seriesDataObj);
|
|
4380
|
+
maxPointDataX = (lineObj1.maxPointData[0] + lineObj2.maxPointData[0]) / 2;
|
|
4381
|
+
maxPointDataY = (lineObj1.maxPointData[1] + lineObj2.maxPointData[1]) / 2;
|
|
4382
|
+
// console.log(
|
|
4383
|
+
// "两条线最大点的平均值:",
|
|
4384
|
+
// maxPointDataX,
|
|
4385
|
+
// maxPointDataY
|
|
4386
|
+
// );
|
|
4387
|
+
//默认输出精度
|
|
4388
|
+
let outJdZjhsl = 0.01, outJdZdgmd = 0.001;
|
|
4389
|
+
//顶点数据
|
|
4390
|
+
let outValZjhsl = 0, outValZdgmd = 0;
|
|
4391
|
+
//设置Sheet单元格的值(最佳含水率和最大干密度)
|
|
4392
|
+
if (chartExtJson != null) {
|
|
4393
|
+
// console.log(4444, chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, arrX[maxIndex]);
|
|
4394
|
+
if (chartExtJson.jsZjhslJd != null && chartExtJson.jsZjhslJd != undefined) {
|
|
4395
|
+
outJdZjhsl = chartExtJson.jsZjhslJd;
|
|
4396
|
+
}
|
|
4397
|
+
if (chartExtJson.jsZdgmdJd != null && chartExtJson.jsZdgmdJd != undefined) {
|
|
4398
|
+
outJdZdgmd = chartExtJson.jsZdgmdJd;
|
|
4399
|
+
}
|
|
4400
|
+
if (maxPointDataX == 0 && maxPointDataY == 0) {
|
|
4401
|
+
sheet.setValue(chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, '/');
|
|
4402
|
+
sheet.setValue(chartExtJson.jsZdgmd.row, chartExtJson.jsZdgmd.col, '/');
|
|
4403
|
+
}
|
|
4404
|
+
else {
|
|
4405
|
+
outValZjhsl = EChartsUtilsComm.getRound(maxPointDataX, outJdZjhsl);
|
|
4406
|
+
outValZdgmd = EChartsUtilsComm.getRound(maxPointDataY, outJdZdgmd);
|
|
4407
|
+
sheet.setValue(chartExtJson.jsZjhsl.row, chartExtJson.jsZjhsl.col, outValZjhsl);
|
|
4408
|
+
sheet.setValue(chartExtJson.jsZdgmd.row, chartExtJson.jsZdgmd.col, outValZdgmd);
|
|
4409
|
+
}
|
|
4391
4410
|
}
|
|
4392
4411
|
}
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4412
|
+
//判断数据是否为/,‘’,null,undefined
|
|
4413
|
+
let yValIsAllNull = false;
|
|
4414
|
+
seriesData.forEach((item) => {
|
|
4415
|
+
yValIsAllNull = item.data[0].value.every((ele) => {
|
|
4416
|
+
return ele == 0;
|
|
4417
|
+
});
|
|
4399
4418
|
});
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4408
|
-
|
|
4409
|
-
|
|
4410
|
-
|
|
4411
|
-
|
|
4412
|
-
|
|
4413
|
-
|
|
4414
|
-
|
|
4415
|
-
|
|
4416
|
-
|
|
4417
|
-
|
|
4418
|
-
|
|
4419
|
-
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
: datas[0].data;
|
|
4426
|
-
},
|
|
4427
|
-
},
|
|
4428
|
-
//顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title
|
|
4429
|
-
title: [
|
|
4430
|
-
{
|
|
4431
|
-
show: true,
|
|
4432
|
-
text: title,
|
|
4433
|
-
left: 'center',
|
|
4434
|
-
top: 0,
|
|
4435
|
-
textStyle: {
|
|
4436
|
-
fontSize: 14,
|
|
4437
|
-
fontWeight: 'normal',
|
|
4419
|
+
if (yValIsAllNull) {
|
|
4420
|
+
xAxisMin = null;
|
|
4421
|
+
xAxisMax = null;
|
|
4422
|
+
yAxisMin = null;
|
|
4423
|
+
yAxisMax = null;
|
|
4424
|
+
seriesData = [];
|
|
4425
|
+
}
|
|
4426
|
+
let option = {
|
|
4427
|
+
grid: {
|
|
4428
|
+
// show: true,//是否显示外边框线
|
|
4429
|
+
// borderColor: '#f00',//外边框线颜色
|
|
4430
|
+
top: 25,
|
|
4431
|
+
left: !yValIsAllNull ? 30 : 25,
|
|
4432
|
+
right: 10,
|
|
4433
|
+
bottom: 20,
|
|
4434
|
+
containLabel: true,
|
|
4435
|
+
},
|
|
4436
|
+
//提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip
|
|
4437
|
+
tooltip: {
|
|
4438
|
+
trigger: 'axis',
|
|
4439
|
+
formatter: function (datas, ticket) {
|
|
4440
|
+
//console.log(datas," datas")
|
|
4441
|
+
return datas && datas.length > 0
|
|
4442
|
+
? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + Number(EChartsUtilsComm.getRound(datas[0].value[1], 0.001))
|
|
4443
|
+
: datas[0].data;
|
|
4438
4444
|
},
|
|
4439
4445
|
},
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4446
|
+
//顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title
|
|
4447
|
+
title: [
|
|
4448
|
+
{
|
|
4449
|
+
show: true,
|
|
4450
|
+
text: title,
|
|
4451
|
+
left: 'center',
|
|
4452
|
+
top: 0,
|
|
4453
|
+
textStyle: {
|
|
4454
|
+
fontSize: 14,
|
|
4455
|
+
fontWeight: 'normal',
|
|
4456
|
+
},
|
|
4457
|
+
},
|
|
4458
|
+
{
|
|
4459
|
+
show: true,
|
|
4460
|
+
text: xName,
|
|
4461
|
+
left: 'center',
|
|
4462
|
+
bottom: 0,
|
|
4463
|
+
textStyle: {
|
|
4464
|
+
fontSize: 12,
|
|
4465
|
+
fontWeight: 'normal',
|
|
4466
|
+
},
|
|
4467
|
+
},
|
|
4468
|
+
],
|
|
4469
|
+
//图例,参考文档:https://echarts.apache.org/zh/option.html#legend
|
|
4470
|
+
legend: {
|
|
4471
|
+
show: false,
|
|
4472
|
+
left: 'right',
|
|
4473
|
+
data: [legendName],
|
|
4474
|
+
selected: {
|
|
4475
|
+
legendName: true, //显示
|
|
4448
4476
|
},
|
|
4477
|
+
selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)
|
|
4449
4478
|
},
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4479
|
+
xAxis: {
|
|
4480
|
+
type: 'value',
|
|
4481
|
+
max: xAxisMax,
|
|
4482
|
+
min: xAxisMin,
|
|
4483
|
+
data: xData,
|
|
4484
|
+
axisTick: {
|
|
4485
|
+
alignWithLabel: true, //使得刻度线和标签对齐
|
|
4486
|
+
},
|
|
4487
|
+
splitLine: { show: true },
|
|
4458
4488
|
},
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
|
|
4489
|
+
yAxis: [
|
|
4490
|
+
{
|
|
4491
|
+
type: 'value',
|
|
4492
|
+
max: yAxisMax,
|
|
4493
|
+
min: yAxisMin,
|
|
4494
|
+
name: yName,
|
|
4495
|
+
nameGap: !yValIsAllNull ? 40 : 5,
|
|
4496
|
+
nameRotate: 90,
|
|
4497
|
+
nameLocation: 'middle',
|
|
4498
|
+
splitLine: {
|
|
4499
|
+
show: true,
|
|
4500
|
+
lineStyle: {
|
|
4501
|
+
color: '#e0e6f1', //'#e0e6f1',
|
|
4502
|
+
type: 'solid',
|
|
4503
|
+
},
|
|
4504
|
+
},
|
|
4505
|
+
//splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……
|
|
4506
|
+
axisLine: {
|
|
4507
|
+
//设置y轴箭头效果
|
|
4508
|
+
show: true, //y轴默认是不显示的
|
|
4509
|
+
},
|
|
4510
|
+
},
|
|
4511
|
+
],
|
|
4512
|
+
series: seriesData,
|
|
4513
|
+
};
|
|
4514
|
+
return option;
|
|
4515
|
+
}
|
|
4516
|
+
catch (error) {
|
|
4517
|
+
let option = {
|
|
4518
|
+
grid: {
|
|
4519
|
+
// show: true,//是否显示外边框线
|
|
4520
|
+
// borderColor: '#f00',//外边框线颜色
|
|
4521
|
+
top: 25,
|
|
4522
|
+
left: 25,
|
|
4523
|
+
right: 10,
|
|
4524
|
+
bottom: 20,
|
|
4525
|
+
containLabel: true,
|
|
4526
|
+
},
|
|
4527
|
+
//提示框组件,参考文档:https://echarts.apache.org/zh/option.html#tooltip
|
|
4528
|
+
tooltip: {
|
|
4529
|
+
trigger: 'axis',
|
|
4530
|
+
formatter: function (datas, ticket) {
|
|
4531
|
+
//console.log(datas," datas")
|
|
4532
|
+
return datas && datas.length > 0
|
|
4533
|
+
? datas[0].seriesName + '(' + datas[0].value[0] + ')' + ':' + Number(EChartsUtilsComm.getRound(datas[0].value[1], 0.001))
|
|
4534
|
+
: datas[0].data;
|
|
4535
|
+
},
|
|
4468
4536
|
},
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
{
|
|
4473
|
-
type: 'value',
|
|
4474
|
-
max: yAxisMax,
|
|
4475
|
-
min: yAxisMin,
|
|
4476
|
-
name: yName,
|
|
4477
|
-
nameGap: !yValIsAllNull ? 40 : 5,
|
|
4478
|
-
nameRotate: 90,
|
|
4479
|
-
nameLocation: 'middle',
|
|
4480
|
-
splitLine: {
|
|
4537
|
+
//顶部的标题,参考文档:https://echarts.apache.org/zh/option.html#title
|
|
4538
|
+
title: [
|
|
4539
|
+
{
|
|
4481
4540
|
show: true,
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4541
|
+
text: title,
|
|
4542
|
+
left: 'center',
|
|
4543
|
+
top: 0,
|
|
4544
|
+
textStyle: {
|
|
4545
|
+
fontSize: 14,
|
|
4546
|
+
fontWeight: 'normal',
|
|
4485
4547
|
},
|
|
4486
4548
|
},
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4549
|
+
{
|
|
4550
|
+
show: true,
|
|
4551
|
+
text: xName,
|
|
4552
|
+
left: 'center',
|
|
4553
|
+
bottom: 0,
|
|
4554
|
+
textStyle: {
|
|
4555
|
+
fontSize: 12,
|
|
4556
|
+
fontWeight: 'normal',
|
|
4557
|
+
},
|
|
4558
|
+
},
|
|
4559
|
+
],
|
|
4560
|
+
//图例,参考文档:https://echarts.apache.org/zh/option.html#legend
|
|
4561
|
+
legend: {
|
|
4562
|
+
show: false,
|
|
4563
|
+
left: 'right',
|
|
4564
|
+
data: [legendName],
|
|
4565
|
+
selected: {
|
|
4566
|
+
legendName: true, //显示
|
|
4491
4567
|
},
|
|
4568
|
+
selectedMode: 'multiple', //用于控制图例的选择模式(single:单选、multiple:多选、false:禁止选择)
|
|
4492
4569
|
},
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4570
|
+
xAxis: {
|
|
4571
|
+
type: 'value',
|
|
4572
|
+
max: 0,
|
|
4573
|
+
min: 0,
|
|
4574
|
+
data: [],
|
|
4575
|
+
axisTick: {
|
|
4576
|
+
alignWithLabel: true, //使得刻度线和标签对齐
|
|
4577
|
+
},
|
|
4578
|
+
splitLine: { show: true },
|
|
4579
|
+
},
|
|
4580
|
+
yAxis: [
|
|
4581
|
+
{
|
|
4582
|
+
type: 'value',
|
|
4583
|
+
max: 0,
|
|
4584
|
+
min: 0,
|
|
4585
|
+
name: yName,
|
|
4586
|
+
nameGap: 5,
|
|
4587
|
+
nameRotate: 90,
|
|
4588
|
+
nameLocation: 'middle',
|
|
4589
|
+
splitLine: {
|
|
4590
|
+
show: true,
|
|
4591
|
+
lineStyle: {
|
|
4592
|
+
color: '#e0e6f1', //'#e0e6f1',
|
|
4593
|
+
type: 'solid',
|
|
4594
|
+
},
|
|
4595
|
+
},
|
|
4596
|
+
//splitNumber: 10, //设置y轴分隔的段数,如0~100之间默认情况可能会按照0、20、40、60……的间隔显示,设置相应的数字后就会根据实际情况显示的更细,如0、10、20、30……
|
|
4597
|
+
axisLine: {
|
|
4598
|
+
//设置y轴箭头效果
|
|
4599
|
+
show: true, //y轴默认是不显示的
|
|
4600
|
+
},
|
|
4601
|
+
},
|
|
4602
|
+
],
|
|
4603
|
+
series: [],
|
|
4604
|
+
};
|
|
4605
|
+
return option;
|
|
4606
|
+
}
|
|
4497
4607
|
},
|
|
4498
4608
|
/**
|
|
4499
4609
|
* 筛分
|