当前位置: 首页 > java >正文

解决散点图绘制算法单一导致的数据异常问题

背景  在后端渲染数据时,采用的是中位数过滤,这就导致后端数据库对应的数据中,如果0过多,会把0当做正常数据,其他值会被当做异常值去掉,导致渲染的图是一条直线

解决方法 在图表的上方配置中加一个按钮,点击按钮切换另一个算法继续渲染

在配置中添加按钮的标志和图片

在图绘制的时候会传递默认的算法模式

这里传进来的模式是回调的时候传进来的,一开始初始化的时候是undefined

添加回调函数进行算法切换

渲染按钮

模式切换采用三目运算符进行循环切换

const newMode = currentMode === 'mad' ? 'gauss' : (currentMode === 'gauss' ? 'MediamFilter_3' : 'mad');
       if (!_feature || _feature.algorithmSwitch) {let algorithmId = "algorithmContent" + new Date().getTime()let algorithmContent = $(`<div id="${algorithmId}" style="display:none"><div style="padding:5px;">切换绘图算法</div></div>`)parent.prepend(algorithmContent)let algorithmSwitch = $(`<i><img src="${icons['turn']}" ${toolbarStyle} data="algorithmSwitch" /></i>`)parent.prepend(algorithmSwitch)algorithmSwitch.webuiPopover({ content: '切换绘图算法', trigger: 'hover' });algorithmSwitch.click(() => {// 切换算法模式const currentMode = that.rawOption.algorithmMode || that.options.algorithmMode;console.log('切换前算法模式:', currentMode);const newMode = currentMode === 'mad' ? 'gauss' : (currentMode === 'gauss' ? 'MediamFilter_3' : 'mad');console.log('切换后算法模式:', newMode);// 更新options和rawOptionthat.options.algorithmMode = newMode;that.rawOption.algorithmMode = newMode;console.log('更新后rawOption.algorithmMode:', that.rawOption.algorithmMode);// 更新悬停提示algorithmSwitch.webuiPopover('destroy');algorithmSwitch.webuiPopover({ content: `当前算法: ${newMode}`, trigger: 'hover' });// 调用回调函数(如果存在)if (typeof that.options.onAlgorithmChange === 'function') {console.log('调用回调函数');that.options.onAlgorithmChange(newMode);}})}

调用回调函数重新进行获取数据绘图,将模式传入,后端接收模式后进行判断,选择算法

具体的算法中位数 高斯滤波 平滑窗口算法

http://www.xdnf.cn/news/18573.html

相关文章:

  • STM32窗口看门狗(WWDG)深度解析:精准守护嵌入式系统的实时性
  • python学习DAY49打卡
  • SHAP分析+KOA-RIME开普勒结合霜冰算法双重优化BP神经网络+9种映射方法+新数据预测!机器学习可解释分析!
  • 【升级版】从零到一训练一个 0.6B 的 MoE 大语言模型
  • 云原生俱乐部-k8s知识点归纳(8)
  • day40-tomcat
  • k8s之 Pod 资源管理与 QoS
  • Angular初学者入门第三课——工厂函数(精品)
  • 日志搜索系统前端页面(暂无后端功能)
  • webrtc弱网-SendSideBandwidthEstimation类源码分析与算法原理
  • 手机横屏适配方案
  • 20250823给荣品RD-RK3588开发板刷Rockchip原厂的Buildroot【linux-5.10】时调通AP6275P的WIFI【源码部分】
  • ArkTS 语言全方位解析:鸿蒙生态开发新选择
  • 【AI基础:神经网络】17、神经网络基石:从MP神经元到感知器全解析 - 原理、代码、异或困境与突破
  • 线程间Bug检测工具Canary
  • uniapp 页面跳转及字符串转义
  • Redis学习笔记 ----- 缓存
  • rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(八)按键事件
  • 大语言模型应用开发——利用OpenAI函数与LangChain结合从文本构建知识图谱搭建RAG应用全流程
  • 【KO】前端面试七
  • 20250823给荣品RD-RK3588开发板刷Rockchip原厂的Android14【EVB7的V10】时调通AP6275P的WIFI
  • react相关知识
  • GitLab CI:Auto DevOps 全解析,告别繁琐配置,拥抱自动化未来
  • 运行npm run命令报错“error:0308010C:digital envelope routines::unsupported”
  • 二叉树的经典算法与应用
  • 【网安干货】--操作系统基础(上)
  • USRP采集的WiFi信号绘制星座图为方形
  • 新手向:异步编程入门asyncio最佳实践
  • K8s 实战:Pod 版本更新回滚 + 生命周期管控
  • 嵌入式学习日记(33)TCP