| 323 | |
| 324 | // 解析简单数据 |
| 325 | function parseSimpleData() { |
| 326 | const input = document.getElementById('data-input').value.trim(); |
| 327 | if (!input) { |
| 328 | throw new Error('请输入数据'); |
| 329 | } |
| 330 | |
| 331 | const lines = input.split('\n').filter(line => line.trim()); |
| 332 | const labels = []; |
| 333 | const data = []; |
| 334 | |
| 335 | lines.forEach(line => { |
| 336 | const parts = line.split(',').map(part => part.trim()); |
| 337 | if (parts.length >= 2) { |
| 338 | labels.push(parts[0]); |
| 339 | const value = parseFloat(parts[1]); |
| 340 | if (isNaN(value)) { |
| 341 | throw new Error(`"${parts[1]}"不是有效的数值`); |
| 342 | } |
| 343 | data.push(value); |
| 344 | } |
| 345 | }); |
| 346 | |
| 347 | if (labels.length === 0 || data.length === 0) { |
| 348 | throw new Error('无法解析数据,请检查格式是否正确'); |
| 349 | } |
| 350 | |
| 351 | return { |
| 352 | labels: labels, |
| 353 | datasets: [{ |
| 354 | data: data, |
| 355 | label: '数值' |
| 356 | }], |
| 357 | isSimpleData: true // 添加标记,表示这是简单数据格式 |
| 358 | }; |
| 359 | } |
| 360 | |
| 361 | // 解析系列数据 |
| 362 | function parseSeriesData() { |